Cartographer_01: 使用CLion設定Cartographer_Superbuild

2020-10-21 12:00:37

使用CLion設定Cartographer_Superbuild

筆者計算機新手,嘗試使用CLion debug Cartographer, 其間遇到多方困難,最後使用github上一位大佬寫的Cartographer_Superbuild 成功 debug。 特此記錄,以防忘記。
首先,設定,
作業系統: Ubuntu 18.04 LTS
Ros: Melodic
IDE: CLion 2020.2.4
debug 程式碼: Cartographer_Superbuild
Melodic 安裝網址: link
Cartographer_Superbuild下載地址: link
然後,下面是設定過程。由於github上Cartographer_Superbuild作者並沒有設定cares-solver,因此這裡加入ceres-solver重新寫一下Cartographer_Superbuild設定過程。

   設定Cartographer_Superbuild,
   選擇需要安裝的資料夾,開啟terminal
   git clone https://github.com/ojura/cartographer_superbuild.git
   cd cartographer_superbuild
   git clone https://github.com/googlecartographer/cartographer.git
   git clone https://github.com/googlecartographer/cartographer_ros.git
   git clone https://github.com/ceres-solver/ceres-solver.git
   sudo apt install -y python-rosdep
   sudo rosdep init (這一步如果之前安裝ros時執行過可跳過,否則出現錯誤見bug  sudo rosdep init error)
   rosdep update
   rosdep install --from-paths . --ignore-src --rosdistro=${ROS_DISTRO} -y
   mkdir build
   cd build
   cmake ../
   make -j16

在CLion上設定Cartographer,
source /opt/ros/melodic/setup.bash(非常重要,不進行這一步後續無法debug)
sh /snap/clion/126/bin/clion.sh
file->open->home/yuan/cartographer_superbuild/CmakeLists.txt->ok->open as project

在CLion匯入Cartographer_SUperbuild

file->setting-Build, Execution, Deployment->Cmake->buildtype->RelWithDebInfo->build option-> – -j 16->apply->ok
在這裡插入圖片描述
到這一步,將Cartographer_Superbuild 匯入CLion大功告成,但僅僅這樣是不夠的,後面設定環境變數才是折磨的時候,由於筆者剛學習計算機4個月,很多東西完全不懂,中間很多次找不到頭緒,這裡最後找到了一種debug方法,勉強能用。
首先找到函數主入口node.main.cc,並將以下兩個組態檔新增進去

然後,單獨啟動一個Cartographer_ros節點是沒用的,需要輸入資料才能成功debug,這裡選擇的是google官方提供的資料集,Deutsches Museum(wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
)
修改/home/yuan/test3/cartographer_superbuild/cartographer_ros/cartographer_ros/launch裡面的組態檔backpack_2d.launch,demo_backpack_2d.launch,修改如下,
backpack_2d.launch,
在這裡插入圖片描述
demo_backpack_2d.launch,
在這裡插入圖片描述
最後啟動CLion
source /opt/ros/melodic/setup.bash
sh /snap/clion/126/bin/clion.sh
在CLion terminal輸入,
source build/devel/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
啟動Cartographet_node節點,可以看到debug成功!!!效果圖如下。
在這裡插入圖片描述
rqt_graph

參考文獻:
[1]: https://google-cartographer-ros.readthedocs.io/en/latest/demos.html
[2]: https://github.com/larics/cartographer_superbuild
[3]: http://wiki.ros.org/melodic/Installation/Ubuntu