#概要
ROSのデバッグ方法を通じて、開発の効率を上げる。
#何をやりたいか
実際の開発時においてどのような流れでrosのデバッグコマンドを叩くかを知っていくのが目的。
- ノードの停止
- rqt_graphで変更の確認
- rotopic pubでpublishしてみる
- 再度ノードを復活させる
- 復活したノードが動いていることを確認
準備
以下のファイルをcatkin_ws/src/
以下に入れて
catkin_make
してくコンパイルしてください。
https://github.com/Keisuke08aw/robot-lecture
##control_robotノードの停止
rosnode kill /control_robot
を実行します。
これで/control_robotが死にます。
##rqt_graphでnodeが消えたことを確認
rosrun rqt_graph rqt_graph
を実行することでcontrolノードが消えたことが確認できます。
削除前
##rotopic pubで/move_speedを0.1でpublishしてみる
rostopic pub -1 /move_speed std_msgs/Float32 "data: 0.1"
を実行することで
3秒間この情報を/move_speedというtopic名でpublishします。
###コマンド実行前のロボット
###コマンド実行後のロボット
コマンド実行前では、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のリストを閲覧することができるので確認しましょう。
##デバッグコマンド
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がどんな値を受け取ってどんな値を投げているかを確認するためです。
ここまで分かればあとは大体いけます。