pcd 地图转 栅格地图

Posted 怪皮蛇皮怪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pcd 地图转 栅格地图相关的知识,希望对你有一定的参考价值。

前言

最近在弄地图,所以把正在做的东西记录下来
本篇方法使用到了
autoware (软件)(可以替代)
octomap (库)

下篇:栅格地图保存与再发布

安装octomap

大佬的安装链接

安装完后 在终端输入*** roslaunch octo*** + tab键 会自动补全octomap一系列的东西代表安装成功

有了octomap之后就可以通过pcd地图转换成栅格地图了
接下来就是怎么将pcd地图发布出去让octomap接收并转换了

自己发布pcd地图

别的教程

使用autowre发布pcd地图

打开autoware 找到 map 选项,然后第一行的ref寻找需要发布的pcd文件,然后点左边的发布
如果没有装autoware就不要单独装autoware,用上面的方法
我用这方法是因为电脑有autoware
autoware发布之后会有个points raw 的话题,frame id 是map

pcd 转换成栅格地图

写个launch文件,roslaunch 一下就好

如果是自己发布的话题,需要注意:

  1. frame id 需要修改为对应的发布的话题的frame id
  2. remap from 同理
  3. pointcloud max/min z 是需要转换成栅格地图的z轴区间,根据需要修改
<launch>
  <node pkg="octomap_server" type="octomap_server_node" name="octomap_server">

    <!-- resolution in meters per pixel -->
    <param name="resolution" value="0.05" />

    <!-- name of the fixed frame, needs to be "/map" for SLAM -->
    <param name="frame_id" type="string" value="map" />

    <!-- max range / depth resolution of the kinect in meter -->
    <param name="sensor_model/max_range" value="100.0" />
    <param name="latch" value="true" />

    <!-- max/min height for occupancy map, should be in meters -->
    <param name="pointcloud_max_z" value="2" />
    <param name="pointcloud_min_z" value="0" />

    <!-- topic from where pointcloud2 messages are subscribed -->
    <remap from="/cloud_in" to="/points_map" />
 
  </node>
</launch>

运行完后有如下提示

rviz查看

rviz查看需要安装插件

sudo apt-get install ros-kinetic-octomap-rviz-plugins


左下角add添加topic
在by display type中选择occupancygrid
topic选择/octomap——full
然后等一会就好了

地图解析,保存后的地图中yaml各项参数含义解释

以上是关于pcd 地图转 栅格地图的主要内容,如果未能解决你的问题,请参考以下文章

ros 栅格地图保存与发布

ros 栅格地图保存与发布

ros 栅格地图保存与发布

R矢量地图栅格化(将shapefile转换成raster)

实验五地图代数arcgis用栅格计算器怎么计算地表曲率

arcgis 地图配准之后怎么把栅格数据变成矢量数据