三维点云地图构建方法

博主由于有逐帧的点云(.bag)需要累加成点云地图,环境:Ubuntu14.04 ROS:indigo,具体步骤如下:

  1. 将点云通过逐帧的累加形成点云地图,即SLAM方法,我们采用loam_SLAM方法构建地图,具体安装方法为:loam_slam的详细介绍见:http://blog.csdn.net/nksjc/article/details/76401092; https://zhuanlan.zhihu.com/p/29719106

    cd ~/ROS_WORKSPACE/src # ROS_WORKSPACE自己的ROS工作空间。

    git clone https://github.com/laboshinl/loam_velodyne.git

    cd ~/ ROS_WORKSPACE

    catkin_make -DCMAKE_BUILD_TYPE=Release

    source ~/ROS_WORKSPAC/devel/setup.bas

  2. 运行loam_SLAM package:

    roslaunch loam_velodyne loam_velodyne.launch

    打开另一个终端,运行本地的点云数据,即:

    rosbag play ~/velodyne.bag

  3. 记录正在运行的点云数据,

    在运行上面的命令的同时,打开另一个终端,运行:

    rosbag record -o out /velodyne_points #一边SLAM,一边记录运行累加完成的点云数据,生成一个.bag文件

  4. 解析生成的.bag文件,变成.pcd文件

    rosrun pcl_ros bag_to_pcd input.bag /laser_cloud_surround pcd #将上一步生成的.bag文件转换成逐帧的.pcd文件,最后一帧就是我们要的.pcd文件。

  5. Ubuntu 下用pcl_viewer查看

    pcl_viewer last.pcd #显示最后一帧.pcd文件

后记:

如果有激光雷达,可以记录自己的点云数据  

记录数据:rosbag record -O out(#点云名称) /velodyne_points(#rostopic)

查看rostopic: rostopic list -v

posted on   LeonHuo  阅读(11621)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示