📘
ROS2の各種識別名
解説対象
本記事では、ROS2を理解する上で欠かせないノード名・トピック名・サービス名等の各種識別名についてまとめています。
公式ドキュメント
-
ROS2 design
- 識別名の指定方法に関して説明があります
解説
識別名
識別名の指定方法は、下記の3種類があります。
- 絶対指定(
/
で始まる文字列) - 相対指定(
/
と~
以外で始まる文字列) - ノード名置換指定(
~
で始まる文字列)
識別名 | 絶対指定 | 相対指定 | ノード名置換指定 | 途中での/
|
例 | 解説 |
---|---|---|---|---|---|---|
ノード名前空間 | 〇:可 | ×:不可 | ×:不可 | 〇:可 | /nsX/nsY | 相対指定した場合は自動的に先頭に/ が挿入され絶対指定とみなされます |
ノード名 | ×:不可 | 〇:可 | ×:不可 | ×:不可 | nodeA | 必ず相対指定 |
トピック名 | 〇:可 | 〇:可 | 〇:可 | 〇:可 | /nsZ/topicL topicM ~/topicN |
絶対指定・相対指定・ノード名置換指定が可能 |
サービス名 | 〇:可 | 〇:可 | 〇:可 | 〇:可 | /nsZ/serviceL serviceM ~/serviceN |
絶対指定・相対指定・ノード名置換指定が可能 |
上記例の場合における完全修飾識別名は下記のようになります
識別名 | 例 | 解説 |
---|---|---|
完全修飾ノード名 | /nsX/nsY/nodeA | ノード名とノード名前空間を結合して生成されます |
完全修飾トピック名 | /nsZ/topicL /nsX/nsY/topicM /nsX/nsY/nodeA/topicN |
トピック名が相対指定の場合はノード名前空間にトピック名を結合して生成、ノード名置換指定の場合は完全修飾ノード名でトピック名の~部分を置換して生成 |
完全修飾サービス名 | /nsZ/serviceL /nsX/nsY/serviceM /nsX/nsY/nodeA/serviceN |
サービス名が相対指定の場合はノード名前空間にサービス名を結合して生成、ノード名置換指定の場合は完全修飾ノード名でサービス名の~部分を置換して生成 |
Discussion