如何将ros bag中的velodyne MultipleScan消息保存为pcd点云文件

1

首先使用 rosbag info bag_file_name 命令查看bag的信息,其中 velodyne_msgs/MultipleScan 是点云的数据类型,接下来的教程就是将该消息转为pcd文件存储下来。

liuhang@liuhang:~/Documents/Momenta/data$ rosbag info fak353-wudaokou3-2018-09-19-16-18-38.bag 
path:        fak353-wudaokou3-2018-09-19-16-18-38.bag
version:     2.0
duration:    10:35s (635s)
start:       Sep 19 2018 16:18:38.54 (1537345118.54)
end:         Sep 19 2018 16:29:14.46 (1537345754.46)
size:        2.2 GB
messages:    133500
compression: none [2118/2118 chunks]
types:       hdmap_msgs/gpfpd           [79959cc25a3a784a3dee0fb4c115f99c]
             hdmap_msgs/imu             [9e0d04711510b9ab03c3f6e2797b9f8f]
             velodyne_msgs/MultipleScan [4f7a45d3843582ca955654166d29d6dd]
topics:      /sensor/gpfpd           63573 msgs    : hdmap_msgs/gpfpd          
             /sensor/imu             63574 msgs    : hdmap_msgs/imu            
             /velodyne_multi_scans    6353 msgs    : velodyne_msgs/MultipleScan

 2

使用 catkin_make 命令编译/home/liuhang/Documents/Momenta/catkin_ws/src/velodyne文件夹(称为站),该文件夹有多个子文件夹(package包)。

编译时关于PCL库的libproj-dev报错,解决方法使用安装libvtk5-dev库, sudo apt-get install libvtk5-dev 参考https://askubuntu.com/questions/871485/point-cloud-library-pcl-basic-tutorial-cmake-and-make-errors-on-ubuntu-16-04/872522

编译时关于yaml-cpp的报错,解决方法是重新编译yaml的时候 cmake -DBUILD_SHARED_LIBS=ON ..  参考https://blog.csdn.net/u011736771/article/details/79130049

 3

编译成功后,在终端运行 roslaunch velodyne_pointcloud momenta-three-lidar-cloud.launch fixed_frame_id:=car

4

打开另一个终端,运行 rosbag play fak353-wudaokou3-2018-09-19-16-18-38.bag

5

再打开一个终端,运行 rosrun rviz rviz

依次选择rviz中的 Add、By Topic、PointCLoud2,再将Fixed Frame 更换为car。

6

再打开一个终端,运行 rosrun pcl_ros pointcloud_to_pcd input:=/velodyne_points

参考 http://wiki.ros.org/pcl_ros

 https://blog.csdn.net/ethan_guo/article/details/80094344

猜你喜欢

转载自blog.csdn.net/liudahanghang/article/details/82843603