👏

backward_rosでROS2ノードのデバッグ

2023/04/04に公開

これを使用してROS2ノードのデバッグをする。
https://github.com/pal-robotics/backward_ros
↑自体はbackward_cppというものをROSで使えるようなWrapperとして作成されたもの。
https://github.com/bombela/backward-cpp
実行ファイルがセグフォで死んだときにターミナルにスタックトレースした結果を貼ってくれる。ROSノードだとノードが死んだタイミングでどの行で落ちたかをとりあえず標準出力で出す。ひとまず落ちた箇所の特定をしたい場合は結構便利。

使用環境は以下
ROS2 humble
ubuntu 22.04

下記でインストールが可能

sudo apt install ros-humble-backward-ros

使用方法は以下のように使用したいROSパッケージのCMakeLists.txtに追加する。

find_package(backward_ros REQUIRED) #追記
ament_auto_add_executable(hoge hoge.cpp)
~~~~
add_backward(hoge) #追記

デバッグモードでビルド

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Debug

実行してノードが落ちるとこんな感じでバッと出してくれる。

Discussion