車両インターフェース#
車両インターフェースとは何ですか?#
車両インターフェイス パッケージの目的は、オートウェアから計算された制御メッセージを車両が理解できる形式に変換して車両に送信し (CAN、シリアル メッセージなど)、車両から送信されるデータをデコードして、オートウェアが期待する ROS 2 トピックを通じて公開します。 したがって、 vehicle_interface の目的は次のとおりであると言えます:
-
Autoware 制御コマンドを車両固有の形式に変換します。Autoware の制御コマンドの例:
- 横方向のコントロール: ステアリングタイヤ角度、ステアリングタイヤ回転速度
- 縦方向のコントロール: 速度、加速度、ジャーク
-
車両固有の形式の車両ステータス情報を Autoware メッセージに変換します。
Autoware は、次のような制御コマンドを公開しています:
- 速度制御
- ステアリング制御
- 車のライトコマンド
- 等
次に、車両インターフェイスはこれらのコマンドを次のような作動に変換します:
- モーターとブレーキの作動
- ハンドル操作
- 照明制御
- 等
したがって、車両インターフェイスは、Autoware によって提供される入力コマンドを実現するために車両の制御デバイスを実行するモジュールと考えてください。
自分の車両を制御するためのインターフェイスには 2 種類があります:
- ターゲットステアリングとターゲット速度/加速度インターフェイス。(本書ではタイプAとします)
- 一般化されたターゲット コマンド インターフェイス (つまり、アクセル/ブレーキ ペダル、ステアリング トルク)。(本書ではタイプBとします)
タイプ A の場合、 制御インターフェイスには目標ステアリングと目標速度/加速度が含まれます。
- したがって、このタイプでは、任意の速度または加速度によって速度制御が行われます。
- ステアリング制御は、所望のステアリング角度および/またはステアリング角度速度によって行われます。
一方、タイプ B は、一般化されたターゲット コマンド インターフェイス (アクセル/ブレーキ ペダル、ステアリング トルクなど) を特徴とし、
より動的で適応性のある制御スキームを導入します。
この構成では、
車両は、
raw_vehicle_cmd_converter
の出力であるオートウェア作動コマンドから直接入力するように制御され、
より直感的で人間に近い運転体験が可能になります。
自分の車両をこのように使用する場合 (つまり、アクセルとブレーキ ペダルを制御する)、 raw_vehicle_cmd_converterパッケージを使用して autoware 出力制御 cmd をブレーキ、アクセル、ステアリング マップに変換する 必要があります。 そのためには、ブレーキ、ガソリン、ステアリングの調整が必要になります。 したがって、 accel_brake_map_calibratorパッケージを使用してキャリブレーションを取得できます。 車両の作動を調整する手順に従ってください。
これらの制御インターフェイスの選択は、設計と開発のプロセスに大きな影響を与えます。 タイプ A を使用する予定の場合は、 ドライブ バイ ワイヤ システムで速度または加速度を制御します。 タイプ B の方が実装に適している場合は、 車両のブレーキ ペダルとアクセル ペダルを制御する必要があります。
車両インターフェースと車両の制御デバイス間の通信#
- 車両で Autoware を使用して運転することを計画している場合、車両はいくつかの要件を満たしている必要があります:
Type A | Type B |
---|---|
車両は、目標速度または加速度によって前後方向に制御できます。 | 車両は、特定のターゲット コマンドによって前後方向に制御できます。(つまり、ブレーキとアクセルペダル) |
目標ステアリング角度によって車両を横方向に制御できます。(オプションでステアリングレートも使用できます) | 車両は、特定のターゲット コマンドによって横方向に制御できます。(すなわち操舵トルク) |
車両は、上記の車両ステータスのトピックで説明されている速度または加速度の情報とステアリング情報を提供する必要があります。 | 車両は、上記の車両ステータスのトピックで説明されている速度または加速度の情報とステアリング情報を提供する必要があります。 |
- また、横方向は操舵角で制御し、前後方向は特定の目標で制御したい場合など、タイプAとタイプBを混合して使用することもできます。これを行うには、ステアリング情報を取得するために
/control/command/control_cmd
をサブスクライブし、アクセル ペダルとブレーキ ペダルの作動コマンドの/control/command/actuation_cmd
をサブスクライブする必要があります。次に、これらのメッセージを独自の vehicle_interface 設計で処理する必要があります。 - Autoware で実行するには、車両の低レベル コントローラーを採用する必要があります。
- 車両はターゲット シフト モードで制御できますが、Autoware にシフト情報を提供する必要もあります。
- 車両で CAN 通信を使用している場合は、 Autoware のros2_socketcanパッケージを参照してください。
- 車両でシリアル通信を使用している場合は、serial-portを確認できます。