开发环境
- ROS1/Melodic
- hdl_graph_slam (地图构建)
- interactive_slam (离线地图优化)
由于开发环境中需要从github中嵌套下载非常多的包,在没有翻墙的情况下直接下载几乎每次都会下载到一半后中断,因此在这里将环境依赖下载完整版本打包了。
链接:https://pan.baidu.com/s/1URtRfrcnXtmnGHNhjwwfgA?pwd=9ylu
提取码:9ylu
地图构建流程
1. 发布点云信息,保存点云数据
不同的激光雷达采用不用的驱动,在ROS(Melodic)下发布其点云数据。
受到计算资源的约束,在线实时地图构建有一定概率失败特别是场景比较大的情况,因此推荐采用在线录制数据,然后以较低的频率播放点云数据的形式获得更高的精度和鲁棒性,避免多次建图的麻烦。
录制数据:
rosbag record -a
倍速播放数据:
rosbag play -r 0.1 xxx.bag
2. hdl_graph_slam构建地图
由于激光雷达的参数不一致,因此在构建地图之前需要修改launch文件中的参数,这里以官方示例中的hdl_graph_slam_501.launch 文件为基础进行少量修改。
- 修改第10行的参数
<arg name="points_topic" default="/velodyne_points" />
点云topic修改为和所用点云驱动相同的名称 - 修改20行
<node pkg="tf" type="static_transform_publisher" name="lidar2base_publisher" args="0 0 0 0 0 0 base_link velodyne 10" />
修改相对位置关系,以及tf的名称 - 修改75行
<param name="height_clip_range" value="0.5" />
设置激光雷达安装高度,用于分割地面。
运行算法
在三个终端中分别运行:
rosbag play -r 0.1 xxx.bag # 发布数据包
roslaunch hdl_graph_slam hdl_graph_slam_501.launch # 启动算法
rviz -d hdl_graph_slam hdl_graph_slam.rviz # 在 rviz 目录下运行
最后得到效果如下图:
保存点云地图
rosservice call /hdl_graph_slam/dump "/home/xxx/map"
rosservice call /hdl_graph_slam/save_map false 0.05 "/home/xxx/map/map.pcd"
地图离线优化过程
利用interactive_slam算法对构建的地图进行进一步的优化
文章来源:https://www.toymoban.com/news/detail-458593.html
具体操作可以参考官方教程文章来源地址https://www.toymoban.com/news/detail-458593.html
到了这里,关于室外3D雷达地图构建流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!