将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这个功能包就行了

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: PCD点云文件处理模型是一种用于处理点云数据的计算机模型。点云是由离散的三维点组成的集合,它可以用来表示三维物体的形状和位置。 PCD点云文件处理模型通常包括以下几个步骤:导入点云数据、预处理、分割、特征提取、分类或识别、导出处理结果。 首先,将PCD点云文件导入到处理模型中,可以使用各种点云库或软件实现此步骤。导入后,对点云数据进行预处理,例如去噪、滤波和重采样。这些预处理步骤旨在减少数据噪声和降低数据密度,以提高后续处理的效果。 接下来,进行分割操作,将整个点云分割为不同的子集。这通常通过识别点云中的平面或曲面来实现,可以使用各种分割算法,如基于几何特征或统计学方法的算法。 然后,进行特征提取,目的是从点云中提取有意义和区分度高的特征。常见的特征包括形状描述子、表面法线、曲率等。这些特征可以用于后续的分类、识别或其他应用。 最后,根据具体应用需求,可以进行分类、识别或其他处理任务。分类任务是将点云划分为不同的类别,例如将点云中的物体分类为汽车、行人、建筑物等。识别任务是识别点云中的特定目标,例如在点云中检测和识别交通标志、行人等。 处理完成后,根据应用需求,可以将处理结果导出到PCD或其他格式的文件中,以供后续使用或展示。 综上所述,PCD点云文件处理模型提供了处理点云数据的一整套流程和方法,它可以应用于各种领域,如计算机视觉、机器人技术、地理信息系统等。 ### 回答2: PCD点云文件处理模型是指将点云数据进行分析、处理、编辑和可视化的方法和工具。点云数据是由3D激光扫描仪或其他传感器获取到的大量点的集合,代表了物体或场景的表面形状。 PCD点云文件处理模型包括以下几个主要步骤: 1. 数据加载:从PCD文件中读取点云数据,并将其加载到内存中以便后续处理。常用的点云处理库,如PCL(Point Cloud Library),提供了API用于加载PCD文件。 2. 数据滤波:对点云数据进行滤波处理,去除噪点和异常点,提高后续处理的准确性。常用的滤波方法包括半径滤波、统计滤波和直通滤波等。 3. 特征提取:通过计算点云数据的几何、颜色和法线等特征,提取出物体或场景的有用信息。常用的特征提取方法包括表面法线计算、曲率计算和轮廓提取等。 4. 数据配准:将多个点云数据进行配准,以便生成更完整的场景模型。常用的配准方法包括ICP(Iterative Closest Point)和非刚体配准等。 5. 数据重建:基于点云数据,进行三维重建和模型生成。常用的重建方法有体素网格化、三角网格化和基于特征的重建等。 6. 数据可视化:将处理后的点云数据以三维图形的形式进行可视化展示,方便用户观察和分析。常用的可视化工具有PCL可视化模块和PointCloudViewer等。 PCD点云文件处理模型的应用非常广泛,包括三维建模、机器人导航、物体识别和虚拟现实等领域。通过有效处理和分析点云数据,可以帮助我们更好地理解和利用三维信息,提高相关应用的效果和性能。 ### 回答3: PCD(Point Cloud Data)是一种用于存储三维点云数据的文件格式,常用于进行三维点云的处理和分析。PCD点云文件处理模型是指对PCD文件进行操作和处理的一系列算法和方法。 PCD点云文件处理模型主要包括以下几个步骤: 1. 加载点云:首先,需要将PCD文件加载到内存中,以便进行后续的处理。可以使用特定的库或软件来读取和解析PCD文件。 2. 数据预处理:对加载的点云数据进行预处理,以去除无效点、噪声和异常点等。常用的预处理方法包括滤波、去噪和降采样等。 3. 特征提取:对预处理后的点云数据提取相关特征,以便进行后续的分析和识别。特征可以包括几何、表面和局部特征等,如法线、曲率、几何描述子等。 4. 分割和聚类:对点云进行分割和聚类,将点云分成不同的区域或对象。可以使用分割算法来提取出感兴趣的目标区域,如平面、边缘或物体等。 5. 三维重建和建模:根据点云数据进行三维重建和建模,将点云转换为三维模型,以便后续的可视化、分析和应用。可以使用点云配准和融合算法,将多个点云数据拼接成一个完整的三维模型。 6. 其他应用:PCD点云文件处理模型还可以用于其他一些应用,如目标检测和识别、路径规划和导航、虚拟现实和增强现实等。 综上所述,PCD点云文件处理模型是一种用于PCD点云文件进行操作和处理的方法和算法集合。通过加载、预处理、特征提取、分割和聚类、三维重建和建模等步骤,可以对点云数据进行分析、识别和应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值