iamaisim/ProjectAirSim
Project AirSim is Microsoft's evolution of AirSim, an advanced simulation platform for building, training, and testing autonomous systems in high-fidelity virtual environments
Project AirSim – 概要
Project AirSim は、ドローン、固定翼航空機、無人地上車両(UGV)などの自律システム向けのオープンソース、エンジン非依存のシミュレーションプラットフォームです。Microsoft の元の AirSim および Project AirSim コードベースに基づいており、現在は IAMAI Consulting によって保守されています。コアシミュレーションライブラリと API は、3D エンジンなし(軽量な Project AirSim Runtime)で実行することも、Unreal Engine 5 内でホストして完全な 3D ワールド、レンダリングされたセンサー、複雑な環境を提供することもできます。
コア機能(main ブランチ / 1.0.0 リリース時点)
| 機能 | 詳細 |
|---|---|
| 車両タイプ | 構成可能な単一または複数車両シーン; ドローン、固定翼航空機(JSBSim Cessna 310、Skywalker X8)、UGV(SimpleDrive SUV Blueprint)。 |
| 物理エンジン | Fast Physics (C++)、JSBSim、Simulink (MATLAB) – カスタム C++ レイヤーで拡張可能。 |
| フライトコントローラー | PX4、ArduPilot の SITL/HITL サポート、手動制御。 |
| センサー | カメラ、LiDAR(GPU 360°)、レーダー、IMU、GPS、気圧計、磁力計、対気速度など(Runtime では非レンダリングセンサーも利用可能)。 |
| マルチビークル&スウォーム | 共有シミュレーションで多数の車両を同時に実行し、センサースイートを構成可能。 |
| API アクセス | Python および C++ クライアントライブラリ; ROS 2 C++ ブリッジ。 |
| 実行モード | • Unreal ホスト – 完全レンダリング、メッシュ衝突、動的な都市。 • Runtime ホスト – ヘッドレス、レンダリングなし、高速物理; 平坦な地面衝突に限定。 |
| クロスエンジン参照 | 実験的な Unity ホスト(参照のみ、サポート対象外)。 |
典型的なユースケース
- 知覚誘導制御 – 例: ライブカメラフィードによる自律着陸。
- 環境テスト – 車両飛行中に天候、風、照明を調整。
- インフラ検査 – 大規模な Unreal ワールドでの風力タービンや再生可能エネルギー資産の検査。
- スウォーム研究 – 数十機の固定翼または回転翼航空機を同時にシミュレート。
- エアタクシーと都市モビリティ – 密集した都市モデルでの自律エアタクシー運用のテスト。
- ロボティクス統合 – 提供されたブリッジを介して ROS 2 スタック、PX4、またはカスタムコントローラーを接続。
はじめに
- クイック評価 – 最新の GitHub リリースからプリビルド環境をダウンロードし、プリビルド環境ガイド に従ってシーンを起動し、Python で車両を制御します。
- フルビルド – Unreal 5.2/5.7/5.8 をインストールし、
UE_ROOTを設定し、setup_linux_dev_tools.sh(または Windows 相当)を実行し、シミュレーションライブラリをビルドします(./build.sh simlibs_debug)。プロジェクトファイルを生成し、VS Code/Visual Studio でワークスペースを開きます。 - ヘッドレスモード –
-RenderOffScreenでパッケージ化された Unreal ビルドを実行するか、-nullrhiでレンダリングを完全に無効にして、クラウドまたは CI ワークロードに使用します。 - Runtime のみ – 軽量な Project AirSim Runtime を使用して、Unreal なしで物理と非レンダリングセンサーを実行します(コントローラー開発や大規模バッチ実行に便利)。
アーキテクチャ概要
クライアントライブラリ (Python / C++ / ROS2) <---> シミュレーションホスト
| |
| • Runtime(ヘッドレス) | • シミュレーションライブラリ(コア物理、ロボット定義、センサーモデル)
| • Unreal Engine プラグイン(レンダリング) |
両方のホストは同じコアライブラリを共有しているため、Runtime 用に書かれたコードは Unreal ホストで変更なしで動作します。
プラットフォームサポート
- Linux – Ubuntu 22.04(プライマリ)、Clang 13 または Unreal のパッケージ化されたツールチェーンを使用。
- Windows – Windows 11、Visual Studio 2022(MSVC 14.37/14.44)。
- macOS – Apple Silicon (ARM64) ヘッドレスビルドおよびライブラリテスト用。
- Unreal Engine – 5.2、5.7、5.8。
- Python – ≥ 3.10(4 未満)。
- ROS 2 – Ubuntu 22.04 上の Humble。
コミュニティとサポート
- GitHub – バグ、機能、貢献のための Issue、Discussion、Pull Request。
- Discord – リアルタイムのコミュニティチャット。
- プロフェッショナルサービス – IAMAI は、シミュレーション準備、PX4/ROS 2 統合、カスタム Unreal 環境、検証パイプラインのコンサルティングを提供しています。
ライセンス
コアシミュレーションコード、API、構成システムは MIT ライセンス の下でリリースされています。サードパーティコンポーネント(例: JSBSim 航空機定義、Unreal アセット)は元のライセンスを保持します。詳細は NOTICE.txt および thirdparty/Licenses/ を参照してください。
結論: Project AirSim は、自律車両の研究開発のための柔軟でモジュール式のシミュレーションスタックを提供し、重量級の 3D エンジンを使用するかどうかに関係なく使用でき、ROS 2、PX4、ArduPilot などの一般的なロボットツールと直接統合できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト