GT_esminiは、標準の esmini 環境シミュレータに対して、車両制御や挙動モデル、外部連携機能を強化するための拡張モジュールです。
本モジュールは esmini 本体を変更することなく、追加のライブラリとして統合されています。
標準の esmini 機能に加え、以下の点が拡張されています。
- 車両挙動 (Physics): 簡易モデルではなく、ピッチ・ロール姿勢変化やエンジン特性を含む詳細な車両ダイナミクス (
RealVehicle) を実装。 - ライト制御 (Lighting): OpenSCENARIO v1.2
LightStateActionに対応し、さらに自動点灯ロジック(ブレーキ、ウインカー等)を追加。 - 地形追従 (Terrain): 道路勾配だけでなく、路面の微細な起伏に車両姿勢(ピッチ・ロール)を追従させる機能を追加。
- 外部操作 (Control): UDP経由でのリアルタイム車両操作(ステアリング、アクセル、ブレーキ、ギア)に対応 (
RealDriverController)。 - OSI出力 (Reporting): 自車入力値 (HostVehicleData) や、補正済みの速度情報をOSI (Open Simulation Interface) ストリームに追加。
標準の簡易的な車両移動モデルを拡張し、より物理的な挙動を再現します。
- サスペンション: バネ・ダンパーモデルによる加減速時のピッチング(前後の沈み込み)や旋回時のローリング(左右の傾き)を計算。
- パワートレイン: エンジン回転数 (RPM) とトルクカーブ、ギア比に基づいた駆動力計算。
- 設定:
real_vehicle_params.jsonで車種ごとの物理パラメータ(剛性、減衰、最大トルク等)を定義可能。
車両のライト状態を詳細に管理・制御します。
- OSC v1.2 対応: 標準では未対応の
LightStateActionをパースし、シナリオからライトの点灯・点滅を制御可能。 - AutoLight: 車両の状態変数を監視し、ライトを自動制御するロジックを搭載。
- ブレーキランプ: 減速度が閾値 (
-1.2 m/s²) を超えた際に自動点灯(チャタリング防止機能付き)。 - ウインカー: 右左折時の横方向速度や、ジャンクション進入予測に基づいて自動点滅。
- バックランプ: リバースギア連動。
- ブレーキランプ: 減速度が閾値 (
OpenDRIVEの道路ジオメトリ(路面高さ)をサンプリングし、車両の接地点に応じた姿勢制御を行います。
- 4輪の接地高さを考慮した姿勢計算ではなく、簡略化されたレイキャストモデルで路面の勾配(法線ベクトル)を取得し、車両のピッチ・ロール姿勢に合成します。
外部アプリケーション(コックピットシミュレータやAIドライバ)からUDP通信で車両を操作できます。
- ポート:
53995 - 入力項目: アクセル、ブレーキ、ステアリング、ギア、ライト操作
- コントローラ名:
RealDriverController(シナリオ内で指定可能)
ADAS/AD開発向けに、OSI (Open Simulation Interface) 出力を強化しています。
- HostVehicleData: esmini標準では出力されない、自車の操作入力値(ペダル開度やステアリング角)を
SensorViewに含めて送信。 - 速度補正: 物理演算で得られたより正確な速度ベクトルをOSIメッセージに反映。
ルートディレクトリの CLAUDE.md または README.md (esmini本体) のビルド手順を参照してください。本モジュールはルートのビルドプロセスに自動的に含まれます。
PythonDriverControllerは GT_esmini の必須機能です。GT_ENABLE_EMBEDDED_PYTHONオプションは廃止され、指定すると CMake configure 時にエラーで停止します。GT_Sim起動時にGT_Sim build: PythonDriverController=ENABLEDが出力され、PythonDriver対応ビルドであることを確認できます。
include/gt_esmini/core: 公開C APIと共通抽象 (IConfigLoader)include/gt_esmini/scenario: OpenSCENARIO拡張include/gt_esmini/io: UDP I/Oinclude/gt_esmini/control: 制御/物理/姿勢更新include/gt_esmini/osi: OSI/HostVehicleData連携src/{core,scenario,io,control,osi}: 実装本体config/: 実行時設定 (real_vehicle_params.json,host_vehicle_config.json)
- 外部利用コード:
#include <gt_esmini/core/GT_esminiLib.hpp> - GT_esmini内部:
#include "gt_esmini/..."