ROS2 Humble + rtabmap + D435i深度相机实现视觉惯性建图(二)—— 地图保存和查看

张开发
2026/4/19 5:37:38 15 分钟阅读

分享文章

ROS2 Humble + rtabmap + D435i深度相机实现视觉惯性建图(二)—— 地图保存和查看
前文ROS2 Humble rtabmap D435i深度相机实现视觉惯性建图一——环境配置一、RTABMAP建图1. 建图深度相机连接上电脑后打开终端输入ros2 launch rtabmap_examples realsense_d435i_stereo.launch.py移动深度相机位置完成建图后点击Save保存地图并在终端CtrlC结束建图。[rtabmap-3] rtabmap: Saving database/long-term memory... (located at /home/robot/.ros/rtabmap.db) [rtabmap-3] rtabmap: Saving database/long-term memory...done! (located at /home/robot/.ros/rtabmap.db, 17 MB) [INFO] [rtabmap-3]: process has finished cleanly [pid 30928]可以看到保存在home/robot/.ros/rtabmap.db这里要看自己的。2. 地图保存打开终端输入rtabmap-databaseViewer ~/.ros/rtabmap.db点击上方工具栏中 View - 3D View, 然后拖动下方的两个进度栏可以查看建图过程点击上方工具栏中 File - Export 3D Map, 可以保存地图为.ply或者 .pcd格式对话框关键选项解释:区域选项含义Dense Point CloudFrom RGB-D images从 RGB‑D 图像生成稠密点云而非激光扫描点云。推荐勾选因为你保存的是双目/深度地图。Reconstruction flavorBinary file输出的 PLY/PCD 文件使用二进制格式体积小、读取快。Assemble clouds/meshes将多个关键帧的点云/网格合并成一个文件。Normal estimationK nearest neighbors/search radius用于点云法线估计后续网格生成用。设为 0 则禁用。若不需网格可保持 0。Flip ground normals0.9 等将接近 -Z 轴的法线翻转向 Z用于地面点。Voxel size体素滤波尺寸米。设为 0 禁用设 0 可降采样点云。Number of samples随机采样保留的点数仅当合并点云时有效。0 禁用。Nodes filtering按区域/索引筛选要导出的关键帧。Regenerate clouds重要重新生成点云可提高密度因为在线可视化时为了性能会降采样。Cloud filtering如统计离群值移除、半径滤波等。Cloud smoothing (MLS)移动最小二乘平滑。Gain compensation校正多张图像的亮度差异。Camera projection将相机模型用于点云着色也可导出每个点的相机 ID。Meshing生成三角网格而非点云。需要勾选并设置相关参数如泊松重建。Regenerate Clouds 子区域-Decimation降采样因子1,2,4…负数表示使用 RGB 分辨率。-Max/Min depth深度裁剪范围米。-ROI ratios仅提取图像中指定区域的点。-Fill depth hole填充深度图中的空洞。地图导出步骤1勾选Dense Point Cloud确保From RGB-D images被选中。2如果点云太密导致文件过大设置Voxel size 0.01或 0.02 米。3勾选Assemble clouds/meshes to a single output这样所有关键帧的点云会合并成一个文件方便后续使用。4勾选Regenerate clouds可以获得比在线地图更密的点云并调整下方的降采样参数如Decimation 1使用原始深度分辨率。5在对话框底部选择输出文件类型.ply或.pcd点击Save按钮。RTAB-Map 会遍历所有关键帧生成并合并点云耗时取决于数据库大小可以看到保存至位置及名称。常见问题及解决方法问题解决方法导出后点云很稀疏取消Voxel size设为 0并勾选Regenerate clouds设置Decimation 1。导出过程卡死或内存不足设置Voxel size 0.02降采样或先筛选一部分节点Nodes filtering。网格出现大量孔洞增加法线估计的 KNN 值或调整泊松重建的深度参数。左右亮度不一致导致颜色条纹勾选Gain compensation。二、查看地图三维点云文件1. 前提条件安装MeshLab、pcl_tools:sudo apt install meshlabsudo apt install pcl-tools2. 使用MeshLab查看 .ply 地图在终端中输入meshlab cloud.ply可以加载.ply 地图安装鼠标左键可以变化视角滑动滚轮可以进行缩放按住并拖动鼠标中键滚轮可以移动视角位置。右边栏中的Shading和Color可以调整阴影亮度和点云颜色3. 将 .ply 文件转换为 .pcd 文件在文件保存目录下打开终端输入pcl_ply2pcd cloud.ply cloud.pcdrobotll-Lenovo:~/Desktop$ pcl_ply2pcd cloud.ply cloud.pcd Convert a PLY file to PCD format. For more information, use: pcl_ply2pcd -h PCD output format: binary [pcl::PLYReader] cloud.ply:29: property float32 focal of element camera is not handled [pcl::PLYReader] cloud.ply:30: property float32 scalex of element camera is not handled [pcl::PLYReader] cloud.ply:31: property float32 scaley of element camera is not handled [pcl::PLYReader] cloud.ply:32: property float32 centerx of element camera is not handled [pcl::PLYReader] cloud.ply:33: property float32 centery of element camera is not handled [pcl::PLYReader] cloud.ply:36: property float32 k1 of element camera is not handled [pcl::PLYReader] cloud.ply:37: property float32 k2 of element camera is not handled Loading cloud.ply [done, 1393.21 ms : 5352642 points] Available dimensions: x y z rgb normal_x normal_y normal_z curvature Saving cloud.pcd [done, 87.8349 ms : 5352642 points]可以得到 .pcd 点云文件输入pcl_viewer cloud.pcd查看点云地图同样可以使用鼠标进行查看。

更多文章