目录

1 octomap的安装

2 二维导航节点的建立及栅格地图的构建

3 三维栅格地图的建立


1 octomap的安装

这里采用命令安装:

sudo apt install ros-melodic-octomap-msgs ros-melodic-octomap-ros ros-melodic-octomap-rviz-plugins ros-melodic-octomap-server

这样子就是安装好了。

2 二维导航节点的建立及栅格地图的构建

我们进入liosam的工作空间下的launch文件夹:

新建一个launch文件,就叫octomap2D.launch

将下面的内容粘贴其中:

     

我来解释下各个参数的含义:

resolution:分辨率或精度,越小精度越高计算需要资源越庞大

frame_id:世界坐标系的话题,即圆点坐标系

sensor_model/max_range:扫描的最大距离

cloud_in:点云话题

pointcloud_max_z:最大的Z扫描值

pointcloud_min_z:最小的Z扫描值(激光雷达和垂直平面有一定距离)

当然,还有其他可选参数:

1.剔除地面点的

加上的话类似这样:

     

我们启动liosam主节点和本节点。

播放bag包:

发现地面有很多噪点。调参…

好点了,继续调参。。

不停的调参后…..

勉强可以用。。。因为我们手持的原因…

保存栅格地图:

 rosrun map_server map_saver map:=/projected_map -f sbmap

3 三维栅格地图的建立

下载octomap_tutor并编译:

安装依赖:

sudo apt-get install liboctomap-dev octomap

生成可执行文件pcd2octomap,记得一定要设置可执行,可以打开这个文件的属性看一看。

执行:

pcd2octomap carto_demo.pcd carto.bt

执行成功,发现八叉树文件:

查看地图:

octovis carto.bt

OK