Skip to content

Latest commit

 

History

History
 
 

README.md

GT_esmini Extension Module

GT_esminiは、標準の esmini 環境シミュレータに対して、車両制御や挙動モデル、外部連携機能を強化するための拡張モジュールです。 本モジュールは esmini 本体を変更することなく、追加のライブラリとして統合されています。

1. 標準esminiとの主な差分 (Key Differences)

標準の esmini 機能に加え、以下の点が拡張されています。

  • 車両挙動 (Physics): 簡易モデルではなく、ピッチ・ロール姿勢変化やエンジン特性を含む詳細な車両ダイナミクス (RealVehicle) を実装。
  • ライト制御 (Lighting): OpenSCENARIO v1.2 LightStateAction に対応し、さらに自動点灯ロジック(ブレーキ、ウインカー等)を追加。
  • 地形追従 (Terrain): 道路勾配だけでなく、路面の微細な起伏に車両姿勢(ピッチ・ロール)を追従させる機能を追加。
  • 外部操作 (Control): UDP経由でのリアルタイム車両操作(ステアリング、アクセル、ブレーキ、ギア)に対応 (RealDriverController)。
  • OSI出力 (Reporting): 自車入力値 (HostVehicleData) や、補正済みの速度情報をOSI (Open Simulation Interface) ストリームに追加。

2. 機能詳細 (Detailed Features)

🚗 詳細車両ダイナミクス (RealVehicle)

標準の簡易的な車両移動モデルを拡張し、より物理的な挙動を再現します。

  • サスペンション: バネ・ダンパーモデルによる加減速時のピッチング(前後の沈み込み)や旋回時のローリング(左右の傾き)を計算。
  • パワートレイン: エンジン回転数 (RPM) とトルクカーブ、ギア比に基づいた駆動力計算。
  • 設定: real_vehicle_params.json で車種ごとの物理パラメータ(剛性、減衰、最大トルク等)を定義可能。

💡 高度ライト制御 (Advanced Lighting)

車両のライト状態を詳細に管理・制御します。

  • OSC v1.2 対応: 標準では未対応の LightStateAction をパースし、シナリオからライトの点灯・点滅を制御可能。
  • AutoLight: 車両の状態変数を監視し、ライトを自動制御するロジックを搭載。
    • ブレーキランプ: 減速度が閾値 (-1.2 m/s²) を超えた際に自動点灯(チャタリング防止機能付き)。
    • ウインカー: 右左折時の横方向速度や、ジャンクション進入予測に基づいて自動点滅。
    • バックランプ: リバースギア連動。

⛰️ 地形・路面追従 (Terrain Tracking)

OpenDRIVEの道路ジオメトリ(路面高さ)をサンプリングし、車両の接地点に応じた姿勢制御を行います。

  • 4輪の接地高さを考慮した姿勢計算ではなく、簡略化されたレイキャストモデルで路面の勾配(法線ベクトル)を取得し、車両のピッチ・ロール姿勢に合成します。

🎮 リアルタイム外部制御 (RealDriver Controller)

外部アプリケーション(コックピットシミュレータやAIドライバ)からUDP通信で車両を操作できます。

  • ポート: 53995
  • 入力項目: アクセル、ブレーキ、ステアリング、ギア、ライト操作
  • コントローラ名: RealDriverController (シナリオ内で指定可能)

📡 OSIレポート拡張 (Enhanced OSI Reporting)

ADAS/AD開発向けに、OSI (Open Simulation Interface) 出力を強化しています。

  • HostVehicleData: esmini標準では出力されない、自車の操作入力値(ペダル開度やステアリング角)を SensorView に含めて送信。
  • 速度補正: 物理演算で得られたより正確な速度ベクトルをOSIメッセージに反映。

ビルド・導入

ルートディレクトリの CLAUDE.md または README.md (esmini本体) のビルド手順を参照してください。本モジュールはルートのビルドプロセスに自動的に含まれます。

PythonDriver必須化ポリシー

  • PythonDriverController は GT_esmini の必須機能です。
  • GT_ENABLE_EMBEDDED_PYTHON オプションは廃止され、指定すると CMake configure 時にエラーで停止します。
  • GT_Sim 起動時に GT_Sim build: PythonDriverController=ENABLED が出力され、PythonDriver対応ビルドであることを確認できます。

フォルダ構成 (Refactored)

  • include/gt_esmini/core: 公開C APIと共通抽象 (IConfigLoader)
  • include/gt_esmini/scenario: OpenSCENARIO拡張
  • include/gt_esmini/io: UDP I/O
  • include/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規約

  • 外部利用コード: #include <gt_esmini/core/GT_esminiLib.hpp>
  • GT_esmini内部: #include "gt_esmini/..."