前提
MJ23車両アーキテクチャ
物理構成
MJ23車両は、以下のハードウェア構成で設計されています。
特筆すべき点として、 ECUをMain,Subの2台、VCUをMain,Subの2台搭載していることにより冗長化を実現しています。また、IMUをMain,Subの2台搭載し、それぞれMain ECU、Sub ECUに接続されています。つまり、Sub ECUのinputはSub IMUとVCUからの車両情報のみであり、lidarやcamera、radarなどのセンサはSub ECUには接続されていません。
ドメイン分割
従来Pilot-auto.x2では、ROS_DOMAIN_ID=1 で全てのノードが同一ドメインで通信していましたが、MJ23車両アーキテクチャでは、以下のようにドメインを分割しています。
-
ROS_DOMAIN_ID=1: 自動運転ドメイン。Main ECU上の従来の機能は全てこのドメインに所属。 -
ROS_DOMAIN_ID=2: Sub ECUドメイン。Sub ECUで起動されるノードが所属。 -
ROS_DOMAIN_ID=3: MRMドメイン。Main ECU上のMRM関連ノードが所属。
ドメイン分割により、同一ノードや同一トピック名が異なるドメインで共存可能となり、MRMシステムの独立性が向上します。 ドメイン分割をしなければ、Main ECUとSub ECU上でノード名やトピック名が競合してしまい正常に動作しません。それらをすべて管理して一意の名称を付与することも可能ですが、ドメイン分割の方がシンプルで管理が容易です。
ドメイン間通信は、ROS2の domain bridgeを使用して実現しています。自動運転ドメインとSub ECUドメイン、MRMドメイン間で必要なトピックのみをブリッジしています。