李梦 曾林鹏 黄旭阳
摘 要:本设计通过电子技术、机械装置设置和应用程序编写来设计体感无人机,以STC15W贴片单片机为无人机的控制核心,分为无人机模块、Kinect传感器模块、地面站模块和控制程序模块,用Kinect传感器作为用户肢体采集的核心部件,通过对用户动作的采集,用程序来识别出用戶的当前动作,传输指令到地面站,再发送给无人机,实现无人机的体感控制。同时,为了地面人员的安全,对一些危险姿态采用了一定的安全措施,使新手用户在使用时,不会因为操作不当造成不必要的伤害,并且由遥控器到体感这一控制系统的变化,提高了无人机操作的乐趣。
关键词:无人机;Kinect传感器;体感
近年来,无人机在民用方面的应用越来越多,各国在无人机的民用方面逐渐开放。引用大疆创新创始人汪滔的话:“人类对于飞行的梦想与生俱来。”随着无人机的迅速发展,无人机也越来越常见。而无论是工业级无人机还是消费级无人机,绝大多数无人机都配备有遥控器。遥控器提供精准操作方式的同时,也让小白用户望而却步。有人说,遥控器是无人机的痛点。现实也是如此,而体感手势操作不仅是一种新的操控方式,更是降低了操控的难度。
手朝上升空,手朝下降低,伸左手朝左,伸右手朝右等。不同手势对应不同的无人机操作。新的操作方式,不仅添加了无人机的可玩性,还更利于新手入门。这种操作方式极大地降低了操控的难度,也更利于新手掌握无人机飞行时的方向感,提高学习无人机飞行的效率。
1 体感无人机设计方法
本设计是通过电子技术、机械装置设置和应用程序编写来设计体感无人机,无人机主要分为无人机模块、Kinect传感器模块、地面站模块和控制程序模块,由这几个模块来实现体感无人机的功能,无人机的总体控制原理如图1所示。
1.1 无人机模块
无人机模块设计的目的是实现体感无人机可以成功起飞升空,并在空中停留一定的时间,以及可以完成空中的前后左右运动。
在满足微型旋翼无人机系统稳定、可靠运行的情况下,应尽量减少开发过程中带来的风险,降低开发成本。因此,应尽量选择低功耗、高性能、性价比高的电子元器件[1]。所以我们选用STC15W贴片芯片作为单片机、选用MPU-6050陀螺仪、无线2.4 G模块LT8910、设计4轴电机模块、并配置下载和电池模块。MPU-6000的角速度全格感测范围为±250、±500、±1 000与±2 000°/sec(dps),可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2 g,±4 g,±8 g与±16 g,对姿态的变化较为敏感,符合我们的制作需求。在STC15W中下载编写的源程序,通过陀螺仪监测无人机的姿态状况,返回无人机的姿态状态到单片机,如果无人机有所倾斜,则陀螺仪就会传回数据,通过对数据的判断,可以判断出无人机向哪一侧倾斜,然后由主芯片控制电机模块的4个电机的转速,高度较低的一侧电机输出增加,转速加快,通过一直判断无人机的姿态,返回姿态数据给单片机,从而控制无人机的平衡。同时,无线模块接收到地面站的信号,会将信号传输到单片机,然后由单片机控制4个电机,来完成前后左后上下等动作。
1.2 Kinect传感器模块
Kinect是由微软公司开发,可以使用肢体动作来操作各种软件、硬件的一套平台。如图2所示,它共有3个镜头,分别位于Kinect的两侧和中间位置。其中,中间的镜头是基于RGB的三基色普通摄像机,作用是用来采集彩色影像。而左边的镜头为微红外线发射装置,右边的镜头是微红外线(CMOS)摄像机构成的3D立体结构光深度感应装置,是用来采集深度数据的实物距离[2]。
通过传感器捕捉人物的肢体动作,通过深度摄像功能,拍摄出运用深浅体现远近的图片,获得突出手和手臂的动作的图片,通过算法,去除其他部分,分割出手部动作,通过识别手势的一些基本特征来进行编号,手指向上则上升,向下则下降,如果手部颜色由深到浅则是拉近,由浅到深则是远离,手指向左和向右对应的无人机飞行方向也是向左向右。
1.3 地面站模块
地面站模块设计的目的是实现地面控制终端和无人机之间的无线通信,使得两者之间有相互的运动控制和状态反馈以及图像的传输与显示。
在无人机起飞、飞行、降落的过程中与无人机的飞行控制系统进行实时通讯,保证无人机是在地面控制终端的控制之下。在确定地面控制指令的情况下,地面站通过无线链路,在串口通信协议的基础上,将人所发出的指令传输至无人机的飞行控制系统,使得无人机做出相应的动作。与此同时,无人机的飞行控制系统也将无人机上各种传感器所得的姿态环境参数数据回传至地面站,并通过地面站的显示程序和显示器进行显示。使得操作者可以实时看到无人机的具体运行状态以及对无人机的姿态进行相应的调整。
在此设计中,地面站连接电脑串口,在电脑程序判断出来人的手势动作后,串口输出前后左右上下等指令,通过地面站把指令转换成无线信号的方式发送出去,从而控制无人机的飞行,同时也增加了无人机的控制距离。同时,无人机的飞行状态也可以发送回地面站,再通过地面站传回电脑,在电脑上显示一些飞行的参数,比如高度和角度等。
1.4 控制程序模块
控制程序模块设计的目的是实现Kinect传感器模块、地面站模块和无人机模块之间的协调控制,使得整体的系统具有良好的完整性和良好的协调性。
在控制模块中,使用了C语言程序进行编程,对Kinect传感器模块所返回的图像进行程序内的算法处理,得到相应的手势动作,通过手势动作的辨别得到相应的飞行控制指令,通过电脑串口将执行指令传送至地面站模块,之后控制地面站模块与无人机飞行控制系统进行无线链路的串口通信,将指令传送至无人机飞行控制系统,飞行控制系统再控制无人机上的电机,完成指定的飞行动作。并同时通过地面站模块来读取无人机飞控所回传的相应的无人机姿态和环境数据,并显示在控制程序的前面板界面上。在电脑程序接收到一些极端姿态信息(比如连续翻转,机身翻转1 s以上默认为姿态危险)的时候,那么电脑程序会发送紧急停止指令,通过地面站发送出去,从而使无人机螺旋桨瞬间停止,从而保证地面人员的安全。在人的动作指令没有发送时,无人机将会自动悬停于空中。控制程序在保证无人机受到操控者控制以及回传数据显示的同时,也保证了3个系统模块的实时同步性,以及无人机操作的安全性,这也是系统整体联动协作的基础。
2 结语
在本项目中,Kinect体感器手势控制无人机摆脱了传统的遥控器操控方式,为入门级新手提供更加简单的控制方法,降低了操控的难度。手朝上升空,手朝下降低,伸左手朝左,伸右手朝右等。不同手势对应不同的无人机操作。新的操作方式,添加了无人机的可玩性,从遥控器转化为肢体动作,降低了上手难度。
[参考文献]
[1]张翔,吴嘉敏,王慧,等.微型旋翼无人机系统的设计与实现[J].电脑与电信,2017(12):5-9.
[2]杨琼楠,张苗苗,杨聪锟,等.基于Kinect手势识别的智能小车控制系统设计[J].国外电子测量技术,2018(9):85-89.