当前位置:   article > 正文

使用16线激光雷达进行3DSLAM并获得八叉树地图(octomap)_保存八叉树地图

保存八叉树地图

实验室为自动驾驶买了个80线的雷达,附赠了个16线的雷达,老师让把16线的雷达用在机器人上,激光雷达在室内能用于目标检测和SLAM,测试发现,目标检测效果烂的一批,所以找了找3DSLAM的方法,并做下记录。

本文包括以下几部分:
1、硬件、软件介绍
2、启动激光雷达并获得点云
3、使用BLAM获得点云地图
4、使用octomap_server获得八叉树地图(octomap)
5、路径规划及导航

1、硬件、软件介绍

速腾聚创rslidar16线雷达、ubuntu16.04、ros-kinetic

2、启动激光雷达并获得点云

购买激光雷达时会附赠使用说明,修改配置文件并使用如下命令启动激光雷达:

roslaunch rslidar_sdk start.launch
  • 1

3、使用BLAM获得点云地图

参考:

https://www.ncnynl.com/archives/201806/2471.html
https://blog.csdn.net/xmy306538517/article/details/81122663
  • 1
  • 2

我先在实验室录制了/rslidar_points的bag,离线创建了点云地图/blam/blam_slam/octree_map。

只有在/rslidar_points发布消息时,BLAM才会不断发布创建的点云地图,等到录制的bag播放结束,则不会发布点云地图,这在后面会用到。

我生成的点云地图如下:
在这里插入图片描述
图中,紫色的曲线是雷达运动的轨迹,点云地图实际上就是多帧点云拼接而成,类似地图软件将多张图片拼接成全景地图。

4、使用octomap_server获得八叉树地图(octomap)

参考:

https://blog.csdn.net/sru_alo/article/details/85083030
  • 1

注意:

这一步必须和第三步同时运行,否则无法订阅点云地图。

我生成的octomap如下图:
在这里插入图片描述
图中中间绿色的部分是由于,录制雷达点云时,有两个人一直跟着机器人,导致地图里多了人的轨迹,所以实际用的时候,需要遥控机器人建图,防止运动的人也被建到图里。

使用如下命令保存压缩的二进制存储格式octomap地图:

rosrun octomap_server octomap_saver name.bt
  • 1

保存一个完整的概率八叉树地图:

rosrun octomap_server octomap_saver -f name.ot
  • 1

保存一个二维栅格地图:

rosrun map_server map_saver map:=/projected_map -f mapname
  • 1

安装八叉树可视化程序 octovis 来查看地图:

sudo apt-get install octovis
  • 1

安装后重启终端,使用以下命令显示一个八叉树地图:

octovis name.ot[bt]
  • 1

如下图:
在这里插入图片描述
外面离散的点是由于玻璃透光导致的。

5、路径规划及导航

没有了,不做了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/227131
推荐阅读
相关标签
  

闽ICP备14008679号