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

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

开篇

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

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

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

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

  • Cartographer
  • Hectorslam
  • Gmapping

首先,Gmapping是基于pf粒子滤波的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双三次插值
  • Tbus-tslam模糊插值
  • 无人机建图起飞效果图

    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在无人机上的飞行测试相关推荐

  1. 室内+室外激光SLAM关键算法、代码和实战剖析正式开课(cartographer+LOAM+ LIO-SAM)

    应用背景介绍 高精地图作为自动驾驶的眼睛,在自动驾驶研发中占据极大的份额,而激光SLAM则是高精地图定位导航算法的关键技术,其重要性不言而喻,在AI产品如矿卡.汽车.清扫车和扫地机器人等领域都占据一席 ...

  2. 一套就够了!室内+室外激光SLAM关键算法讲解与工程实现(源码和数据开源)...

    应用背景介绍 高精地图作为自动驾驶的眼睛,在自动驾驶研发中占据极大的份额,而激光SLAM则是高精地图定位导航算法的关键技术,其重要性不言而喻,在AI产品如矿卡.汽车.清扫车和扫地机器人等领域都占据一席 ...

  3. 单目视觉SLAM在无人机上的应用

    目录 写在前面 本文说明 论文链接和实验视频 源代码链接 一.实验环境 硬件 软件 算法 二.实验环境搭建过程 1.Intel NUC安装Ubuntu 16.04 2.安装ROS.D435i驱动以及O ...

  4. 彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM+LIO-SAM)

    应用背景介绍 高精地图作为自动驾驶的眼睛,在自动驾驶研发中占据极大的份额,而激光SLAM则是高精地图定位导航算法的关键技术,其重要性不言而喻,在AI产品如矿卡.汽车.清扫车和扫地机器人等领域都占据一席 ...

  5. 七.激光SLAM框架学习之A-LOAM框架---速腾Robosense-16线雷达室内建图

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  6. 智能无人机开发教程(一)在无人机上跑slam之hector slam

    前言 在使用了肖坤老师的xtdrone教程加上我自己的研究之后,可以在无人机+激光雷达的硬件基础上使用了slam算法,并且彻底掌握怎么使用与搭配的方法 本文的基础是xtdrone的例程,但是不局限于此 ...

  7. 激光SLAM与视觉SLAM的现状与趋势

    本文作者龙建睿,深圳市大道智创科技有限公司联合创始人&研发总监,美国伊利诺伊理工大学博士研究生,"E巡-机器警长"首席产品经理. 同时定位与地图构建(Simultaneou ...

  8. 如何在无人机上部署YOLOv4

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1 代码编译 准备工作 推荐使用Ubuntu 18.04 CMak ...

  9. MULLS:一种基于多尺度线性最小二乘的激光SLAM算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨paopaoslam 来源丨 泡泡机器人SLAM 标题:MULLS: Versatile LiD ...

  10. 一起做激光SLAM:常见SLAM技巧使用效果对比,后端

    本节目标 搭建一套700行代码的激光SLAM.通过对ALOAM进行修改实验,确定对激光SLAM最核心的技巧,并接上节里程计,完成后端,构建较大场景(轨迹约2km)地图. 预期效果: rosbag数据: ...

最新文章

  1. Python 优化第一步: 性能分析实践 使用cporfile+gprof2dot可视化
  2. python解释器的安装步骤-Python本地及虚拟解释器配置过程解析
  3. 简单的五子棋操作用两种方法实现
  4. zabbix--分布式监控proxy
  5. 无处不在的container_of
  6. 每天干的啥?(2019.3)
  7. Angular之ngx-permissions的控制视图访问
  8. 信息系统项目管理08——项目质量管理
  9. IIS7.5 在已有的WEB网站上配置FTP发布
  10. [转载] [转载] python中的Numpy库入门
  11. python sorted函数
  12. PDF虚拟打印机怎么虚拟打印
  13. 在线制作车牌效果图_写实效果用3dsmax,想快用智能效果图软件
  14. 前端性能优化原理与实践
  15. 新品爆款打造流程与操作步骤--电商人必看
  16. php 数组 时间戳排序,php – 按时间戳排序Summed Collection
  17. 树莓派bcm2836收集资料
  18. electron-builder打包linux桌面程序(OIM-E多平台即时通讯软件)
  19. FMM 快速行进法(一)
  20. 工期紧、要求高、协调难......一套解决方案教5000万建筑人搞定工程项目管理难题

热门文章

  1. 浅谈安全攻防场景下面的安全检测
  2. 视频教程-VB程序设计教程:从入门到精通-计算机等级考试
  3. Protel99se基本教程 Protel 99SE从零开始学习教程视频教程
  4. 502 Bad Gateway The proxy server received an invalid response from an upstream server
  5. 时间同步服务器搭建实验
  6. 好消息!电商工具箱API详情接口,更全面
  7. XcodeGhost作者声明:源于实验,无任何威胁
  8. 一加手机刷入第三方Rec
  9. Guitar Pro如何新建吉他谱步骤
  10. html 页面加载完成后执行,js中页面加载完成后执行的几种方法及执行顺序