作者:叶长春;王钟雷;韩滔;朱疆成
引言
国际空中机器人大赛 (International Aerial Robotics Competition, IARC)自1991年首次开展以来,已经成为当今历史最长、最具挑战性的无人机大赛之一。该赛事在23年的历程中,先后完成了6代任务,2014年进入第7代任务。比赛目的是推动无人机技术向前发展。
当前的第7代任务需要无人机驱赶地面机器人越过指定边界,同时还要躲避障碍物并满足飞行高度和边界限制。由于比赛场地是边长为20米的正方形区域,如图1所示,且无人机只能在没有先验地图的情况下完成比赛,所以成熟的无人机实时定位与地图构建(Simutaneously Locating and Mapping, SLAM)方法[1-2]是不适用的,必须重新设计新的实现方法。
多旋翼无人机是一种多轴飞行器,有多个旋翼来悬停、维持姿态及平飞。和固定翼飞机不同,它通过旋翼提供的推力使飞机升空,其旋翼大小相同,分布位置接近对称,比较常见的是四旋翼和六旋翼。简单来说,通过调整不同旋翼之间的相对速度来调节不同位置的推力,并克服每个旋翼之间的反扭力矩,就可以控制飞机维持姿态、或完成各种机动飞行。出于比赛对飞行器尺寸的限制以及平台的成熟度考虑,这里选用四旋翼作为无人机平台,搭建的无人机平台如图2所示。
第7代任务的技术重点是移动目标跟踪与降落、移动障碍物规避和驱赶策略制定。这些任务的完成需要激光雷达、摄像头,超声波和惯性测量单元(Inertial Measurement Unit, IMU)等传感器,同时在软件层面需要多任务同时运行。这对编程提出了很大的挑战,为了方便程序的多任务管理、程序复用和多任务通信,引入机器人操作系统(Robotic Operating System,ROS)框架。ROS是基于Linux,针对机器人任务而深度定制的操作系统[3]。ROS以其节点化的组织结构和多编程语言的支持使程序员能更加专注于算法的实现,ROS内部有专门的节点管理器负责节点间的通信,还能对同一个WIFI网段的节点进行管理。考虑到比赛现场复杂的电磁环境,将图像传回地面站进行计算存在传输延时以及连接中断的风险,将计算主要放在无人机机载设备上是一个可靠的选择,地面站则负责一些飞行状态的显示。
1 硬件平台
平台采用XAircraft X650 Pro碳纤可折叠四旋翼机架,TMOTOR 3110电机和配套电调。底层飞行器姿态控制选用悟空飞控系统,遥控器选用天地飞7通道遥控器,使用STM32做手自动切换。上层部分选用X86嵌入式微控制器负责图像获取、激光雷达数据获取、控制指令计算和飞行数据反馈,图3是飞行器的整体框架,由于各个模块所需的电压不同,这里的供电部分采用虚线连接,下面具体介绍各个硬件模块。
1.1 手动自动切换
由于悟空飞控系统整体是不开源的,不能获得其姿态解算数据,只能通过改变其输入信号来改变其飞行方向,经过测试发现接收机信号是周期为21ms的PWM信号。为了满足程序自动控制和遥控器手动控制的切换,这里引入STM32单片机实现手/自动控制的切换和模拟接收机信号。接收机5路信号即油门、俯仰、偏航、横滚和手动自动切换,STM32的5个定时器负责捕捉5路接收机信号,1个定时产生4路周期相同的PWM信号来模拟实际的接收机信号并输出给悟空飞控,具体见图4。
1.2 视觉部分
四旋翼的视觉部分主要由摄像头、嵌入式工控机组成,摄像头选用罗技HD720P广角USB摄像头。视觉算法需要一定的硬件计算资源,考虑到ARM架构的控制板的计算能力有限且存在交叉编译的问题,这里选用X86架构的工控机作为机载计算平台,参考市面上的一些微工控机以及尺寸功耗的考虑,最终选用威盛P910工控机。
1.3 避障部分
避障部分主要由激光雷达组成,激光雷达测距系统包括一个单束窄带激光器和一个接收系统。这里选用日本北阳株式会社产的Hokuyo UTM-30LX激光雷达,如图5所示,此款雷达有270度的测量范围和30米的测试距离,总重270g,满足飞行器避障模块的要求。
2 软件结构
软件结构主要可以分为4个部分:定位、目标识别与跟踪、高度控制和避障。几个模块之间是互相独立又互相联系的,整个控制回路最后数据融合输出到飞行器硬件平台。在ROS框架下有很多开源的包可以利用,各个软件模块都在ROS下实现。软件整体结构如图6所示,下面分块介绍逐个模块的实现。
2.1 TLD算法
TLD(Tracking-Learning-Detecting)由英国萨利大学的Zdenek Kalal提出[5]。TLD是一种稳定、鲁棒、可靠的长时间跟踪算法。该算法研究的出发点是单独地运用现有跟踪算法或检测算法都无法长时间地跟踪目标。Kalal创造性地将跟踪算法和检测算法相结合来解决跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题,同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加理想。
在此系统中,为了保持好的追踪效果。根据地面机器人在图像中的位置,引入一个PD控制器,使飞行器保持在地面机器人上方。控制器的输入是摄像头画面中央的像素位置,反馈值是实际捕捉到的地面机器人在图像中的位置,控制框图如图7所示,根据实验调整PD参数而使地面机器人保持在图像的中央。图8显示了飞行器识别出的地面机器人,图9显示飞行器正在跟踪地面机器人。
2.2 高度控制算法
根据实际飞行器实验和悟空控制系统的说明[6],测试到油门信号与飞行器的实际升降有对应关系,具体如图10所示。油门PWM信号占空比分子在1000到2000之间变化,当在1450到1550之间时,悟空控制系统会使飞行器会自动锁定当前高度,根据这一特点设计了开关控制器,当高度低于给定值将占空比分子设置成1580,这样飞行器会缓缓上升。当高度高于给定值时设成1430,这样飞行器缓缓下降。并设置实际值在给定值上下5cm不作控制,即自动锁定当前高度。如图11,实验时给定值在0.5m—1m—1.5m切换时,飞行器能及时达到给定值。在打舵的时候,飞行器高度会有所改变,该控制器也能及时调整达到设定高度。图11中直线表示给定高度,绿线表示飞行器的实际高度,在时间10s附近开启高度控制器。
3 结束语
基于国际空中机器人大赛第7代任务,本文提出了一种机载设备的实现方法,并详细介绍了该方法的硬件平台和软件模块。此方法完成了定位、高度控制、障碍物规避和单一地面机器人识别与跟踪。飞行器续航能力有限且比赛时间有一定要求,所以要完成比赛a阶段的追赶目标,上层的策略模块还需要进一步完善。比赛的b阶段增加了飞行器的同台博弈,因此还需要更多的实验以增加系统的鲁棒性。
责任编辑:gt
-
机器人
+关注
关注
210文章
28180浏览量
206337 -
摄像头
+关注
关注
59文章
4806浏览量
95389 -
激光雷达
+关注
关注
967文章
3937浏览量
189563
发布评论请先 登录
相关推荐
评论