1. 程式人生 > >如何將ros bag中的velodyne MultipleScan訊息儲存為pcd點雲檔案

如何將ros bag中的velodyne MultipleScan訊息儲存為pcd點雲檔案

1

首先使用 rosbag info bag_file_name 命令檢視bag的資訊,其中 velodyne_msgs/MultipleScan 是點雲的資料型別,接下來的教程就是將該訊息轉為pcd檔案儲存下來。

[email protected]:~/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