ティアフォーにおける自動運転車両の遠隔監視・操縦システムのご紹介

はじめまして、ティアフォーで自動運転のWebプラットフォーム開発を行っている飯田です。

今回は、遠隔型レベル4自動運転を行う上で必須な遠隔監視・操縦システムについてご紹介します。

 


遠隔監視・操縦システム

 

 遠隔型自動運転とは

まず自動運転のレベルの枠組みから簡単にご紹介します。

国際的に自動運転のレベルは0~5の6段階に定義されています。

 

f:id:yuki-iida:20190118132117p:plain

自動運転のレベル

基本的には、レベル4から運転者の役割がなくなり皆様が思い描くような運転から開放された乗車体験が実現されます。

しかし、運転者の役割が無くなることに伴い、全て自動運転システムが状況を判断し、走行する必要があります。

ただ、現実問題として自動運転システムが対応出来ない場面も想定されます。

自動運転システムが対応できない場面において、個人所有の車であれば搭乗者に操縦を任せることが可能ですが、タクシーやバスなどサービスとしてお客様に提供している場合は運行管理者が対応する必要があります。

そこで、遠隔地から車両を見守り、何か有事の際は操縦し自動運転可能な状態まで復帰させるために遠隔監視・操縦システムが必要となってくるのです。

f:id:yuki-iida:20190118133847p:plain

遠隔型自動運転の位置付け

出典: *1

 

遠隔監視・操縦システムについて

本システムの機能要件として、下記の事柄が挙げられます。

  • 複数のカメラ映像を低遅延で配信できる (実際の運転席と同等の情報を遠隔から把握できる必要がある)
  • 車両(Autoware)の状態を監視できる
  • 遠隔から低遅延で操縦できる
  • 通信状況が悪い/切れた場合に、車両側で安全に停止できる
  • 複数台の車両の映像を複数人で監視できる (運行管理者や保険会社など複数のプレイヤーが出てくることを想定)
  • 映像を録画できる

大別すると、映像配信と制御情報(Autowareの状態情報も含む)の送受信の2つに分かれます。  

f:id:yuki-iida:20190118153634p:plain

利用シーン

 

映像配信の仕組み 

映像配信の仕組みとして、

  • HLS (HTTP Live Streaming)

  • RTMP (Real-Time Messaging Protocol)

  • WebRTC (Web Real-Time Communication)

などが挙げられますが、ティアフォーではWebRTCを採用しています。

主な選定理由としては、圧倒的に低遅延(200 ~ 300ms程度)、回線の太さに合わせてビットレートが可変であること、多くのプラットフォームで採用されており汎用性が高いことの3つが挙げられます。

f:id:yuki-iida:20190118150101p:plain

WebRTC

しかし、WebRTCでは基本的にP2Pで通信を行うため、N対Mの通信を行うに当たりデータ転送量の増加、各セッションの管理コストの増加、録画機能の追加が困難などいくつか問題があります。

そこで、本システムではWebRTCの中でもWebRTC SFUを採用しました。

SFUでは、センター集約型であるためN対Mの映像の送受信、録画機能が容易に実現でき、非常に使い勝手が良いというメリットがあります。

上記の図を見ると、MCUは通信量が削減されて良いように見えますが、各映像を結合する処理に大きなレイテンシが乗り、本システムには不向きなため、採用には至っていません。

 

制御情報通信の仕組み 

制御情報通信の仕組みとして、

  • HTTP (Hypertext Transfer Protocol)
  • Websocket

  • MQTT (Message Queuing Telemetry Transport) 

などが挙げられます。こちらに関しても映像配信同様にレイテンシの小ささと複数台の車両を扱えるスケーラビリティ、さらにはデータ量の小ささやQoSが管理できるといった理由でMQTTを利用しています。

 

全体の枠組み

f:id:yuki-iida:20190118173316p:plain

全体構成

本システムの全体構成は、上記のようになります。

WebRTC SFUのシステムは、時雨堂様のWebRTC SFU Soraを利用しています。

OSSJanusなどもありますが、ブラウザのアップデートへの対応や使い勝手の面でSoraの方が優れていたため、Soraを利用しています。

さらに、WebRTC Native Clinet Momo がリリースされ、ROS対応したのでブラウザを利用せずに映像配信が可能になりました。

これにより車両側の映像配信/制御情報通信共にROSプラットフォームへの共通化が実現できています。

