VIO——让无人机更自主更智能

让无人机送外卖也许在现在看来还有很长一段距离得走,但是这些应用场景任务总是让人心驰神往。智能任务固然让人心动,但如何让这些任务落地也是困扰学界的一个难题。

本人在北航可靠飞行控制研究组完成本科毕业设计。本文节选于“ 杨思捷. 基于视觉的多旋翼无人机集群室外局部自主定位[D] 北京航空航天大学本科学位论文,北京。

研究背景——集群+越障

从送外卖的例子推广开,为了让无人机完成一些自主和智能任务,归根结底是要解决两个问题:导航和避障。空中并非空无一物,飞行的鸟类,同样执行任务的无人机,高大的建筑和树木······无人机都有可能和这些物体发生碰撞,因而需要一定的避障方法。

为了更形象的解释无人机执行任务,从哲学三问出发,是谁,在哪,去哪。作为一个无人机,是谁这个问题的答案很明确;导航回答了在哪的问题,通过GPS定位获得全球的经纬度位置;去哪是由任务所决定的,不同的任务指定了不同的目的地。但就如人生难免有挫折一样,无人机在执行任务的路上也难免遇到绊子。首先是GPS定位的问题,不是所有的地方都有GPS信号,在山谷中,城市的建筑之间,森林或者电力输送线周边等环境中会因遮挡和电磁干扰等因素GPS信号受到干扰,无人机将产生不可预料的行为更有可能坠毁造成人员伤亡和财产损失。

既然GPS好像不是那么好使,那么有没有一种方法可以在GPS信号不好甚至没有GPS环境下提供定位呢?答案是肯定的,可以使用视觉惯性里程计(Visual-Inertial Odometry, VIO)或者提供局部定位。下面将结合本人的毕设介绍VIO。无人机要完成的任务来源空军装备部主办第二届“无人争锋”挑战赛,比赛任务要求无人机集群在无GPS环境下以密集编队形式按照规定路线飞行,并依次穿越路线上门框。

毕设中设计的解决方案是,通过VIO进行局部定位在GPS拒止环境下提供定位;使用视觉伺服的方法控制无人机接近并穿越门框;施加人工势场的避障分量避免无人机碰撞;通过融合多个相对位置的来源提高集群之间定位的精度。

VIO是什么

VIO是一种将图像和IMU数据作为输入,相机移动轨迹/相机当前位置作为输出的模块。它与SLAM(Simultaneous Localization And Mapping)有着紧密的联系。经典视觉SLAM框架如下图所示:

传感器一般为相机图像,IMU和码盘等,将读取到的数据送至前端进行处理;前端可以通过读取到的数据计算相邻数据帧之间的运动;前端得到的运动轨迹并不全局一致,后端通过非线性优化获得全局一致的结果,系统中不一定有回环检测,若有将回环的结果也加入后端优化中结果会更准确;回环检测判断机器人是否处于之前走过的位置,若是则将数据传至后端进行优化;建图是根据之前的数据建立符合任务要求的地图。一般可以认为VIO是SLAM的一个子集,VIO包括了传感器读取前端后端的部分,不一定有回环检测;而定位+建图才是SLAM,SLAM必定包括回环,因为SLAM建立的地图是全局一致的。关于SLAM的综述推荐文献[1]。

下面还有几点需要说明:

  1. 若前端处理的只有图像数据则为视觉里程计(Visual Odometry, VO)例如GASSE03使用的ygz_slam_ros前端是只利用了图像的VO。

  2. VIO是融合了图像和IMU数据,融合的方式有松耦合和紧耦合两种。松耦合是将图像输入VO得到位姿$\mathbf{T}^-$后融合IMU数据得到更可靠的位姿$\mathbf{T}^+$;紧耦合是输入图像,提取特征,与IMU数据一起估计位姿。

  3. 关于后端非线性优化的部分,一般有滤波和优化两种方法,可以认为滤波方法是只进行了一次迭代的优化方法。而关于滤波和优化的优劣还以实物效果为准,优化方法的精度较高但计算量大实时性差,滤波方法相反效率高但精度有所下降。

目前较为成熟的VIO框架和模型有MSCKF[2], ROVIO[3], OKVIS[4]和VINS-Mono[5]。

仿真实验

仿真实验基于AirSim进行,AirSim是一款基于虚幻引擎的无人机无人车模拟器,开源且支持跨平台,并可以和PX4飞控等硬件联合调试进行硬件在环仿真和软件在环仿真,实现物理和视觉上的逼真模拟。下图是任务模块和系统框架的设计

VIO定位

VIO对数据频率要求比较高,要求图像数据频率在20Hz以上,IMU频率在200Hz以上。仿真环境由于计算机平台的性能限制,无法达到那么高的数据频率,因而精度对比实际的效果会差一些。下面展示了一个无人机飞行20mx10m长方形轨迹的例子。

视觉伺服

比赛中需要穿越的门框为红色,提取门框特征后传入视觉伺服算法控制无人机接近并穿越门框

任务整体演示

4机集群

25机集群

第一人称视角

总结与展望

总结

  • 基于AirSim搭建任务场景,提供了和现实场景类似的任务环境,并在仿真中实现无人机集群密集编队,完成了越障任务
  • VIO提供相对位置进行自主飞行,视觉伺服控制无人机越障,人工势场避免无人机集群避障

展望

  • 仿真平台可以推广到其他任务,通过仿真提供先验数据并为实际的实验排除一切问题
  • 可以简单的从仿真环境迁移到实物环境,在仿真环境的基础上针对实物环境的干扰进行优化和处理,可以实现和仿真环境相同的效果

参考文献

[1] 刘浩敏, 章国锋, 鲍虎军. 基于单目视觉的同时定位与地图构建方法综述[J]. 计算机辅助设计与图形学学报, 2016, 28(6): 855-868.

[2] Mourikis A, Roumeliotis S. A multi-state constraint Kalman filter for vision-aided inertial navigation[C]. Proceedings of IEEE International Conference on Robotics and Automation. Los Alamitos: IEEE Computer Society Press, 2007: 3565-3572

[3] Sun K, Mohta K, Pfrommer B. Robust stereo visual inertial odometry for fast autonomous flight[J]. IEEE Robotics and Automation Letters, 2018, 3(2): 965-972.

[4] Leutenegger S, Lynen S, Bosse M. Keyframe-based visual–inertial odometry using nonlinear optimization[J]. The International Journal of Robotics Research, 2015, 34(3): 314-334.

[5] Qin T, Li P, Shen S. Vins-mono: A robust and versatile monocular visual-inertial state estimator[J]. IEEE Transactions on Robotics, 2018, 34(4): 1004-1020.

文章目录
  1. 1. 研究背景——集群+越障
  2. 2. VIO是什么
  3. 3. 仿真实验
    1. 3.1. VIO定位
    2. 3.2. 视觉伺服
    3. 3.3. 任务整体演示
  4. 4. 总结与展望
    1. 4.1. 总结
    2. 4.2. 展望
  5. 5. 参考文献
|