7. 制限事項

intdash ROS2Bridgeには以下の制限事項があります。

7.1. QoSについて

../_images/ros2bridge-qos.ja.png

図 16 構成

エッジデバイス1内とエッジデバイス2内のROS2ノードのトピック・サービスに対して互換性があるQoSを設定する必要があります。

また、intdash ROS2Bridgeに対して設定するQoSは、ローカルネットワーク内のROS2ノードとの通信のみに有効です。そのため、以下のような点を考慮する必要があります。

ポリシー

考慮すべき点

history + depth

エッジデバイス2に設定したhistoryとdepthはエッジデバイス2内のintdashROS2Bridgeとの間で有効です。

reliability

2つのintdash Edge Agent間の通信は基本的には信頼性のある通信ですが、到達保証はされません。エッジデバイス1あるいはエッジデバイス2とintdashEdgeAgentとサーバー間の通信が切断された場合やサーバーのリソースに問題がある場合にデータが到達しない可能性があります。

durability

エッジデバイス2のintdashROS2Bridgeでtransient_localを設定した場合、エッジデバイス2の保持しているトピックを取得することになります。intdash にはTransient Localに相当するQoSの仕組みはないため、エッジデバイス1から送られたトピックがエッジ2に届いていない場合はpublishできるトピックはありません。

deadline

deadlineを設定する場合、インターネットを経由する通信遅延時間を考慮して設定する必要があります。

lifespan

ROS2ノード間のlifespanではなく、ROS2ノードとintdashROS2Bridge間のlifespanになります。そのため、publisher側では削除されているのにROS2Bridgeが保持している可能性があります。

liveliness

ROS2Bridge間で、liveliness_assertの通知はブリッジされません。そのため、manual_by_topicの使用は推奨されません。

7.2. tf/tf_staticの制限

設定ファイル上でtf、tf_staticに対応するトピック名を変更することはできません。

7.3. bool型の可変長配列

bool型の可変長配列を含むメッセージは扱うことができません。

7.4. サービスについて

intdash Edge Agentは完全なデータの到達保証がないため、サービスリクエストやサービスレスポンスが返ってこない場合があります。そのため、intdash ROS2Bridgeのservice_clientsの設定には、リクエストを再送するための設定があります。

また、サービスクライアントは適切にタイムアウトを設定することが推奨されます。

7.5. 時間を入力する場合の上限

設定ファイルで時間を入力する場合、符号なし64ビット整数で表すことができる最大の値が上限になります。

ただし、単位が "min" の場合は、入力値に60をかけた結果が、符号なし64ビット整数で表される範囲に収まる必要があります。