また、遠隔監視者は、特に環境構築等を必要とせずに、ブラウザを利用すれば、自動運転の監視・操縦が可能となっております。 

 

f:id:yuki-iida:20190118161125p:plain

操縦シーン

 

まとめ

ティアフォーでは、WebRTC SFU及びMQTTを利用し遠隔監視・操縦システムを実現しています。

今後は、

  • 通信の安定化 (通信データ量削減及び映像配信ノードのFPGA対応など)
  • スケーラビリティの考慮 (数十、数百台の自動運転車を安全に見守れる仕組み)
  • 遠隔操縦のUI/UXの改善 (VR対応やより抽象度の高い操縦方法の考案など)

を行っていく予定です。

機会があれば上記新規機能の実装のお話や、得た知見なども順次ご紹介していきたいと思っております。

 

自動運転サービスを一緒に開発してくれるメンバーを募集しています!

 

*1:自動運転をめぐる最近の動向と警察庁の取組について(平成30年)    https://www.npa.go.jp/bureau/traffic/council/jidounten/2018dai1kaisiryou1.pdf

AutowareにおけるObject Trackingアルゴリズムの紹介

はじめまして、ティアフォーで自動運転のソフトウェア開発を行っている村上です。

今回のエントリでは自動運転技術のうち、周りの環境を認識する技術の一部を紹介していきます。

自動運転におけるPerceptionの役割

 安全で快適な自動運転を実現するためには、機械が人間と同じように周りの状況を認識し、それらの情報を元にして行動計画、そして車両制御をする必要があります。

 

https://cdn-ak.f.st-hatena.com/images/fotolife/k/kfunaoka/20181203/20181203163921.png

 

上の図におけるPerceptionにおいて、センサー情報から周囲の環境を認識するアルゴリズムが実装されています。

今回は周囲の障害物を認識するための要素に絞って進めていきます。
大きく分けて、Detection、Tracking、Predictionに分かれています。

  • Detection: センサー情報から障害物情報を検知
  • Tracking: Detectionの結果を時系列で処理することによって、障害物の状態を推定
  • Prediction: Tracking結果を元にして、将来の障害物の動きを予測


上記の動画はDetectionとTrackingを可視化したものになります。

障害物検知、それらのクラス分類をDetectorが担い、Trackingではそれらの速度や向きを推定して動画上で可視化しています。

そして、今回はTrackingのアルゴリズムの1つ IMM-UKF-PDA Tracker について紹介します。

IMM-UKF-PDA Tracker

IMMとUKF、PDAを組み合わせたアルゴリズムなので、このような名前になっており、
それぞれ何をしているかについてはこの後説明していきます。
参考文献*1 *2

各障害物の位置情報 (x, y) から速度、向き、動作モデルの推定を行います。

f:id:kosuke-murakami:20181225134810p:plain
UKF(Unscented Kalman Filter)

日本語では「無香料カルマンフィルタ」と呼ばれることもあります。

AutowareのObject TrackingではUKFを軸にして障害物の状態を推定します。

UKFでは具体的に各障害物の(x, y, velocity, yaw, \dot{yaw}) を推定しています。

 

問題となるのは、前提としている動作モデルが非線形モデルという点です。(動作モデルについてはIMMのパートで解説)

通常のカルマンフィルタでは非線形モデルを扱うことができません。なので非線形モデルを線形モデルに近似して扱う必要があります。

f:id:kosuke-murakami:20181225191450p:plain
この非線形モデルを線形化して扱うカルマンフィルタの手法の一つがUnscented Kalman Filterになります。

Unscented Transformと呼ばれる手法で点(シグマポイント)をサンプリングし、非線形モデルでそれらの点を伝播させます。そして伝播させた点から平均と分散を推定します。

f:id:kosuke-murakami:20181225191505p:plain

このような処理をすることで、非線形モデルの動作モデルに対しても、線形モデルのように変換後の平均と分散を推定することができます。

 

IMM(Interacting Multiple Model) 

IMMは一つの障害物に対して、複数の動作モデルを仮定し、確からしい動作モデルに対して重み付けをしてObject Trackingをする手法になります。

前提となる動作モデルはCV(Constant Velocity), CTRV(Constant Turn Rate and Velocity), Random Motionの3つになります。
それぞれ、まっすぐ進む、曲がりながら進む、動かない動作モデルを表現しています。

それぞれの更新式は以下のようになります。

 

