如何將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