IARC第7代任务的机载计算解决方案
摘要:根据国际空中机器人大赛的第7代任务以及现场的比赛环境,本文提出了一种单纯依靠机载设备的任务实现方法,完成了该方法的硬件电路设计以及平台搭建、软件算法的设计与调试,并进行了对地面机器人的跟踪实验。该方法硬件平台由STM32微控制器、威盛P910 X86嵌入式工控机、悟空飞控系统以及外围传感器组成。软件在机器人操作系统框架下编写,主要包括定位模块、目标识别与追踪控制模块、高度控制模块、障碍规避模块和驱赶策略模块。
本文引用地址://www.cazqn.com/article/269818.htm引言
国际空中机器人大赛 (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工控机。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)万能遥控器相关文章:万能遥控器代码
激光器相关文章:激光器原理
评论