LoginSignup
7
6

More than 5 years have passed since last update.

ざっくりROSデバッグ方法

Posted at

概要

ROSのデバッグ方法を通じて、開発の効率を上げる。

何をやりたいか

実際の開発時においてどのような流れでrosのデバッグコマンドを叩くかを知っていくのが目的。
1. ノードの停止
2. rqt_graphで変更の確認
3. rotopic pubでpublishしてみる
4. 再度ノードを復活させる
5. 復活したノードが動いていることを確認

準備

以下のファイルをcatkin_ws/src/以下に入れて
catkin_makeしてくコンパイルしてください。
https://github.com/Keisuke08aw/robot-lecture

control_robotノードの停止

rosnode kill /control_robotを実行します。
これで/control_robotが死にます。
セットアップ.png

rqt_graphでnodeが消えたことを確認

rosrun rqt_graph rqt_graphを実行することでcontrolノードが消えたことが確認できます。
削除前
Bad Request

削除後
セットアップ.png

rotopic pubで/move_speedを0.1でpublishしてみる

rostopic pub -1 /move_speed std_msgs/Float32 "data: 0.1"を実行することで
3秒間この情報を/move_speedというtopic名でpublishします。

コマンド実行前のロボット

セットアップ.png

コマンド実行後のロボット

セットアップ.png

コマンド実行前では、0.5m/secで動かしていたロボットを0.1m/secで動かしているため
動きがゆっくりになっているのがわかります。

再度control_robotを復活させる

rosrun robot-car control_robot
rorunは1つのノードしか立ち上げられない。robot-carパッケージにあるcontrol_robotを立ち上げる。

rosnode listでcontrol_robotが復活していることを確認

robotnode listでrosnodeのリストを閲覧することができるので確認しましょう。
セットアップ.png

デバッグコマンド

Nodeのグラフ可視化
rqt_graph

すべてのNodeのリストを表示
rosnode list

あるnodeの情報を取得
rosnode info /node名

あるnodeを止める
rosnode kill /node名

あるnodeを再開
rosrun パッケージ名 node名

すべてのtopicのリストを表示
rostopic list

あるtopicの情報を取得
rostopic info /topic名

あるtopicの値についてpublish
`rostopic pub -1 /トピック名 パッケージ名/型 "data:値"

まとめ

基本的によく使うコマンドはrosnode infoです。
あるnodeがどんな値を受け取ってどんな値を投げているかを確認するためです。
ここまで分かればあとは大体いけます。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6