Autoware Core/UniverseはAutoware.AIおよびAutoware.Autoとどのように異なりますか?#
Autowareは、世界初の自動運転車用の"オールインワン"オープンソースソフトウェアです。 2015年に初めてリリースされて以来、異なる基本コンセプトで複数のリリースが作成され、それぞれがソフトウェアの改善を目的としていました。
Autoware.AI#
Autoware.AIは、ROS 1に基づいてリリースされた Autowareの最初のディストリビューションです。リポジトリには、計測、作動、位置推定、マッピング、認識、計画など、自動運転技術のさまざまな側面をカバーするさまざまなパッケージが含まれています。 Autoware.AIは多くの開発者と貢献を引き付けることに成功しましたが、次のような理由により、Autoware.AIの機能を改善するのは困難でした:
- 具体的なアーキテクチャ設計が欠如しているため、モジュール間の緊密な結合やモジュールの責任の不明確さなど、多くの技術的負債が蓄積されます。
- パッケージごとにコーディング標準が異なり、テストカバレッジが非常に低い。
さらに、Autoware対応の自動運転車が動作できる条件や、サポートされるユースケースや状況 (静止車両を追い越す機能など) についての明確な定義はありませんでした。
Autoware.AI開発から学んだ教訓から、Autoware.Autoでは異なる開発プロセスが採用され、AutowareのROS 2バージョンが開発されました。
警告
Autoware.AIは現在メンテナンスモードにあり、2022年末にサポートが終了する予定です。
Autoware.Auto#
Autoware.Autoは、ROS 2に基づいてリリースされたAutowareの2番目のディストリビューションです。ROS 2への移行の一環として、Autoware.AIを ROS 1からROS 2に単純に移植することは避けることが決定されました。代わりに、コードベースは ROS 2から書き直されました。ターゲットのユースケースとODD(例:自動バレーパーキング [AVP]、貨物配送など) の定義、適切なアーキテクチャの設計、設計ドキュメントとテストコードの作成など、適切なエンジニアリングプラクティスを一から実行します。
Autoware.Autoの開発は当初は問題なく機能しているように見えましたが、AVPプロジェクトとCargo Delivery ODDプロジェクトが完了した後、次の問題が発生し始めました:
- 新人エンジニアへの障壁は高すぎました。
- 新しい機能を Autoware.Autoにマージするには多くの作業が必要であったため、研究者や学生が開発に貢献するのは困難でした。
- その結果、ほとんどの Autoware.Auto 開発者は Autoware Foundationの企業の出身であったため、研究論文から最先端の機能を追加できる人はほとんどいませんでした。
- 大規模なアーキテクチャ変更は非常に困難でした。
- 実験的なアーキテクチャを試すには、メインブランチの安定性を維持しながら、すべての変更が継続的インテグレーションの要件を満たしていることを確認するために、非常に大きなオーバーヘッドが発生しました。
Autoware Core/Universe#
Autoware.Auto開発の問題に対処するために、Autoware FoundationはAutoware Core/Universeと呼ばれる新しいアーキテクチャを作成することを決定しました。
Autoware Coreは、Autoware.Autoの元のポリシーを引き継ぎ、安定した十分にテストされたコードベースになります。Autoware Coreに加えて、Autoware Universe と呼ばれる新しい概念もあり、Autoware Coreの拡張機能として機能し、次の利点があります:
- ユーザーは、新しい位置推定アルゴリズムや知覚アルゴリズムなどのより高度な機能を使用するために、Coreコンポーネントを同等のUniverseのものと簡単に置き換えることができます。
- Universeのコード品質要件は、新しい開発者、学生、研究者が貢献しやすくするためにより緩和されていますが、それでもAutoware.AIの要件よりは厳格です。
- Universeに追加された、より広範なAutowareコミュニティに役立つ高度な機能はすべてレビューされ、メインのAutoware Coreコードベースに組み込む可能性が検討されます。
このようにして、安定した安全な自動運転システムを実現するという主な要件を達成できると同時に、サードパーティの貢献者によって作成された最先端の機能へのアクセスが可能になります。Autoware Core/Universeの設計の詳細については、Autowareの概念ドキュメントページを参照してください。