使用Octomap生成二维占据栅格导航地图

最近使用VLP-16跑了SC-LeGO-LOAM,考虑到后续导航过程中需要使用二维栅格地图,所以三维点云转换为二维栅格地图属实工程需要。

一、准备工作

1.1 Octomap安装

  1. sudo apt-get install ros-melodic-octomap-ros
  2. sudo apt-get install ros-melodic-octomap-msgs
  3. sudo apt-get install ros-melodic-octomap-server
  4. sudo apt-get install ros-melodic-octomap-rviz-plugins

1.2 map_server安装

sudo apt-get install ros-melodic-map-server

二、制作launch文件

2.1 在默认目录下,创建launch文件

cd /opt/ros/melodic/share/octomap_server/launch

手动进入该目录也可以。

然后:

sudo gedit octomap_server.launch

2.2 编写launch文件

在新建的launch文件中填写以下内容:

<launch>
  <!--启动的节点-->
  <node pkg="octomap_server" type="octomap_server_node" name="octomap_server"> 

     <!--栅格分辨率-->
    <param name="resolution" value="0.1" />
    
    <!--世界坐标系话题,一般为map-->
    <param name="frame_id" type="string" value="/map" />
 
    <param name="sensor_model/max_range" value="1000.0" />
    <param name="latch" value="true" />
 
     <!--截取的三维点云范围--> 
    <param name="pointcloud_max_z" value="0.8" />
    <param name="pointcloud_min_z" value="-0.5" />
 
    <param name="graound_filter_angle" value="3.14" />
    
     <!--订阅的点云消息名称 PointClout2,即上一步发布出来的点云topic--> 
     <!-- cloud_in是octomap默认的输入话题,做一下映射-->
    <remap from="cloud_in" to="your_map_topic" />
  </node>
 
</launch>

注:your_map_topic”这里笔者选择填入“/registered_cloud

然后保存,关闭文件。

三、运行

3.1 启动launch文件

打开终端,进入.launch文件所在目录,启动launch文件

  1. cd /opt/ros/melodic/share/octomap_server/launch
  2. roslaunch octomap_server.launch

3.2 开始三维建图

运行建图算法,在线或者离线播放数据包,这里直接省略

3.3 添加话题

开始建图后,在RVIZ中分别添加"Map"、“OccupancyGrid"和"OccupancyMap”,并把话题名依次改为"/projected_map"、“octomap_full"与"octomap_binary”。

3.4 保存二维栅格地图

建图结束后,保存地图。

rosrun map_server map_saver map:=/projected_map -f [PATH_TO_FILE]/mymap

四、调参

可以参考下面链接:

https://blog.csdn.net/aidimoli123/article/details/121922553icon-default.png?t=M85Bhttps://blog.csdn.net/aidimoli123/article/details/121922553补充:生成的二维栅格地图yaml文件,如果map坐标为[1.0,2.0,nan],需要把nan值改为0.0,小数点后多余的0可以去掉,例如3.14000000,直接写成3.14即可,以上操作是为防止文件读取时报错。

  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值