基于optitrack的四旋翼无人飞行器室内控制平台软件设计小论文.docVIP

  • 24
  • 0
  • 约6.63千字
  • 约 5页
  • 2017-08-26 发布于重庆
  • 举报

基于optitrack的四旋翼无人飞行器室内控制平台软件设计小论文.doc

基于optitrack的四旋翼无人飞行器室内控制平台软件设计小论文

基于optitrack的四旋翼无人飞行器室内控制平台软件设计 学 院:机械工程 专 业:机械工程 姓 名:高伟晋 学 号指导教师:缪存孝 讲师 摘 要 课题的背景与意义 随着无人机的小型化和轻量化发展,越来越多的无人机应用推广到了室内。相应地,对室内地面站软件的要求也越来越高。在靠MOCAP等室内定位系统获取到的飞行器位姿的基础上进行飞行器的控制,是目前室内飞行器地面站需要实现的基本功能。进行室内轨迹的规划与跟踪,执行特定的室内动作,都需要室内地面站的支持。本文即关注飞行器的室内飞行控制地面站的开发,尝试实现飞行器的室内定点悬停和简单的航迹跟踪功能。 在室外靠GPS定位导航的无人机地面站已经比较成熟,而在应用于室内的无人机地面站尚处在探索阶段。首先,室内的定位问题也没有通用的解决方案,目前用到的方法有IMU,光流,动作捕捉,视觉等。各种方法各有优劣,动作捕捉由于定位精度高(相对于IMU),处理速度块(相对于视觉)等优点,广泛应用于室内的定位应用。其次,由于四旋翼飞行器结构简单、成本低廉、飞行性能卓越以及飞行控制方式独特等原因,已经成为室内SLAM,室内短距通信等研究的重要平台。最后,四旋翼飞行器的编队飞行是无人机研究的又一热点与难点,而室内控制平台的开发是研究飞行器的室内编队飞行的前提。无人机编队飞行,协同执行任务提高了效率与可靠性,在应用领域意义重大,可以用来开发与验证算法,促进其它相关领域的发展。 相关原理介绍 无人机实时定位解决方案是利用高精度的OptiTrack三维运动捕捉系统。OptiTrack利用了双目定位的原理。双目定位原理是如果两台已知参数和相对位置的摄像头同时看到一个点,那么从几何学上来说,这个点的位置是唯一确定的。OptiTrack系统包括至少6台以上的摄像头,相当于多对双目;又由于其能自身发射红外光,镜头只接收红外光,不受外界可见光影响,所以捕捉位置精度高,在0.1mm以下。OptiTrack只对点进行定位,相对于传统图像视觉,处理信息量少,因此延时很短,在4ms以下。地面站和室内定位系统OptiTrack之间通过UDP协议进行通信,利用制作商提供的SDK在MATLAB中实现飞行器位置和姿态数据的获取。获取的过程是首先进行网络通信的连接,然后获取信息的描述文件,最后利用信息描述文件进行消息的解析,得到飞行器的位置和姿态信息。只要运行地面站和运行室内定位系统的电脑在同一局域网中,地面站就能获取到室内定位系统发出的数据。有时为了保持实时性,两者可以运行在一台电脑上,使用本地回环地址进行通信。 航点设置是本课题无人机地面控制站的一项重要功能,也是实现自主飞行的必要模块。通过手动输入航点的方式控制飞行器飞到指定的地点。其中手动输入航点分为两种方式,一是键盘输入,二是直接从坐标系中选取。航点的控制最终要转换为四旋翼飞行器姿态设定值。一个典型的四旋翼控制过程分为三个环节,分别是电机的控制,姿态的控制和位置的控制。在本平台中电机和姿态的控制在飞行控制器中完成,在地面站上进行的是姿态规划算法,即根据航点的偏差解算姿态的设定值。姿态控制算法用来控制飞行器姿态的三个自由度,以给定姿态与姿态检测算法得出的姿态偏差作为输入,以四旋翼无人机的四个电机转速作为输出,从而达到控制飞行器姿态的目的。姿态的规划算法的具体原理是根据位置偏差计算出期望的速度,根据期望速度和实际速度计算出期望的加速度,根据期望的加速度计算期望的姿态角。 地面管理软件和四旋翼无人飞行器之间的数据通信使用的是MAVLink协议。MAVLink是无人飞行器与地面站之间通讯,以及无人飞行器之间通讯最常用的协议,该协议在2009年被瑞士苏黎世联邦理工学院的发布,经过多年在其他开源飞控上的测试,已经证明了其实用性和稳定性。本平台使用无线数传来进行MAVLink通信。硬件上,无线数传属于串口,最高波特率可到921600,支持全双工。在通信过程中,为了避免数据的丢失,在程序实现上利用两个线程分别进行读写操作。在写线程中,把将要发送的数据打包成MAVLink协议格式的字符串,通过串口发送。在读线程中,程序时刻判断串口接受缓存区是否有完整的一帧消息,如果有则根据信息的ID进行数据的解析。由于MATLAB在处理多线程方面的短板,该部分使用c++语言实现,写成Simulink的S函数格式,编译成MEX文件在Simulink中调用。 地面站软件总体设计 本课题选择的软件开发环境是MATLAB,相比于其他面向对象的语言,MATLAB属于解释性语言,在执行过程中逐渐编译,所以方便排查错误。本课题的大部分程序代码是在MATLAB中完成的,包括

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档