室内无源定位—激光SLAM在无人机上的飞行测试

室内无源定位—激光SLAM在无人机上的飞行测试

    • 开篇
    • 关于开源SLAM-Cartographer的无人机飞行测试总结
    • 从0开始构建激光SLAM

开篇

关于无人机、无人车的室内定问题一直是一个老大难问题,目前的定位方案分为外部定位自主定位,其中,外部定位方案已经相对成熟,例如UWB、wifi、蓝牙等都是非常稳定的,但是对于自主定位技术,主要包括激光SLAM、视觉SLAM(VSLAM)、超声波等其他测距仪,这些技术相对还不够成熟稳定,应用的也不多。

SLAM是近几年来大热的话题,其中激光SLAM更是在智能机器人领域得到了相对广泛的应用,比如扫地机器人,无人车等。但是,对于无人机这种非二维平面的运动物体来讲,要做到稳定的SLAM定位就比较难了(我们曾花费大量时间尝试运用开源算法实现,从环境搭建开始一步步······后面会介绍为什么不用),鉴于此,我们跳脱出目前的开源SLAM,从0开始构建自己的激光SLAM算法——TSLAM。

关于开源SLAM-Cartographer的无人机飞行测试总结

先说一下目前市面上比较出名的开源slam项目吧:

  • Cartographer
  • Hectorslam
  • Gmapping

首先,Gmapping是基于EKF滤波的slam算法,而Cartographer和Hectorslam都是基于非线性优化的,现在用EKF来做slam的已经很少了,绝大多数还是使用最小二乘。

Cartographer是有后端的slam算法,而Hectorslam是无后端的,前者更适用于以建图为重点的应用,后者更适合以定位为重点的应用。

我们早些时候就使用Cartographer在无人机上做过很多实验了,但是却存在下面这些问题,各位有时间可以自己测试下:

  • 定位飘移,在无人机悬停不动的情况下,会有大概一分米的左右摇晃
  • 定位错误,在快速移动和大角度倾斜的时候会出现匹配错误,坐标狂飙10m以上(在融合了imu的情况下)
  • 效率太低,比如在我们的Alice飞控板卡上跑cartographer时常达到400%的cpu负载(一个核是100%)
  • 通讯受阻,在高CPU负载的情况下,ros系统的topic基本就全挂啦,这里也说明了ros其实就是一个垃圾东西,不要跟我谈构架,一切的构架都建立在有良好效率的前提下。本来一个指针传递数据就可以了,在ros topic中却使用tcp本地传输数据,数据从用户层进入内核然后啥都没做又出来,这无疑就是在作死。(日常吐槽,仅代表个人观点,大家自行体会)
  • 其它的就是些小问题了,大家可以评论补充

飞行测试视频:
1、开源Cartographer无修改测试
https://www.bilibili.com/video/BV1QE411b7tR/

这就是目前的情况,所以现在直接用开源算法应用于无人机上是不行的,那么我们现在要争取创造一个比他们都好的slam,听起来跟google怼好像不是很现实啊- -。。。但是实际上我只需要在无人机slam上超越他们就可以了,Cartographer是一个针对通用性的slam,而我们需要构建的TSLAM是一个专注于无人机的slam,在这一点上发力,其实还是会很有效果的。

从0开始构建激光SLAM

针对开源算法测试遇到的种种问题,我们现在需要构建的的TSLAM需做到这些:

  • 准确的同步定位,累计误差更小
  • 专门对无人机姿态做出研究,融合ekf滤波以后的imu数据,让无人机至少在30度倾斜角时,仍然良好建图定位
  • 专门对激光匹配做出优化,让速度在很快的情况下也能良好定位
  • 抛弃不需要的组件,让slam更快
  • 一定要抛弃ros,让整个系统轻巧到飞起来

网上搜索一下,slam大概可以分为3个子组件:匹配定位、建图、闭环检测。我们目标是设计一个为无人机打造的SLAM,我们无法把一个I7电脑扛到无人机上(功耗大,体积大),所以尽量轻量级一点,我们可以抛弃掉闭环检测,让slam能够实时的在一个ARM板上运行

其实闭环检测就是所谓的slam后端,用来生成全局一致性地图,激光雷达再准也会产生累计误差,如果不闭环会造成累计误差越来越大,地图变形,定位飘移。

不过我们可以采取一点技巧来克服这个问题,尽量让误差少少少!正如Gmapping和Hectorslam,如此出名的SLAM其实也是无回环的。

我们创造了一种全新的算法来解决定位漂移和大速度下匹配失败的问题,以下是算法实测对比,我们真正解决了概率均匀问题

  • 开源cartographer双三次插值
    室内无源定位—激光SLAM在无人机上的飞行测试_第1张图片
  • Tbus-tslam模糊插值
  • 无人机建图起飞效果图
    室内无源定位—激光SLAM在无人机上的飞行测试_第2张图片
    TSLAM在ALICE飞控板卡上的运行cpu占用,可以看到tslam只占用了cpu四核之中一个核心的7%,完全实现了realtime)

下面我们来测试下新构建的激光SLAM算法实际飞行效果:
2、TSLAM室内飞行测试
https://www.bilibili.com/video/BV1QE411b7tR/

3、TSLAM室内自主导航测试(气压计定高会有些掉高)
https://www.bilibili.com/video/BV19E411i79a/

BY L君
编辑:L菌的小跟班

你可能感兴趣的:(激光SLAM)