Constant Velocity
\[
{x_{k+1}} = \left(
\begin{array}{c}
x_{k} + \upsilon_{k}\Delta t\sin\bigl(\psi_{k}\bigr) \\
y_{k} + \upsilon_{k}\Delta t\cos\bigl(\psi_{k}\bigr) \\
 \upsilon_{k} \\
\psi_{k} \\
\ 0
\end{array}
\right)
\]

 

Constant Turn Rate Velocity

\[
{x_{k+1}} = \left(
\begin{array}{c}
x_{k} + \upsilon_{k}/\dot{\psi_{k}}\bigl(\sin\bigl(\psi_{k} + \dot{\psi_{k}} \Delta t\bigr)-\sin\bigl(\psi_{k}\bigr)\bigr) \\
y_{k} + \upsilon_{k}/\dot{\psi_{k}}\bigl(-\cos\bigl(\psi_{k} + \dot{\psi_{k}} \Delta t\bigr)+\cos\bigl(\psi_{k}\bigr)\bigr) \\
 \upsilon_{k} \\
\psi_{k} +\Delta t\dot{\psi_{k}}\\
\ \dot{\psi_{k}}
\end{array}
\right)
\]

 

Random Motion

\[
{x_{k+1}} = \left(
\begin{array}{c}
x_{k} \\
y_{k}  \\
\ 0 \\
\psi_{k} \\
\ 0
\end{array}
\right)
\]

 \upsilon_{k}はkフレームにおけるvelocity.

 \psi_{k}, \dot{\psi_{k}}, はそれぞれkフレームにおけるyaw, yaw rateを表しています。

 

このように、一つの障害物に対して複数の動作モデルを仮定することで、障害物が複雑な動きをした場合にも対応できるようにしています。

PDA(Probabilistic Data Association)

Data Associationは追跡物体と観測データを関連付けるアルゴリズムを指します。
f:id:kosuke-murakami:20181225185200p:plain

 

例えば上記のようなシナリオを考えた時に、"track 1"と"track 2"に対して適切な観測データ(図の"observations")を割り当てる必要があります。

 

f:id:kosuke-murakami:20181225185915p:plain


Probabilistic Data Associationではカルマンフィルタによる予測値と観測データを比べて、確からしい観測データに対して重み付けをしてData Associationをしています。

参考文献*3


まとめ

Autowareでは論文を参考にして上記の要素技術を組み合わせたIMM-UKF-PDA Trackerを実装しています。


また最近はカルマンフィルタのパラメターをオートチューニングする*4やマップのレーン情報を使用してTrackingする*5なども追加で実装しています。機会があればこちらのアルゴリズムに関しても紹介していけたらと思います。

*1:Arya Senna Abdul Rachman. 2017. 3D-LIDAR Multi Object Tracking for Autonomous Driving. Master's thesis. Delft University of Technology, Delft, Netherlands

*2:M. Schreier. 2016. Bayesian environment representation, prediction, and criticality assessment for driver assistance systems. Ph.D. Dissertation. Technische Universität Darmstadt, Darmstadt, Germany.

*3:Robert Collins. 2012. Vision-Based Tracking. (November 2012). Retrieved November 7, 2012 from http://www.cse.psu.edu/~rtc12/CSE598C/datassocPart1.pdf

*4:Zheng B, Fu P, Li B, and Yuan X. 2018. A Robust Adaptive Unscented Kalman Filter for Nonlinear Estimation with Uncertain Noise Covariance. Sensors(Basel). DOI:10.3390/s18030808.

*5:D. Petrich, T. Dang, D. Kaspar, G. Breuel, and C. Stiller. 2013. Map-based Long Term Motion Prediction for Vehicles in Traffic Environments. International IEEE Conference on Intelligent Transportation Systems (ITSC). pp. 2166–2172.

はじめまして

はじめまして、1日目のエントリを書きました id:kfunaoka です。

ティアフォーは、2015年12月に設立されて3年目を迎える、自動運転システムや自動運転の運行管理を行うプラットフォームを開発している会社です。 まだ見ぬサービス実現に向けて、先端技術を駆使して技術的な課題を克服すべく、様々なチャレンジを行っています。

そんな取り組みを、これからこのブログを通してご紹介していければと考えています。

最初のエントリとなる今回は、弊社で力を入れている自動運転システム用オープンソースソフトウェア「Autoware」を紹介したいと思います。

続きを読む