将pcd点云文件转化成可用于路径规划的pgm文件


前言

在之前的工作中,对ORB-SLAM2添加了稠密建图,因此获得了周围环境的点云地图,但是pcd格式的点云无法直接用于路径规划,因此先要转化为pgm格式的文件。
参考链接:
三维pcd地图转二维栅格地图
【LIO-SAM学习记录】地面分割

1.下载map_server功能包

由于下面需要使用map_server来保存转换好的地图,而map_servernavigation的一部分,所以先下载navigation功能包
ros.org中map_server介绍
Ubuntu18.04对应的navigation包
我的ubuntu系统是18.04,所以下载melodic-devel分支里的源文件

#新建工作空间
mkdir -p navigation_ws/src && cd navigation_ws/src
#下载源码
git clone https://github.com/ros-planning/navigation/tree/melodic-devel
cd ..
#编译工作空间
catkin_make

报错1

在这里插入图片描述
参考链接

sudo apt-get install ros-melodic-navigation*

报错2

在这里插入图片描述
与上面的参考链接相同

sudo apt-get install ros-melodic-pointcloud-to-laserscan

2.下载代码

pcd2pgm代码地址

#新建工作空间
mkdir -p pcd_to_pgm_ws/src && cd pcd_to_pgm_ws/src
#下载源码
git clone https://github.com/Hinson-A/pcd2pgm_package
cd ..
#编译工作空间
catkin_make

3.执行代码,保存地图

打开pcd2pgm/launch/run.launch文件,将存放pcd文件的路径pcd文件名称后面的value值改成自己的
在这里插入图片描述
之后运行这个launch文件

cd pcd_to_pgm_ws
source devel/setup.bash
roslaunch pcd2pgm run.launch

在这里插入图片描述

当打印了上面的信息后就可以启动map_server的地图保存功能

rosrun map_server map_saver

在这里插入图片描述
保存了map.pgmmap.yaml文件,同时在原pcd文件夹下,也保存了直通滤波和半径滤波后的pcd文件

4.解决一些问题

1.滤波后的点云不是RGB彩色的

查看ORB-SLAM2_RGBD_DENSE_MAP-master/include/pointcloudmapping.h,发现这里点云定义的类型是PointCloud<pcl::PointXYZRGBA>,而pcd_to_pgm_ws/src/pcd2pgm/src/pcd2pgm.cpp里定义的点云类型是PointCloud<pcl::PointXYZ>
在这里插入图片描述
在这里插入图片描述
因此,把pcd_to_pgm_ws/src/pcd2pgm/src/pcd2pgm.cpp里的点云类型PointXYZ全都改成PointXYZRGBA然后重新catkin_make这个功能包就行了

猜你喜欢

转载自blog.csdn.net/m0_60355964/article/details/129560899
今日推荐