本发明涉及无人机飞行控制技术领域,具体而言,涉及一种无人机飞行控制装置、方法及遥控终端。
背景技术:
无人机产品的相关技术中,对于无人机的控制方式通常有两种。第一种是直接通过手柄遥控器控制无人机飞行,另一种是通过手机或可穿戴设备等遥控终端的倾斜角度对无人机进行体感控制。
其中,通过手柄遥控器控制无人机飞行的方法存在以下缺点:
a.购买无人机的时候,会增加手柄遥控器的购买成本;
b.手柄遥控器体型较大,用户外出时,携带手柄遥控器会占据用户一定的存储空间;
c.一般的手柄遥控器都需要配合手机终端进行使用,操作相对麻烦。
通过手机或可穿戴设备等遥控终端的倾斜角度对无人机进行体感控制的缺点为:当遥控终端一连接到无人机,无人机立即就会进入体感控制模式,响应遥控终端的体感控制指令,具有一定的危险性和操作难度,并且,在无人机进入体感控制模式后,无人机随着遥控终端的体感控制指令进行对应飞行动作,若遥控终端在闲置的过程中不小心被改变姿态,则容易出现误操作,不适合无人机新手操作使用。
技术实现要素:
本发明的目的在于提供一种无人机飞行控制装置、方法及遥控终端,以提高无人机飞行控制的安全性及便捷性。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种无人机飞行控制装置,应用于遥控终端,所述无人机飞行控制装置包括:侦测模块,用于侦测作用于所述遥控终端的长按操作;获取模块,用于在所述长按操作的持续过程中,获取所述遥控终端的姿态数据;生成模块,用于依据所述姿态数据,生成与所述姿态数据匹配的第一控制指令;发送模块,用于将所述第一控制指令发送给无人机,其中,所述第一控制指令用于控制所述无人机的飞行轨迹。
第二方面,本发明实施例还提供了一种无人机飞行控制方法,应用于遥控终端,所述无人机飞行控制方法包括:侦测作用于所述遥控终端的长按操作;在所述长按操作的持续过程中,获取所述遥控终端的姿态数据;依据所述姿态数据,生成与所述姿态数据匹配的第一控制指令;将所述第一控制指令发送给无人机,其中,所述第一控制指令用于控制所述无人机的飞行轨迹。
第三方面,本发明实施例还提供了一种遥控终端,所述遥控终端包括:存储器;处理器;以及无人机飞行控制装置,所述无人机飞行控制装置安装于所述存储器中并包括一个或多个由所述处理器执行的软件功能模组,所述无人机飞行控制装置包括:侦测模块,用于侦测作用于所述遥控终端的长按操作;获取模块,用于在所述长按操作的持续过程中,获取所述遥控终端的姿态数据;生成模块,用于依据所述姿态数据,生成与所述姿态数据匹配的第一控制指令;发送模块,用于将所述第一控制指令发送给无人机,其中,所述第一控制指令用于控制所述无人机的飞行轨迹。
本发明实施例提供的一种无人机飞行控制装置、方法及遥控终端,通过侦测作用于遥控终端的长按操作;在所述长按操作的持续过程中,获取遥控终端的姿态数据;依据姿态数据,生成与姿态数据匹配的第一控制指令;将第一控制指令发送给无人机,其中,所述第一控制指令用于控制所述无人机的飞行轨迹。如此,通过长按操作触发体感控制模式,可以让无人机的飞行操作变得更加安全,从而减少了各种飞行意外和事故。同时,也降低了无人机的飞行控制难度,无人机新手也可以进行操作,提高了用户体验。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明较佳实施例提供的无人机飞行控制装置、方法及遥控终端的应用环境示意图。
图2示出了本发明较佳实施例提供的遥控终端的一种显示界面的示意图。
图3示出了本发明较佳实施例提供的遥控终端的另一种显示界面的示意图。
图4示出了本发明较佳实施例提供的遥控终端的结构框图。
图5示出了本发明较佳实施例提供的无人机飞行控制装置的功能模块图。
图6示出了本发明较佳实施例提供的遥控终端所在的坐标系示意图。
图7示出了本发明较佳实施例提供的无人机飞行控制方法的流程图。
具体实施方式
本发明实施例所提供的无人机飞行控制装置、方法及遥控终端可应用于如图1所示的应用环境中。如图1所示,遥控终端100可以通过无线网络300发送控制指令给无人机200,无人机200接收到所述控制指令之后,可以执行与所述控制指令对应的飞行动作。
在本实施例中,所述遥控终端100可以是,但不限于智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internet device,MID)等,优选地,本实施例中,遥控终端100为智能手机或智能平板电脑。所述遥控终端100的操作系统可以是,但不限于,安卓(Android)系统、IOS(iPhone operating system)系统、Windows phone系统、Windows系统等。优选地,本实施例中,所述遥控终端100的操作系统为IOS系统。
图2示出了一种可应用本发明实施例的无人机飞行控制装置及方法的遥控终端100的一种显示界面。显示界面可以为触控屏幕114,触控屏幕114包括第一操作区域120,用户可以在第一操作区域120进行按压操作,例如长按操作或点击操作,所述按压操作可以是具体作用于第一操作区域120的某一个虚拟按键上,例如虚拟按键121。
图3示出了一种可应用本发明实施例的无人机飞行控制装置及方法的遥控终端100的另一种显示界面。显示界面可以为触控屏幕114,触控屏幕114设有第一操作区域120和第二操作区域140,用户可以在第一操作区域120和第二操作区域140进行触控操作。进一步的,用户可以在第一操作区域120进行按压操作,例如长按操作或点击操作,所述按压操作也可以作用于第一操作区域120的某一个虚拟按键上,例如虚拟按键121;虚拟按键121也可以作为第一操作区域120的操作指示标识,以指示所述第一操作区域120在所述触控屏幕114上的区域,例如,虚拟按键121在触控屏幕114的左侧,则指示触控屏幕114的左侧为第一操作区域120,若虚拟按键121在触控屏幕114的右侧,则指示触控屏幕114的右侧为第一操作区域120。用户可以在第二操作区域140进行滑动操作,例如,用户的手指在第二操作区域140沿图3所示的A、B、C、D四个方向滑动,或者也可以沿其他更多的方向滑动。需要说明的是,第一操作区域120和第二操作区域140并不限定于图3中所示的左右两个区域,也可以为上下两个区域,或者为触控屏幕114上的其他任何两个区域。另外,遥控终端100的实体按键也可以被按压,进行上述按压操作,例如音量键111或主页键113被长按,实体按键的被按压操作和上述第一操作区域120的被按压操作实现一样的功能和作用。
图4示出了一种可应用本发明实施例的无人机飞行控制装置及方法的遥控终端100的结构框图。如图4所示,遥控终端100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频单元110、音频单元112、以及触控屏幕114。
所述存储器102、存储控制器104、一个或多个处理器106、外设接口108、射频单元110、音频单元112以及触控屏幕114各元件相互之间直接或间接地电性连接,以实现数据的传输或交互,例如,这些组件通过一条或多条通讯总线/信号线116相互通讯。所述无人机飞行控制装置400包括至少一个可以软件或固件(firmware)的形式存储于所述存储器102中或固化在所述遥控终端100的操作系统(operating system,OS)中的软件功能模块。
存储器102可用于存储软件程序以及模组,如本发明实施例中的无人机飞行控制装置及方法对应的程序指令/模块。所述处理器106用于执行所述存储器102中存储的可执行模块,例如无人机飞行控制装置400所包括的软件功能模块及计算机程序等。
存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。
外设接口108将各种输入/输出装置耦合至处理器106以及存储器102。在一些实施例中,外设接口108、处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
射频单元110用于接收以及发送无线电波信号(如电磁波),实现无线电波与电信号的相互转换,从而实现所述遥控终端100与无人机200之间的无线通信。
音频单元112向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。
触控屏幕114在遥控终端100与用户之间同时提供一个输出及输入界面。在本实施例中,所述触控屏幕114支持单点和多点触控操作,例如,该触控屏幕114可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作使触控屏幕114能感应到来自该触控屏幕114上一个或多个位置处同时产生的触控操作,并将该感应到的多点触控操作交由处理器106进行处理。
可以理解,图4所示的结构仅为示意,遥控终端100还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
第一实施例
请参阅图5,示出了本发明较佳实施例提供的无人机飞行控制装置400的功能模块图。本发明较佳实施例提供的无人机飞行控制装置400包括:侦测模块410、获取模块420、生成模块430以及发送模块440。
侦测模块410,用于侦测遥控终端100是否与无人机200连接成功。
在本发明实施例中,遥控终端100与无人机200可以通过无线网络300进行连接,优选的,在本发明实施例中,无线网络300为WIFI。在侦测模块410侦测到遥控终端100与无人机200连接成功时,侦测模块410可以发送控制信号给遥控终端100的音频单元112,通过音频单元112发出声音提示信息,例如“连接成功”,以提醒用户遥控终端100与无人机200的连接状态。
发送模块440,用于在所述遥控终端100与所述无人机200无线连接成功之后,发送悬停指令至无人机200。
在本发明实施例中,遥控终端100与无人机200连接之后,遥控终端100可以通过套接字(Socket)以用户数据报协议(User Datagram Protocol,UDP)的传输方式,以50HZ的频率向无人机飞行控制器(飞控)发送控制指令。所述控制指令为指令数据包,该指令数据包包括4个用于控制无人机200飞行方向的数据,上述4个数据分别是控制无人机左右飞行的左右值、控制无人机前后飞行的前后值、控制无人机升降的升降值、以及控制无人机旋转的旋转值。对上述4个数据可以设定取值范围,在本发明较佳实施例中,上述4个数据的取值范围均为1100到1900,默认值为1500,在其他实施例中,取值范围也可为其他数值范围,默认值也可以为其他值。当上述4个数据的值都为默认值1500时,控制指令为悬停指令;当上述4个数据中的任何一个不为1500时,控制指令为控制无人机200飞行的除悬停以外的其他指令。例如,预先将大于1500的前后值定义为控制无人机200向后飞行,将小于1500的前后值定义为控制无人机200向前飞行,将大于1500的左右值定义为控制无人机向左飞行,将小于1500的左右值定义为控制无人机200向右飞行,将大于1500的升降值定义为控制无人机200向上飞行,将小于1500的升降值定义为控制无人机200向下飞行,将大于1500的旋转值定义为控制无人机200向左旋转,将小于1500的旋转值定义为控制无人机200向右旋转。
其中,无人机200向前、后、左、右四个方向的飞行是指在水平面内的无人机200的前、后、左、右四个方向飞行。无人机200向左、右旋转是指以无人机200的前后方向为轴向,顺时针或逆时针旋转。
进一步的,可以设置一个全局变量,用来判断无人机200是否处于体感控制模式,当全局变量为“NO”时,无人机200未处于体感控制模式,发送模块440向无人机200发送悬停指令;当全局变量为“YES”时,无人机200处于体感控制模式,发送模块440向无人机200发送体感控制模式下的控制指令。在体感控制模式下,遥控终端100可通过自带的陀螺仪、角度传感器等侦测遥控终端100的姿态数据,并依据该姿态数据进一步控制无人机200。
当遥控终端100与所述无人机200通过WIFI连接成功之后,全局变量为“NO”,此时,控制指令包括的前后值、左右值、升降值、旋转值均为默认值1500,即悬停指令,发送模块440可以以50HZ的频率向无人机200发送悬停指令。
侦测模块410,还用于侦测作用于所述遥控终端100的长按操作。
在本发明实施例中,所述长按操作可以是作用于遥控终端100的触控屏幕114的第一操作区域120或实体按键的长按操作,可以预先对长按操作进行定义,例如,触控屏幕114的第一操作区域120或实体按键被持续按压超过预设时间(例如2s)时则定义为被长按操作。需要说明的是,长按操作不一定是作用于触控屏幕114的第一操作区域120的一个固定点上,在长按操作的过程中,只要用户的手指不离开触控屏幕114的第一操作区域120,即使在第一操作区域120内产生一定的位移也可以称为长按操作。
在本发明实施例中,当用户长按遥控终端100的触控屏幕114的第一操作区域120或第一操作区域120的虚拟按键121时,触控屏幕114上的触控信号发送至处理器106,由处理器106依据触控信号生成第一长按操作指令,侦测模块410可以侦测到该第一长按操作指令,如此,侦测模块410可以侦测到用户作用于所述触控屏幕114的长按操作。或者,当用户长按遥控终端100的实体按键(例如音量键111或主页键113)时,实体按键的按压信号发送至处理器106,由处理器106依据按压信号生成第二长按操作指令,侦测模块410可以侦测到该第二长按操作指令,如此,侦测模块410可以侦测到作用于所述遥控终端100的实体按键的长按操作。
进一步的,在侦测作用于遥控终端100的触控屏幕114的第一操作区域120的长按操作之前,生成模块430还可以在所述第一操作区域120生成操作指示标识(例如虚拟按键121或其他符号标识),操作指示标识指示所述第一操作区域120在触控屏幕114上的区域。
长按操作可以触发无人机200进入体感控制模式,进入体感控制模式之后,无人机飞行控制器可以根据遥控终端100的姿态数据,控制无人机200飞行。
获取模块420,用于在所述长按操作的持续过程中,获取所述遥控终端100的姿态数据。
在遥控终端100的第一操作区域120或实体按键被长按的过程中,全局变量变为“YES”,此时,获取模块420可以以一定的频率(例如50HZ)获取所述遥控终端100的姿态数据。
遥控终端100的姿态数据包括遥控终端的倾斜方向和倾斜角度,例如,遥控终端向左倾斜第一角度、向右倾斜第二角度、向前倾斜第三角度、向后倾斜第四角度。姿态数据可以为用户临时对遥控终端100的操作以控制遥控终端100的倾斜方向和倾斜角度。例如,当遥控终端100在进入体感控制模式之后处于一水平面时,用户通过翻转遥控终端100的方式控制遥控终端100向左倾斜30度,则此时的姿态数据为遥控终端向左倾斜30度。当用户再次通过翻转遥控终端100的方式控制遥控终端向右倾斜50度,则此时的姿态数据为遥控终端向右倾斜50度。姿态数据还可以为遥控终端100的预先被放置的左右倾斜的角度和前后倾斜的角度,此时无需用户临时对遥控终端100进行调整。例如,遥控终端100在进入体感控制模式之前,预先被放置的位置相对一水平面为向左倾斜40度,则此时的姿态数据为遥控终端100向左倾斜40度。需要说的是,在遥控终端100进入体感控制模式之后,该姿态数据仍可被侦测到。
其中,遥控终端100的倾斜方向和倾斜角度是基于遥控终端100所在的坐标系,例如,请参阅图6,以遥控终端100的重心为原点O,以与遥控终端100的长边平行的直线为X轴,以与遥控终端100的短边平行的直线为Y轴,遥控终端100向左倾斜即:从+Y方向看向原点O,遥控终端100饶Y轴顺时针旋转,遥控终端100向右倾斜即:从+Y方向看向原点O,遥控终端100饶Y轴逆时针旋转,遥控终端100向前倾斜即:从+X方向看向原点O,遥控终端100饶X轴顺时针旋转,遥控终端100向后倾斜即:从+X方向看向原点O,遥控终端100饶X轴逆时针旋转。
生成模块430,用于依据所述姿态数据,生成与所述姿态数据匹配的第一控制指令。
在本发明实施例中,生成模块430可以依据遥控终端左右倾斜的角度,根据一定的算法计算出指令数据包中的左右值,生成模块430可以依据遥控终端前后倾斜的角度,根据一定的算法计算出指令数据包中前后值。然后,生成模块430将依据姿态数据计算出的左右值和前后值,以及默认的升降值和旋转值进行打包,生成第一控制指令。在本实施例中,遥控终端100的姿态数据并不用于计算指令数据包中的升降值和旋转值,当用户长按遥控终端100的第一操作区域120时,升降值和旋转值为默认值1500,升降值和旋转值的改变将在后续进行详细说明。
遥控终端100的倾斜方向可以与无人机200的飞行方向对应,例如,遥控终端100向左倾斜,无人机200则向左飞行,遥控终端100向右倾斜,无人机200则向右飞行,遥控终端100向前倾斜,无人机200则向前飞行,遥控终端100向后倾斜,无人机200则向后飞行。更加具体的,例如,当遥控终端100向左倾斜40度,遥控终端100在前后方向不倾斜,那么生成模块430可以依据遥控终端100向左倾斜的角度,根据一定的算法计算出左右值为1700,前后值为1500,将左右值、前后值以及默认的升降值和旋转值打包为第一控制指令,无人机200的飞行控制器在接收到该第一控制指令之后,就会控制无人机200向左飞行。当遥控终端100向右倾斜40度,遥控终端100在前后方向不倾斜,那么生成模块430可以依据遥控终端100向右倾斜的角度,根据一定的算法计算出左右值为1300,前后值为1500,将左右值、前后值以及默认的升降值和旋转值打包为第一控制指令,无人机200的飞行控制器在接收到该第一控制指令之后,就会控制无人机200向右飞行。前后值的计算方法与左右值的计算方法相同,在此不再赘述。
需要说明的是,遥控终端100可以在前后方向和左右方向上均倾斜一定角度,此时,遥控终端100第一控制指令中的前后值和左右值均不为1500,例如,遥控终端100向左前方倾斜,生成模块430可以将遥控终端100的倾斜角度分解为向左的倾斜角度和向前的倾斜角度,并根据一定的算法分别计算出左右值(例如1600)和前后值(例如1400),并将左右值、前后值以及默认的升降值和旋转值打包为第一控制指令,无人机飞行控制器在接收到该第一控制指令之后,即控制无人机200向左前方飞行。
进一步地,遥控终端100的倾斜角度的大小可以与左右值或前后值成正比,左右值或前后值可以与无人机200在对应方向的飞行速度成正比,因此,遥控终端100的倾斜角度可以与无人机200在对应方向的飞行速度成正比。例如,当遥控终端100向左倾斜20度时,生成模块430根据一定的算法计算出左右值为1600,此时,无人机200向左的飞行速度为0.5m/s;当遥控终端100向左倾斜40度时,生成模块430根据一定的算法计算出左右值为1700,此时,无人机200向左飞行的飞行速度为1m/s。
发送模块440,还用于将所述第一控制指令发送给无人机200,其中,所述第一控制指令用于控制所述无人机200的飞行轨迹。
在本发明实施例中,第一控制指令由生成模块430生成之后,发送模块440可以将第一控制指令发送给无人机200上的无人机飞行控制器(飞控),飞控可以依据第一控制指令控制无人机200在与第一控制指令对应的方向上、以与第一控制指令对应的速度飞行。需要说明的是,获取模块420可以以一定的频率(例如50HZ)获取所述遥控终端100的姿态数据,再由生成模块430生成与所述姿态数据匹配的第一控制指令,因此,第一控制指令也可以以一定的频率(例如50HZ)被发送给无人机200。
进一步的,所述侦测模块410还用于在作用于所述遥控终端100的长按操作的持续过程中,侦测作用于所述遥控终端100的第二操作区域140的滑动操作。
本发明实施例中,用户在长按遥控终端100的实体按键或第一操作区域120的同时,还可以在第二操作区域140进行滑动操作,例如,沿图3所示的A、B、C、D四个方向滑动,用户在第二操作区域140的滑动操作可以由侦测模块410侦测。
生成模块430还用于依据所述滑动操作以及所述姿态数据,生成第二控制指令。
本发明实施例中,当用户在第二操作区域140沿A、B、C、D四个方向滑动时,沿A方向的滑动操作可以定义为升降值增加,沿B方向的滑动操作可以定义为升降值减少,沿C方向滑动的距离可以定义为旋转值增加,沿D方向滑动的距离可以定义为旋转值减少。因此,生成模块430可以依据沿A、B方向的滑动操作计算升降值,依据沿C、D方向的滑动操作计算旋转值。
进一步的,沿A、B方向滑动的距离可以与升降值成正比,升降值可以与无人机200在上下方向的飞行速度成正比,因此,沿A、B方向滑动的距离可以与无人机200在上下方向的飞行速度成正比。沿C、D方向滑动的距离可以与旋转值成正比,旋转值可以与无人机200在左右方向的旋转角度成正比,因此,沿C、D方向滑动的距离可以与无人机200在左右方向的旋转角度成正比。例如,沿A方向滑动1cm时,生成模块430根据一定的算法计算出升降值为1600,此时,无人机200向上飞行的速度为0.5m/s;沿A方向滑动2cm时,生成模块430根据一定的算法计算出升降值为1700,此时,无人机200向上飞行的速度为1m/s。沿C方向滑动1cm时,生成模块430根据一定的算法计算出旋转值为1600,此时,无人机200向左旋转的角度为10度;沿C方向滑动2cm时,生成模块430根据一定的算法计算出旋转值为1700,此时,无人机200向左旋转的角度为20度。
生成模块430依据所述滑动操作计算出升降值和旋转值,以及依据所述姿态数据计算出前后值和左右值(请参考前文叙述内容),并将计算出的升降值、旋转值、前后值以及左右值打包成指令数据包,以生成第二控制指令。
发送模块440还用于将所述第二控制指令发送给所述无人机。
在本发明实施例中,第二控制指令由生成模块430生成之后,发送模块440可以将第二控制指令发送给无人机200上的无人机飞行控制器(飞控),飞控可以依据第二控制指令控制无人机200在与第二控制指令对应的方向上、以与第二控制指令对应的速度飞行。
需要说明的是,第二控制指令是升降值、旋转值、前后值以及左右值进行叠加之后的一个指令,例如,第二控制指令中的升降值为1600,旋转值为1500,前后值为1700,左右值为1500,那么,该第二控制指令即为控制无人机200向后上方飞行的指令。
发送模块440还用于在作用于所述遥控终端100的长按操作结束时,发送悬停指令至所述无人机200。
本发明实施例中,在作用于所述遥控终端100的第一操作区域120或实体按键的长按操作结束时,用来判断无人机200是否处于体感控制模式的全局变量变为“NO”,此时,发送模块440可以发送升降值、旋转值、前后值以及左右值均为1500的控制指令(即悬停指令)至无人机200,无人机200接收到悬停指令之后即执行悬停动作。
另外,若用户没有在述遥控终端100进行长按操作,而只在第二操作区域140进行滑动操作,那么,生成模块430可以生成第三控制指令,在该第三控制指令中,前后值和左右值均为1500,无人机200在前、后、左、右方向上不会有位移。无人机200可以依据第三控制指令执行向上飞行、向下飞行、向左旋转以及向右旋转的动作。
第二实施例
请参阅图7,示出了本发明较佳实施例提供的无人机飞行控制方法的流程图。本发明较佳实施例提供的无人机飞行控制方法包括以下步骤:
步骤S1,侦测遥控终端100是否与无人机200连接成功。
在本发明实施例中,步骤S1可以由侦测模块410执行。遥控终端100与无人机200可以通过无线网络300进行连接,优选的,在本发明实施例中,无线网络300为WIFI。当遥控终端100与无人机200连接成功时,执行步骤S2,当遥控终端100与无人机200未连接成功时,遥控终端100的飞行控制不可用,无人机200不会响应遥控终端100发出的控制指令。
步骤S2,在所述遥控终端100与所述无人机200无线连接成功之后,发送悬停指令至无人机200。
在本发明实施例中,步骤S2可以由发送模块440执行。遥控终端100与无人机200连接之后,遥控终端100可以通过套接字(Socket)以用户数据报协议(User Datagram Protocol,UDP)的传输方式,以50HZ的频率向无人机飞行控制器(飞控)发送控制指令。所述控制指令为指令数据包,该指令数据包包括4个用于控制无人机200飞行方向的数据,该4个数据分别是控制无人机左右飞行的左右值、控制无人机前后飞行的前后值、控制无人机升降的升降值、以及控制无人机旋转的旋转值。对该4个数据可以设定取值范围,在本发明较佳实施例中,该4个数据的取值范围均为1100到1900,在其他实施例中,取值范围也可为其他数值范围。当该4个数据的值都为1500时,控制指令为悬停指令;当该4个数据中的任何一个不为1500时,控制指令为控制无人机200飞行的除悬停以外的其他指令。
进一步的,可以设置一个全局变量,用来判断无人机200是否处于体感控制模式,当全局变量为“NO”时,无人机200未处于体感操控模式,发送模块440向无人机200发送悬停指令;当全局变量为“YES”时,无人机200处于体感控制模式,发送模块440向无人机200发送体感控制模式下的控制指令。
当遥控终端100与所述无人机200通过WIFI连接成功之后,全局变量为“NO”,此时,控制指令包括的前后值、左右值、升降值、旋转值均为1500,即悬停指令,发送模块440可以以50HZ的频率向无人机200发送悬停指令。
步骤S3,侦测作用于所述遥控终端100的长按操作。
在本发明实施例中,步骤S3可以由侦测模块410执行。当用户长按遥控终端100的触控屏幕114的第一操作区域120或遥控终端100实体按键时,侦测模块410可以侦测到作用于所述遥控终端100的触控屏幕114的第一操作区域120或遥控终端100的实体按键的长按操作,在本发明实施例中,可以预先对作用于所述遥控终端100的长按操作进行定义,例如,第一操作区域120或实体按键被持续按压超过预设时间(例如2s)时则定义为被长按。若侦测到作用于所述遥控终端100的长按操作,则执行步骤S4,若未侦测到作用于所述遥控终端100的长按操作,则执行步骤S2。
进一步的,在步骤S3之前,还可以包括步骤S31,在第一操作区域120生成操作指示标识(例如虚拟按键121或其他符号标识),操作指示标识指示所述第一操作区域120在触控屏幕114上的区域。其中,步骤S31可以由生成模块430执行。
步骤S4,无人机200进入体感控制模式。
在本发明实施例中,作用于所述遥控终端100的长按操作可以触发无人机200进入体感控制模式。
步骤S5,在所述长按操作的持续过程中,获取所述遥控终端100的姿态数据。
在本发明实施例中,步骤S5可以由获取模块420执行。在遥控终端100的第一操作区域120或实体按键被长按的过程中,全局变量变为“YES”,此时,获取模块420可以以一定的频率(例如50HZ)获取所述遥控终端100的姿态数据。
步骤S6,依据所述姿态数据,生成与所述姿态数据匹配的第一控制指令。
在本发明实施例中,步骤S6可以由生成模块430执行。遥控终端100的姿态数据包括遥控终端100的倾斜角度和倾斜方向,遥控终端100的倾斜方向可以与无人机200的飞行方向对应,例如,遥控终端100向左倾斜,无人机200则向左飞行,遥控终端100向右倾斜,无人机200则向右飞行,遥控终端100向前倾斜,无人机200则向前飞行,遥控终端100向后倾斜,无人机200则向后飞行。生成模块430可以依据遥控终端左右倾斜的角度,根据一定的算法计算出指令数据包中的左右值,生成模块430可以依据遥控终端前后倾斜的角度,根据一定的算法计算出指令数据包中前后值。然后,生成模块430将依据姿态数据计算出的左右值和前后值,以及默认的升降值和旋转值进行打包,生成第一控制指令。
在本实施例中,遥控终端100的姿态数据并不用于计算指令数据包中的升降值和旋转值,当用户长按遥控终端100的第一操作区域120时,升降值和旋转值为默认值1500,升降值和旋转值的改变将在后续进行详细说明。
进一步地,遥控终端100的倾斜角度可以与左右值或前后值成正比,左右值或前后值可以与无人机200在对应方向的飞行速度成正比,因此,遥控终端100的倾斜角度可以与无人机200在对应方向的飞行速度成正比。例如,当遥控终端100向左倾斜20度时,生成模块430根据一定的算法计算出左右值为1600,此时,无人机200向左的飞行速度为0.5m/s;当遥控终端100向左倾斜40度时,生成模块430根据一定的算法计算出左右值为1700,此时,无人机200向左飞行的飞行速度为1m/s。
在本发明实施例中,第一控制指令由生成模块430生成之后,还可以包括将第一控制指令发送给无人机200上的无人机飞行控制器(飞控)的步骤,该步骤可以由发送模块440执行,第一控制指令用于控制所述无人机200的飞行轨迹,飞控可以依据第一控制指令控制无人机200在与第一控制指令对应的方向上、以与第一控制指令对应的速度飞行。
步骤S7,在作用于所述遥控终端100的长按操作的持续过程中,侦测作用于所述遥控终端100的触控屏幕114的第二操作区域140的滑动操作。
本发明实施例中,步骤S7可以由侦测模块410执行。用户在长按遥控终端100的触控屏幕114的第一操作区域120或实体按键时,还可以在触控屏幕114的第二操作区域140进行滑动操作,例如,沿图3所示的A、B、C、D四个方向滑动,用户在第二操作区域140的滑动操作可以由侦测模块410侦测。若侦测到作用于所述遥控终端100的第二操作区域140的滑动操作,则执行步骤S8,若未侦测到作用于所述遥控终端100的第二操作区域140的滑动操作,则执行步骤S5。
步骤S8,依据所述滑动操作以及所述姿态数据,生成第二控制指令。
本发明实施例中,步骤S8可以由生成模块430执行。当用户在第二操作区域140沿A、B、C、D四个方向滑动时,沿A方向的滑动操作可以定义为升降值增加,沿B方向的滑动操作可以定义为升降值减少,沿C方向滑动的距离可以定义为旋转值增加,沿D方向滑动的距离可以定义为旋转值减少。因此,生成模块430可以依据沿A、B方向的滑动操作计算升降值,依据沿C、D方向的滑动操作计算旋转值。
进一步的,沿A、B方向滑动的距离可以与升降值成正比,升降值可以与无人机200在上下方向的飞行速度成正比,因此,沿A、B方向滑动的距离可以与无人机200在上下方向的飞行速度成正比。沿C、D方向滑动的距离可以与旋转值成正比,旋转值可以与无人机200在左右方向的旋转角度成正比,因此,沿C、D方向滑动的距离可以与无人机200在左右方向的旋转角度成正比。
生成模块430依据所述滑动操作计算出升降值和旋转值,以及依据所述姿态数据计算出前后值和左右值(请参考前文叙述内容),并将计算出的升降值、旋转值、前后值以及左右值打包成指令数据包,以生成第二控制指令。
在本发明实施例中,第二控制指令由生成模块430生成之后,还可以包括将第二控制指令发送给无人机200上的无人机飞行控制器(飞控)的步骤,该步骤可以由发送模块440执行。飞控可以依据第二控制指令控制无人机200在与第二控制指令对应的方向上、以与第二控制指令对应的速度飞行。
步骤S9,侦测作用于所述遥控终端100的长按操作是否结束。
在本发明实施例中,步骤S9可以由侦测模块410执行。当侦测模块410未侦测到作用于所述遥控终端100的第一操作区域120或实体按键的长按操作时,即可判定作用于所述遥控终端100的长按操作已经结束。需要说明的是,步骤S9可以在长按操作的持续过程中的任何时间点执行。若长按操作结束,则执行步骤S10,若长按操作未结束,则执行步骤S5。
步骤S10,发送悬停指令至所述无人机200,无人机200退出体感控制模式并悬停。
本发明实施例中,步骤S10中,可以由发送模块440发送悬停指令至所述无人机200。在作用于所述遥控终端100的长按操作结束时,用来判断无人机200是否处于体感控制模式的全局变量变为“NO”,此时,无人机200退出体感控制模式。发送模块440可以发送升降值、旋转值、前后值以及左右值均为1500的控制指令(即悬停指令)至无人机200,无人机200接收到悬停指令之后即执行悬停动作。
本发明提供的一种无人机飞行控制装置、方法及遥控终端,通过侦测作用于遥控终端的长按操作;在所述长按操作的持续过程中,获取遥控终端的姿态数据;依据姿态数据,生成与姿态数据匹配的第一控制指令;将第一控制指令发送给无人机,其中,所述第一控制指令用于控制所述无人机的飞行轨迹。如此,通过长按操作触发体感控制模式,可以让无人机的飞行操作变得更加安全,从而减少了各种飞行意外和事故。同时,也降低了无人机的飞行控制难度,无人机新手也可以进行操作,提高了用户体验。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。