Autowareとは
ROS/ROS 2をベースとした世界初のオープンソースソフトウェアの自動運転システムである。
最新版であるAutoware Core/UniverseとAutoware.AI, Autoware.Autoの違いは?
AutowareにもAutoware.AI, Autoware.Auto, Autoware Core/Universeの3種類があるが、2022年以降はAutoware Core/Universeが主流になっている。
ざっくり経緯をまとめると以下のような感じです。
Autoware.AIは自動運転としてのアーキテクチャ設計が明確になっていない状態で、自由に研究開発が進みすぎたため製品レベルに持っていくには課題があった。その後、Autoware.AIを製品レベルに持っていくためAutoware.AutoでROS 2ベースで設計・開発プロセスを刷新した。しかし、自動運転はまだまだ研究が必要な要素技術が多い中、開発プロセスが厳しすぎたため最新の研究要素が取り込みにくくなってしまった。そのため、品質を担保したAutoware Coreとある程度のゆるさを持ったAutoware Universeでコンパチブルに動作させることで従来の課題を解消している
詳しい経緯や説明は以下を参照
- TIER IV Tech Blog:自動運転開発したい!でもどこから始めれば良いの?
- TIER IV Tech Blog:スケーラブルな自動運転システム開発プラットフォームのためのリポジトリ構成
- Autoware Foundationページ
- Autoware公式ドキュメンテーション
Autoware Core/Universeの始め方
Autoware公式ドキュメンテーションに従い、InstallationとTutorialに従って動かすのが良いと思います。まずはTutorialページの赤枠に従って動かすことで手元で3種類の目的のシミュレーションを行うことができます。
その他の参考資料
- ドキュメント
- 動画
Autowareに関してわからないことがあったら?
まずは、Autoware公式ドキュメンテーションを参照してください。
それでも不明な点は、以下のような場所でコミュニティに質問できます。
それぞれの使い分けはこちらを参照してください
車両へのインテグレーション方法
Under Construction
Autowareでできること
随時更新予定
- Sensing
- 点群のノイズ除去
- 点群の歪み補正
- LiDARの同期およびConcatenate
- Localization
- 単体利用および各種法の組み合わせが可能
- LiDAR base手法
- Camera base手法
- GNSS base手法
- 単体利用および各種法の組み合わせが可能
- Perception
- 動物体検知/予測
- 障害物検知
- 死角検知
- 信号認識
- Planning
- 経路追従
- 前車追従
- カットイン減速
- 障害物停止
- 停止障害物回避
- レーンチェンジ
- 経路ルーティング(目的地までの探索)
- 横断歩道での通過判断
- 右折時の通過判断
- 死角があった場合の頭出し
- 対向車確認
- 一時停止
- 死角での減速
- 歩行者飛び出し検知および減速
- 停車禁止区域対応
- フリースペース駐車
- 路肩からの発進
- 路肩への駐車
- 駐車指定位置に障害物があった場合の近傍駐車位置探索
- 信号通過判断
- 赤信号時の停止および青信号での通過判断
- 急な黄色信号・赤信号切り替わり時の通過判断
- 巻き込み確認
- 自動緊急ブレーキ
- 横G/縦ジャークを考慮した乗り心地
- ユーザー指定の注視エリア内における障害物検知
- Control
- キャリブレーションズレ検知
- 正着制御
- なめらかな停止
- その他
- 故障/異常検知
- 手動走行中からのスムーズな自動運転モードへの切り替え
- Autowareからドライバーに承認を求める機能:Request To Cooperate(RTC)
- 例:Autowareはレーンチェンジが必要かつ安全にできると判断しているため、オペレーターに承認を求める
- 車両キャリブレーション
- Sensorキャリブレーション
Autoware Core/Universeの中身に関する解説ドキュメント集
いろいろなドキュメントがあるので関連するものをまとめています
随時更新予定
-
全体アーキテクチャ
-
Autowareのノード構成
-
Sensing関係
-
Perception関係
-
Map関係
-
Localization関係
-
Planning関係
-
Control関係
-
Vehicle Interface関係
AutowareのAPIについて(AD API)
AutowareではインターフェースとしてAD APIとComponent Interfaceの2種類があります。
- AD API:FMS(Fleet Management System)やオペレーターや乗客のHMI(Human Machine Interface)など、自律走行システムの外から車両を操作するために使われるAPI。AD APIはComponent Intarfaceを使って実装される。
- Component Interface:各コンポーネント(Perception, Sensing, Planning, etc.)間のInterface。Component Interfaceを準拠することでComponentレベルの実装の差し替えが可能になる。
AD APIはあくまでのInterfaceの仕様であり、Autowareで提供されているAD APIの実装はあくまでもデフォルト実装ということになっており中身の実装はユーザーが必要に応じて定義できるようになっています。
このようなスタンスをとっている理由を、自動運転の開始/発進
というAPIを例に考えます。
通常の自動運転サービスでは、自動運転の開始/発進
のAPIを叩いた場合、即座に発進しても問題ないケースが多いです。しかし、とあるバスを自動運転サービスからは、自動運転の開始/発進
に発進の音声を流した後に走行指示を出したいという要求があるかもしれません。
その際にFMSやHMIとの接続はそのままにし自動運転の開始/発進
APIの中身の実装を変えることで、音声を流したあと発進変えることができます。こういったFMSやHMIとの接続のInterfaceをAPIとして定義しており、中身の実装はユーザーが変更できるようになっています。
その他の関連リンク集
上記で紹介していないが、見かけたAutoware関連リンク集