| コマンド | 概要 |
|---|---|
ros2 topic list |
現在利用可能な全トピックを一覧表示する。 例: ros2 topic listノードが公開・購読しているトピックの確認に使用。 参考:ROS2 CLI - topic list |
ros2 topic echo |
指定したトピックの内容をリアルタイムで表示する。 例: ros2 topic echo /example_topicセンサデータやノード間通信の中身を確認するのに便利。 参考:ROS2 CLI - topic echo |
ros2 topic pub |
指定したトピックに任意のメッセージを手動で送信する。 例: ros2 topic pub /led_toggle std_msgs/Bool "data: true"デバッグや動作テストに使われる。 -rで繰り返し送信可能。参考:ROS2 CLI - topic pub |
ros2 topic info |
指定したトピックに関する詳細情報(型、Publisher数など)を表示。 例: ros2 topic info /cmd_velトピックのデバッグや通信確認に有効。 参考:ROS2 CLI - topic info |
ros2 node list |
現在実行中のノード一覧を表示。 例: ros2 node listノードの起動状態を確認できる。 参考:ROS2 CLI - node list |
ros2 node info |
指定したノードが提供/使用しているトピックやサービスを表示。 例: ros2 node info /my_nodeノードの入出力や役割を把握するのに役立つ。 参考:ROS2 CLI - node info |
ros2 topic list は、現在アクティブなすべてのトピック名を表示するためのコマンドです。ノードがパブリッシュまたはサブスクライブしているトピックの一覧を確認することで、ROS2システムの状態を把握するのに役立ちます。
ros2 topic list [オプション]ros2 topic list出力例:
/camera/image_raw
/cmd_vel
/parameter_events
/rosout
/scan
| オプション名 | 説明 |
|---|---|
-t , --show-types |
各トピックのメッセージ型も一緒に表示します。 |
-h , --help |
コマンドの使い方を表示します。 |
例:
ros2 topic list --show-types出力例:
/camera/image_raw sensor_msgs/msg/Image
/cmd_vel geometry_msgs/msg/Twist
/parameter_events rcl_interfaces/msg/ParameterEvent
/rosout rcl_interfaces/msg/Log
/scan sensor_msgs/msg/LaserScan
このコマンドの出力は、「トピック名」と「そのトピックが扱うメッセージ型」 の組み合わせを表しています。各行の内容は次のように解釈します:
| 出力例 | 意味 |
|---|---|
/camera/image_raw sensor_msgs/msg/Image |
sensor_msgs/msg/Image 型の画像データを流すトピック。主にカメラノードからの画像出力に使用されます。 |
/cmd_vel geometry_msgs/msg/Twist |
ロボットの速度指令を表すトピック。多くの移動ロボットで使われる「速度指令(線形・角速度)」をパブリッシュします。 |
/parameter_events rcl_interfaces/msg/ParameterEvent |
ノード内のパラメータの変更イベントを通知するトピック。ROS2が自動で生成します。 |
/rosout rcl_interfaces/msg/Log |
ROS2システムのログ出力が流れるトピック。標準的なログ可視化に使用されます。 |
/scan sensor_msgs/msg/LaserScan |
LiDAR(レーザースキャナ)のスキャンデータが流れるトピック。障害物検知や自己位置推定に使われます。 |
この情報を元に、「どのノードがどんなデータをやりとりしているか」を把握することができます。
| メッセージ型 | 型名 | 主な用途 |
|---|---|---|
| 文字列 | std_msgs/msg/String |
単純なテキストの送受信(例:ロボットの発話、状態表示など) |
| ブール値 | std_msgs/msg/Bool |
ON/OFFやTrue/Falseなどの単純な状態表現 |
| 数値(整数/浮動小数) | std_msgs/msg/Int32, Float64 など |
カウンターやセンサーの数値データの送受信に利用 |
| 座標位置 | geometry_msgs/msg/Point |
x, y, z の位置情報(例:ターゲット座標など) |
| 姿勢・向き | geometry_msgs/msg/Quaternion |
3次元空間での向きの表現。SLAMやナビゲーションなどで利用 |
| 速度指令 | geometry_msgs/msg/Twist |
ロボットの線形・角速度の制御指令(例:/cmd_vel) |
| ポーズ(位置+姿勢) | geometry_msgs/msg/Pose |
ロボットや物体の「位置と向き」のセット |
| レーザースキャン | sensor_msgs/msg/LaserScan |
LiDARなどからの障害物検出・距離センサーデータ |
| 画像データ | sensor_msgs/msg/Image |
カメラからの画像フレームを扱うメッセージ |
| IMU(慣性センサ) | sensor_msgs/msg/Imu |
加速度・角速度・姿勢などを含むセンサーデータ |
| パラメータ変更通知 | rcl_interfaces/msg/ParameterEvent |
パラメータが動的に変更されたときの通知(内部的に使用) |
| ログ出力 | rcl_interfaces/msg/Log |
ノードからのログ情報を記録・表示するためのトピック用 |
- 新たに起動したノードがどのトピックを使っているか確認する
- 期待するトピックが生成されているかを確認する(起動確認)
- 他の
ros2 topicサブコマンド(例:echo,info)で使うトピック名を調べるための下準備
ROS2 において、特定のトピックに流れているメッセージの内容をリアルタイムで確認するためのコマンドです。デバッグや開発中の確認作業において最もよく使われるコマンドのひとつです。
ros2 topic echo /cmd_velこのコマンドは、/cmd_vel トピックに送信されるメッセージの中身を標準出力に表示します。
| オプション | 説明 | |
|---|---|---|
--once |
メッセージを1件だけ表示して終了 | |
| `--qos-reliability <reliable | best_effort>` | 通信品質を指定して受信(特定のセンサートピックなどで有効) |
| `--qos-durability <volatile | transient_local>` | 永続性のあるトピックに対応(たとえば latched topic を再取得) |
$ ros2 topic echo /cmd_vel
linear:
x: 0.5
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.3
---
linear:
x: 0.5
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0この例では、/cmd_vel トピックのメッセージ型が geometry_msgs/msg/Twist であることを示しています。
| フィールド | 意味 |
|---|---|
linear.x |
前後方向の速度(+で前進) |
linear.y |
左右方向の速度(多くのロボットでは使われない) |
linear.z |
上下方向の速度(ドローンなどで使用) |
angular.z |
回転速度(+で左回転) |
メッセージは送信されるたびに --- 区切りで表示されます。
ROS2 において、特定のトピックにメッセージをパブリッシュするためのコマンドです。主にトピックへのテストメッセージの送信や、他のノードに指示を出すために使用されます。
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist "linear: {x: 0.1, y: 0.0, z: 0.0} angular: {x: 0.0, y: 0.0, z: 0.5}"このコマンドは、/cmd_vel トピックに geometry_msgs/msg/Twist 型のメッセージをパブリッシュします。ここでは、ロボットに前進と回転の動作を指示するために次の情報を送信しています。このコマンドを実行すると終了コマンド「Controlキー + Cキー」を押すまで指定されたトピックにメッセージがパブリッシュされます。
-
linear: {x: 0.1, y: 0.0, z: 0.0}:x: 0.1はロボットを前進させるための速度指令です。ここでは前進速度が 0.1 m/s に設定されています。y: 0.0とz: 0.0は左右方向(横)および上下方向(垂直)の速度であり、どちらも0.0に設定されています。これによりロボットは横や縦方向には動かず、直進だけを行います。
-
angular: {x: 0.0, y: 0.0, z: 0.5}:z: 0.5はロボットの回転速度です。z軸周りに 0.5 rad/s の速度で回転するよう指示しています。この値を正にすると右回転、負にすると左回転します。x: 0.0とy: 0.0は、ロボットが上下や左右に回転する速度を制御しますが、今回は回転はz軸のみで行うため、両方とも0.0です。
このコマンドを使うと、/cmd_vel トピックに geometry_msgs/msg/Twist 型のメッセージが流れ、ロボットの動きが制御されます。具体的には、ロボットは以下の動作を行います:
- 前進速度が
0.1 m/sで、進行方向にまっすぐ進みます。 angular.zが0.5なので、ロボットは右方向に回転します(+値のため、右回転)。- ロボットは直進しながら、一定の回転を行います。つまり、前進しつつ旋回する動作が実現します。
- ロボットの自律移動テスト: 上記のコマンドを使用すると、ロボットが指定された速度で直進し、回転する動作をシミュレートできます。ロボットの自律移動の動作確認やデバッグに使用できます。
これにより、ロボットの動作がどのように制御されるかを理解しやすくなります。ros2 topic pub は特定のトピックに対してメッセージをパブリッシュする強力なツールであり、ロボットに実際の指令を送るために頻繁に使用されます。
| オプション | 説明 | |
|---|---|---|
-r <rate> |
指定したレート(Hz)でメッセージを繰り返しパブリッシュ | |
--once |
1回だけメッセージをパブリッシュして終了 | |
| `--qos-reliability <reliable | best_effort>` | 通信品質を指定(特定のセンサートピックで有効) |
| `--qos-durability <volatile | transient_local>` | 永続性のあるトピックで有効(たとえば latched topic) |
先ほど記述したコマンドでは常にトピックをパブリッシュし続けますが、以下のコマンドのように --once オプションをつけることで一度だけ速度司令をパブリッシュします。これでロボットが突如継続的な移動を行うリスクを回避できます。
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist "linear: {x: 0.1, y: 0.0, z: 0.0} angular: {x: 0.0, y: 0.0, z: 0.5}"Publishing message:
linear:
x: 0.1
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.5このコマンドの出力は、送信したメッセージの内容がそのまま表示されます。上記の例では、/cmd_vel トピックに geometry_msgs/msg/Twist 型のメッセージがパブリッシュされたことを示しています。
| フィールド | 意味 |
|---|---|
linear.x |
前後方向の速度(+で前進) |
linear.y |
左右方向の速度(通常は 0) |
linear.z |
上下方向の速度(通常は 0) |
angular.z |
回転速度(+で右回転) |
- 開発中にロボットの動作をシミュレートするために、
/cmd_velに対して手動で速度指令を送ることができます。 - センサーデータを擬似的に流して、システムのテストを行う際にも使えます。
このように、ros2 topic pub はトピックに対して直接メッセージを送信するための非常に便利なツールです。ロボットやシミュレーション環境での動作確認に役立ちます。
ROS2 において、指定したトピックの詳細情報を取得するためのコマンドです。主に、トピックが使用しているメッセージ型や、パブリッシュしているノード、サブスクライブしているノードなどを確認するために使用されます。
ros2 topic info /cmd_velこのコマンドは、/cmd_vel トピックの詳細情報を表示します。具体的には、トピックに関する以下の情報が得られます。
| オプション | 説明 |
|---|---|
--verbose |
トピックに関する詳細な情報を表示。より多くの情報を表示する場合に使用します。 |
Type: geometry_msgs/msg/Twist
Publisher count: 1
Subscriber count: 2-
Type: geometry_msgs/msg/Twistこのトピックで使用されているメッセージ型がgeometry_msgs/msg/Twistであることを示しています。このメッセージ型は、ロボットの速度情報を表現します。 -
Publisher count: 1トピックをパブリッシュしているノードが1つであることを示しています。この場合、1つのノードがこのトピックにメッセージを送信しています。 -
Subscriber count: 2このトピックをサブスクライブしているノードが2つであることを示しています。これらのノードは、/cmd_velトピックからメッセージを受信していることを意味します。
- デバッグ: トピックに関する情報を確認することで、どのノードがそのトピックをパブリッシュしているのか、またどのノードがサブスクライブしているのかを簡単に把握できます。これにより、通信の問題をデバッグする手助けになります。
- トピックの監視: システム内の特定のトピックに関する詳細な情報を知ることで、トピックの使用状況を監視することができます。
ros2 topic info コマンドは、システム内で使用されているトピックに関する情報を簡単に取得できる便利なツールです。これを使うことで、トピックの状態やトピックに関連するノードを把握し、システム全体の通信状態を確認することができます。
ros2 node list コマンドは、現在実行中の ROS2 ノードのリストを表示するためのコマンドです。システム内で稼働しているノードの名前を確認することができ、ノードの管理やデバッグ時に非常に役立ちます。
ros2 node listこのコマンドを実行すると、現在動作しているすべてのノードのリストが表示されます。具体的には、以下のような結果が得られます。
| オプション | 説明 |
|---|---|
--all |
実行中のノードをすべて表示します。 |
--verbose |
各ノードに関する追加情報(エンドポイントの数など)を表示します。 |
/camera_driver
/sample_publisher-
/camera_driverこのノードは、カメラのドライバとして機能しているノードであり、カメラに関連する処理を担当しています。 -
/sample_publisherこのノードは、ロボットの動作を制御するためのノードです。ロボットのモーター制御やセンサーの処理を行っている可能性があります。
- システムの確認: システム内でどのノードが稼働しているのかを確認できます。これにより、システムの状態を把握し、必要に応じて特定のノードを監視・管理できます。
- デバッグ: 特定のノードが動作していない場合、このコマンドを使用してそのノードが実行されていないことを確認できます。また、予期せぬノードが起動していないかどうかもチェックできます。
ros2 node list コマンドは、システム内のノードの状態を確認するために使用する基本的なコマンドです。ノードのトラブルシューティングやシステムの確認作業に非常に役立ちます。
ros2 node info コマンドは、指定した ROS2 ノードに関する詳細情報を表示するためのコマンドです。このコマンドを使用することで、特定のノードが持つサービス、トピック、アクションなどのエンドポイント情報を確認できます。ノードの内部状態を把握するために非常に役立ちます。
ros2 node info /sample_publisherこのコマンドは、/sample_publisher というノードに関する詳細情報を表示します。例えば、以下のような情報が表示されます。
| オプション | 説明 |
|---|---|
--verbose |
ノードに関連するすべてのエンドポイント(トピック、サービス、アクションなど)の詳細を表示します。 |
Node name: /sample_publisher
Topics:
/cmd_vel [geometry_msgs/msg/Twist]
/odom [nav_msgs/msg/Odometry]
Services:
/sample_publisher/set_pose
Actions:
/sample_publisher/move-
Node name: /sample_publisherノード名は/sample_publisherです。このノードが提供するサービスやトピック、アクションの情報が以下に続きます。 -
Topics:このノードがパブリッシュ(またはサブスクライブ)しているトピックのリストが表示されます。例えば、/cmd_velはロボットの速度制御に関連するトピックで、geometry_msgs/msg/Twistメッセージ型が使われています。 -
Services:このノードが提供しているサービスのリストが表示されます。サービスは、リクエストとレスポンスの通信を行うエンドポイントです。例では、/sample_publisher/set_poseサービスが提供されています。 -
Actions:このノードが提供しているアクションのリストが表示されます。アクションは長時間実行される操作に使用されるエンドポイントです。ここでは、/sample_publisher/moveというアクションがあります。
- ノードの内部構造確認: 特定のノードが提供するトピック、サービス、アクションなどを調べ、ノードの機能を把握することができます。これにより、他のノードとどのように連携しているのかを理解するのに役立ちます。
- デバッグ: ノードのエンドポイントが正しく動作しているか、想定されるトピックやサービスが存在しているかを確認することができます。これにより、通信やサービスの問題を診断できます。
ros2 node info コマンドは、特定のノードがどのようなエンドポイントを持っているのかを詳しく知るための強力なツールです。これを使うことで、ノードの動作を理解し、システム全体の通信を効率よく確認できます。