Autonomous vehicle 杂谈_10
一. 如何实现点云地图的制作?为什么要用NDT_mapping? ?其实基础思想很简单,所谓的点云地图其实就是将LiDAR扫描到的一帧帧点云数据进行匹配和拼接,那么如何精确的匹配点云就是一个需要解决的问题了。
?在Autoware软件中,自带了两种用于点云匹配的功能包,一个是基于ICP算法的,另一个就是我们今天要讲的基于NDT算法的点云匹配以及地图制作。
?那么问题又来了,为什么我们要选择使用NDT算法,而不使用ICP算法呢?其实原因很简单,那就是因为ICP算法的实现原理其实是点对点式的精准匹配,这对于自动驾驶这个环境是时刻处在变化状态的场景其实并不友好,比如环境中有行人和车辆的移动,甚至固有的测量误差等,这些都会导致我们实时扫描到的点云和已经构建好的点云有着些许的差距。总结来说就是NDT在技术层面上运行速度更快而且更加容忍环境的细微变化。
?但是NDT算法就是最优解了么?其实也并不是,上述这些仅基于激光里程计的建图方式,最大的问题就是它们会产生累积误差,这个累积误差会随着你的map变大也变得越来越大。但是如果你想要创建的地图场景没有那么大(回环路径小于2km)而且有比较明确初始相对位姿的话,其实累计误差也可以稍加忽略。所以说如果你的项目比较小,不妨就直接用用Autoware里自带的NDT_mapping功能来完成建图工作了。
二. 使用NDT_mapping建图 参考视频:链接在此 (哑巴视频,且需科学上网)
1. 启动Autowar
cd autoware
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
2. 选择提前录制好的bag(依次点击) 录制包时需注意:使用 rosbag record /points_raw 语句录制包
Simulation -> ref 路径选择 -> Start Time(s) 设置自己想要开始的时间 -> play -> 立刻pause
文章图片
3. 设置TF,加载小车模型(依次点击) Setup -> TF -> Vehicle Model
文章图片
4. 设置Computing(依次点击) Computing -> ndt_mapping -> 右下角打开Rviz
文章图片
5. 进入Rviz导入点云数据,修改显示内容 Fixed Frame 修改为: map
Add -> By topic -> /ndt_map下的PointCloud2
文章图片
6. 重新播放暂停的bag Simulation -> Pause
7. 回到Rviz里看生成过程,以及检查terminal中地图生成进度 当且仅当(Processed/Input) :(### : ###)前数大于或等于后数时才可以生成地图
文章图片
8. 生成地图 Computing -> ndt_mapping后边的app -> Ref 修改保存路径 -> PCD OUTPUT
9. 大功告成,去CloudCompare静静地看眼地图
文章图片
三. 探讨与分享
- 如果回环路径很大且没有初始相对位姿的情况下,由于累积误差的原因,仅基于NDT算法的方法制作的地图其实与真实世界的差异是有点大的,所以就需要我们对其进行一定的约束。具体的方法就是:回环检测以及使用RTK或者组合导航来完成一些后端的优化。或者使用一些比较新的建图方法比如LOAM系列等。
- 分享
(1)NDT算法原理
(2)Autoware 培训笔记 No. 1——构建点云地图
(3)点云bag分享:(终端输入)
# 3D pointcloud/vector map data
wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_data.tar.gz
# ROSBAG data
wget http://db3.ertl.jp/autoware/sample_data/sample_moriyama_150324.tar.gz
【自动驾驶学习整理|基于Autoware 1.14 构建点云地图(*** mapping ***)】如有问题,敬请指正。欢迎转载,但请注明出处。
推荐阅读
- RF2O激光里程计算法原理
- 传感器融合|基于C++完成一个简单的线性卡尔曼滤波器进行传感器融合
- 自动驾驶|手握全球最大ADAS激光雷达订单(这家公司股价却急速“跌落”)
- OpenCV从入门到精通|OpenCV中的图像处理 —— 改变颜色空间+图像几何变换
- 数据科学从0到1|python使用numpy生成指定步长的浮点数序列
- 激光雷达和三维点云PCL|自动驾驶中激光雷达如何检测障碍物
- 数据结构与算法|Noip2017赛前的一些记录
- 历史上的今天|【历史上的今天】3 月 19 日(图灵奖人工智能先驱诞生;微软发布 IE8;Android Auto 上线)
- Pygame合集|【普通玩家VS高手玩家】一带传奇游戏《俄罗斯方块儿》新作—实现AI自动玩游戏~