1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ROS 2 コマンド チートシート(CLI)

1
Posted at

前提:source /opt/ros/<distro>/setup.bash 済み(例:jazzy)
ワークスペース使用時:source ~/ros2_ws/install/setup.bash


0. 基本:環境・前提確認

# ROS 2 ディストロ確認(設定されていれば出る)
echo $ROS_DISTRO

# ドメインID(同一ネットワーク内で分離する番号)
echo $ROS_DOMAIN_ID

# RMW 実装(DDSの実装選択)
echo $RMW_IMPLEMENTATION

1. グラフ全体(何が動いてる?)

# ノード一覧
ros2 node list

# トピック一覧
ros2 topic list

# トピック一覧(型つき)
ros2 topic list -t

# サービス一覧
ros2 service list

# アクション一覧
ros2 action list

2. ノード(このノードが何を使ってる?)

# ノードの詳細(Pub/Sub/Service/Action/Params)
ros2 node info /talker
ros2 node info /listener
  • ノードが「欲する topic」= Subscribers に出る topic
  • ノードが「出す topic」= Publishers に出る topic

3. トピック(つながってる?流れてる?)

# topic の接続状況(Publisher/Subscriber 数)
ros2 topic info /chatter

# topic の接続状況(QoS/エンドポイント詳細まで)
ros2 topic info /chatter -v

# topic を覗く(流れてるか確認)
ros2 topic echo /chatter

# 周波数を見る(例:Hz)
ros2 topic hz /chatter

# 帯域を見る
ros2 topic bw /chatter

# 1回だけ読む(デバッグ用)
ros2 topic echo /chatter --once

publish / subscribe の即席テスト

# publish(1回)
ros2 topic pub --once /chatter std_msgs/msg/String "{data: 'hello'}"

# publish(繰り返し、1Hz)
ros2 topic pub -r 1 /chatter std_msgs/msg/String "{data: 'hello'}"

# subscribe(受信)
ros2 topic echo /chatter

4. QoS(届かない時の最優先チェック)

# topic 側の QoS とエンドポイントを見る
ros2 topic info /chatter -v

echo 側で QoS を合わせる例(典型の救済策):

# best_effort / volatile などに合わせたい場合の例
ros2 topic echo /some_topic --qos-reliability best_effort --qos-durability volatile

5. メッセージ型・インターフェース(型って何?)

# パッケージ一覧
ros2 pkg list

# インターフェース一覧(msg/srv/action を含む)
ros2 interface list

# 型の中身を表示
ros2 interface show std_msgs/msg/String
ros2 interface show rcl_interfaces/msg/Log

6. サービス(request/response)

# サービス一覧
ros2 service list

# サービスの型
ros2 service type /some_service

# 型の中身
ros2 interface show <pkg>/srv/<ServiceName>

# 呼び出し(引数は型に合わせる)
ros2 service call /some_service <pkg>/srv/<ServiceName> "{...}"

7. アクション(長い処理+フィードバック+結果)

# アクション一覧
ros2 action list

# アクション情報(型など)
ros2 action info /some_action

# 送信(goal を投げる)
ros2 action send_goal /some_action <pkg>/action/<ActionName> "{...}"

# フィードバック表示つき
ros2 action send_goal /some_action <pkg>/action/<ActionName> "{...}" --feedback

8. パラメータ(ノード設定の読み書き)

# そのノードのパラメータ一覧
ros2 param list /some_node

# 取得
ros2 param get /some_node <param_name>

# 設定
ros2 param set /some_node <param_name> <value>

# 全パラメータをダンプ(YAML)
ros2 param dump /some_node

# YAML をロード
ros2 param load /some_node params.yaml

9. ログ(/rosout)

# /rosout を覗く(大量に出るので注意)
ros2 topic echo /rosout

10. Launch(複数ノード起動)

# 起動
ros2 launch <pkg> <file>.launch.py

# launch 引数や説明が出る場合がある
ros2 launch <pkg> <file>.launch.py --show-args

11. rosbag(記録/再生)

# 記録(全部)
ros2 bag record -a

# 記録(指定トピックのみ)
ros2 bag record /chatter /tf

# 情報
ros2 bag info <bag_dir>

# 再生
ros2 bag play <bag_dir>

# 再生(ループ)
ros2 bag play <bag_dir> --loop

12. colcon(ビルド)

# ワークスペース(例:~/ros2_ws)で
cd ~/ros2_ws

# ビルド
colcon build

# ビルド(特定パッケージだけ)
colcon build --packages-select <pkg_name>

# ビルド後の反映
source install/setup.bash

13. パッケージ作成(C++例)

cd ~/ros2_ws/src

# C++ パッケージ作成(rclcpp)
ros2 pkg create --build-type ament_cmake <pkg_name> --dependencies rclcpp std_msgs

# その後
cd ~/ros2_ws
colcon build --packages-select <pkg_name>
source install/setup.bash

14. デバッグの定番手順(最短ルート)

  1. ノードが生きてるか
ros2 node list
  1. ノードが何を Pub/Sub してるか
ros2 node info /some_node
  1. 問題の topic が存在し、型が合うか
ros2 topic list -t
  1. 接続が成立してるか(QoS含む)
ros2 topic info /some_topic -v
  1. 実際にデータが流れてるか
ros2 topic echo /some_topic
ros2 topic hz /some_topic
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?