Ubuntu18.04使用octomap_server将点云地图转化为八叉树地图
运行环境
- Linux:Ubuntu18.04
- ros:Melodic
1. 下载相关功能包
安装octomap相关功能包
sudo apt-get install ros-melodic-octomap-ros
sudo apt-get install ros-melodic-octomap-msgs
sudo apt-get install ros-melodic-octomap-server
安装octomap在rviz中的插件
sudo apt-get install ros-melodic-octomap-rviz-plugins
2. octomap_server 功能包的使用
创建一个.launch
文件,例如octomap_build.roslaunch
文件
文件内容如下
这里使用的A-LOAM的例子来进行测试,A-LOAM的使用测试链接
其中主要的参数如下,相关参数的详细介绍可参考http://wiki.ros.org/octomap_server
/laser_cloud_map
:为输入的点云话题名/camera_init
:为输入点云话题中 head.frame_id(点云的坐标系id)
<launch>
<node pkg="octomap_server" type="octomap_server_node" name="octomap_server">
<!-- 地图的分辨率(米) -->
<param name="resolution" value="0.50" />
<!-- 最大距离/深度分辨率(米) -->
<!--param name="sensor_model/max_range" value="50.0" /-->
<param name="latch" value="true" />
<!-- max/min height for occupancy map, should be in meters -->
<!-- octomap地图中最大最小的高度(米) -->
<param name="pointcloud_max_z" value="1000" />
<param name="pointcloud_min_z" value="-500" />
<!-- 增量式构建地图时,需要提供输入的点云帧和静态全局帧之间的 TF 变换 -->
<param name="frame_id" type="string" value="/camera_init" />
<!-- 要订阅的点云主题名称 /laser_cloud_map -->
<remap from="/cloud_in" to="/laser_cloud_map" />
</node>
</launch>
3. octomap 与 A-LOAM 的测试使用
数据集名字:nsh_indoor_outdoor.bag
,大小:780M左右
数据集下载地址:https://drive.google.com/file/d/1s05tBQOLNEDDurlg48KiUWxCp-YqYyGH/view
- 运行
rosbag play
命令进行测试数据集,其中<YOUR_DATASET_FOLDER>
是下载对应数据集包的文件位置,这里作者使用的是以上的数据集,读者可以使用其他数据集进行测试 - 这里作者将第2点中写的
octomap_build.roslaunch
放在了A-LOAM功能包中的launch文件夹中
source /devel/setup.bash
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
rosbag play <YOUR_DATASET_FOLDER>/nsh_indoor_outdoor.bag
roslaunch aloam_velodyne octomap_build.roslaunch
- 相关测试结果
在打开的rviz中选择相关插件,并读取相关octomap话题
选择OccupancyGrid
插件,并在插件中选择octomap_full
话题
- 测试结果如下图所示