Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Pylot: A Modular Platform for Exploring Latency-Accuracy Tradeoffs in Autonomous Vehicles

著者: Ionel Gog, Sukrit Kalra, Peter Schafhalter, Matthew A. Wright, Joseph E. Gonzalez, Ion Stoica · ICRA 2021

ライセンス

  • オープンアクセス
  • 論文: CC BY 4.0

以下の内容はすべて、論文のライセンス(CC BY 4.0)に従い論文全文に基づいています。図は著者のクレジットを付けて掲載しています。

要約

データフローランタイム上のモジュール式で決定的な AV パイプライン。検出器、トラッカー、予測器、プランナーを差し替え、その実行時間が CARLA や実車でのエンドツーエンドの運転にどう影響するかを確かめられる。

重要な理由

運転スタックや移動ロボットのスタックを構築するチームは、新しい検出器やプランナーを完全なパイプラインの中でテストし、オフラインの精度だけでなく衝突や乗り心地を測定できる。論文は、最適な構成要素の選択が走行速度やシナリオによって変わることを示しており、構成要素を文脈の中で評価すべきだという主張を裏付けている。

課題

自動運転車の構成要素は通常、平均適合率(average precision)のような、実行時間を無視するオフライン指標で評価されるが、遅くても正確なモデルは車両の安全性を下げうる。Autoware や Apollo といった既存のオープンなスタックは、フォトリアルなカメラのない限られたシミュレータインターフェースしか提供せず、そのパブリッシャー・サブスクライバ設計によって運転シナリオの決定的な再生が難しい。

提案手法

Pylot は、パイプライン全体(検出、追跡、予測、計画、制御)を、タイムスタンプとウォーターマーク付きのメッセージをやり取りするオペレータのデータフローグラフとして構成し、著者らの ERDOS システム上で実行する。これにより実行が決定的になり、実行時間の異なる構成要素を再調整なしで差し替えられる。構成要素ごとに複数の参照実装に加え、CARLA から得た正解(グラウンドトゥルース)の「完璧な」版を同梱し、さらに CARLA を 200 Hz 超で同期実行しつつ各制御コマンドをパイプラインの実測実行時間だけ遅らせる擬似非同期モードを備える。ROS のシム層により、同じパイプラインで実車を運転できる。

主な知見

  • タイムリー精度(timely accuracy)は、モジュールの出力を、入力を取得した時点ではなく出力が準備できた時点の世界と照らして採点するもので、動いているシーンで実行時間がいかに精度を損なうかを明らかにする。
  • 最適な検出器やトラッカーは文脈に依存する。高速では、高速で精度の低い検出器が、低速で精度の高い検出器を上回り、SORT、DeepSORT、DaSiamRPN はそれぞれ異なる状況に適している。
  • 緊急回避操舵のシナリオでは、実行時間の短いプランナー構成ほど衝突を回避できることが多かった。一方、Frenet Optimal Trajectory プランナーは RRT* より滑らかな乗り心地を与えたが、その代わりに回避できた衝突は少なかった。
  • ウォーターマーク付きのデータフローモデルはパイプラインを Kahn プロセスネットワーク(Kahn Process Network)に帰着させ、パブリッシャー・サブスクライバ方式のシステムにはない、デバッグのための決定的な再生を可能にする。

主な結果

  • 10 ms の実行時間で、完璧なセマンティックセグメンテーション構成要素の平均タイムリー mIoU は約 0.75 まで下がり、Cityscapes の上位 3 件の提出結果の mIoU を下回る。
  • 完璧な歩行者検出器の平均タイムリー AP50 は、35 ms の実行時間で半減する。
  • 実行時間 20 ms では、タイムリー mIoU の中央値は 40 m/s で 10 m/s より 28% 低く、タイムリー AP50 の中央値は 10 m/s での 1.0 から 40 m/s での 0 に落ちる。
  • 遮蔽された歩行者のシナリオ(Table I)では、低速の FOT(P99 550 ms)、RRT(P99 76 ms)、Hybrid A(P99 760 ms)構成は 16〜22 m/s のすべての目標速度で失敗したが、各プランナーの高速構成は 16 m/s で衝突を回避した。
  • パイプラインを CARLA から Lincoln MKZ 試験車両に移植するのに要した Python コードは 434 行で、Pylot 自体は約 28,000 行の Python である。
  • 基盤となるデータフローシステムは通信レイテンシで ROS を 30% 上回ると報告されており、Pylot は CARLA Autonomous Driving Challenge の HD マップ部門で首位の提出とされている。

制限事項

  • 運転への強化学習のアプローチはまだサポートされておらず、OpenAI Gym インターフェースが今後の課題として挙げられている。
  • エンドツーエンドのプランナー比較は、認識モデルではなく正解の認識を用いており、緊急シナリオも 1 つだけである。
  • タイムリー精度の検討は、ループ内で動く実際のモデルの実行時間ではなく、実行時間をエミュレートした完璧な認識構成要素を用いている。
  • 実車への展開は市販のモデルを用いた移植として説明されており、実車での運転指標は報告されていない。

分野への影響

本論文は IEEE ICRA 2021 無人航空機最優秀論文賞のファイナリストに選ばれ、被引用数は 107 である。Pylot はオープンソースコードとして公開されており、参照実装と正解の構成要素実装、および NHTSA に基づく CARLA 用テストシナリオ一式を含む。

概要

我々は、自動運転車(AV)の研究開発のためのプラットフォーム Pylot を提示する。これは、研究者が自らのモデルやアルゴリズムのレイテンシと精度が AV のエンドツーエンドの運転挙動に与える影響を調べられるようにすることを目標に構築されている。これは、我々の高性能データフローシステムによって実現されるモジュール構造によって達成される。このシステムは、AV ソフトウェアパイプラインの構成要素(物体検出器、モーションプランナーなど)を、タイムスタンプ付きメッセージを用いてデータストリーム上で通信するオペレータのデータフローグラフとして表現する。Pylot は CARLA のような一般的な AV シミュレータと容易に接続でき、最小限のコード変更で実車に簡単に展開できる。単一の構成要素を評価するためにパイプライン全体を開発する負担を減らすため、Pylot は AV パイプラインのさまざまな構成要素について、最先端の参照実装をいくつか提供する。これらの参照実装を用いることで、Pylot ベースの AV パイプラインは実車を運転でき、CARLA Autonomous Driving Challenge で高いスコアを得る。また、文脈依存の構成要素が必要であることの証拠や、構成要素ごとの時間配分など、Pylot によって可能になったいくつかのケーススタディも示す。Pylot はオープンソースであり、コードは https://github.com/erdos-project/pylot で入手できる。

リンク

  • arXiv 2104.07830: https://arxiv.org/abs/2104.07830
  • DOI 10.1109/ICRA48506.2021.9561747: https://doi.org/10.1109/ICRA48506.2021.9561747
  • PDF: https://arxiv.org/pdf/2104.07830v1
  • コード: https://github.com/erdos-project/pylot

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。