1. 程式人生 > >用rplidar測cartographer開源演算法

用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,控制底盤運動。

四、初步結果: