用rplidar測cartographer開源演算法
一、安裝cartographer
參照大神hitcm的記錄安裝:https://www.cnblogs.com/hitcm/p/5939507.html
1、首先安裝ceres solver,選擇的版本是1.11,路徑隨意;
2、然後安裝 cartographer,路徑隨意;
(1) git clone https://github.com/hitcm/cartographer.git
(2) cd cartographer/build
(3) cmake ..
(4) make
(5) sudo make install
注:cmake .. -G Ninja 可能編譯不過。
3、安裝cartographer_ros。
4、資料下載測試————》都沒問題,可以看到建圖的過程。
二、用自己的底盤進行建圖
底盤附帶 lidar和odometry
1、主要涉及兩個檔案的修改
(1)cartographer_ros/cartographer_ros/launch/demo_revo_lds.launch
——》去掉node “Rviz” 和“playbag”
(2)cartographer_ros/cartographer_ros/configuration_files/revo_lds.lua
——》主要涉及引數的修改,一開始不明白這兩個引數到底表示什麼,就不同下面四種組合,通過rviz的測試結果來判斷,
從結果看,B、D是ok的,A和C是會發生TF轉換的錯誤。如圖所示,沒有base_link:
可以通過rosrun rqt_tf_tree rqt_tf_tree來檢視tree關係。 而引數provide_odom_frame 為false的話,tree也會有錯誤。
A、 tracking_frame = "base_link",
published_frame = "laser",
provide_odom_frame = true,
B、 tracking_frame = "laser",
published_frame = "base_link",
provide_odom_frame = true,
C、 tracking_frame = "laser",
published_frame = "laser",
provide_odom_frame = true,
D、 tracking_frame = "base_link",
published_frame = "base_link",
provide_odom_frame = true,
(3) 其他引數需要再繼續瞭解。
三、雷達lidar,里程計,cartographer_node的launch檔案要分開執行。剛開始時把幾個launch檔案合併在一個launch檔案中,總是無法正常執行:
(1)roslaunch robot lidar.launch
(2)roslaunch robot_base robot_odom_encoder.launch
(3)roslaunch cartographer_ros demo_revo_lds.launch
最後執行rosrun teleop_twist_keyboard teleop_twist_keyboard.py,控制底盤運動。
四、初步結果: