EurekaMoments

ロボットや自動車の自律移動に関する知識や技術、プログラミング、ソフトウェア開発について勉強したことをメモするブログ

Mobileyeの自動運転車で採用される安全機能のための数理モデルRSSの概要

目次

目的

自動運転システムを開発する企業の一つであるMobileyeが、
最近こちらのようなYouTube動画を公開しました。
www.youtube.com

この動画は、Mobileyeの自動運転車の安全機能で採用される
予測モデルであるRSSについて詳しく解説するものであり、
音声、アニメーション、実際に自動運転車が動作する様子を
交えながら分かりやすく教えてくれます。

この動画を観てとても勉強になったので、内容を和訳して
その概要や要点を記事にまとめておこうと思います。

RSSとは

Responsibility-Sensitive Safety Mathmatical Modelの略したものであり、
周囲の他車両や歩行者などを動き、それらとの衝突を予測するための
数理モデルです。

Open (公開され)
Transparent (分かりやすく)
Complete (完璧で)
Verifiable (検証可能)

なものであることが特徴とされ、特に重要なのが、

"reasonably foreseeable"(理に適った予見が可能)ということです。

例えば以下の画像のような状況で、前方の車が自分に向かって
突然バックしてくるとは普通は考えないでしょう。また、
ジェットエンジン並みの減速度でブレーキをかけてくるとも
思わないでしょう。

しかしながら、以下の画像のように、現実的な範囲内で先行車両が
ブレーキをかけてくるというシナリオは容易に想像できます。

自動運転車が他車両や歩行者の中を安全かつ自然に走行するために、
それらの現実的な様々な行動を予測可能にする数理モデルが
RSSという訳です。

RSSで定められているルール

自動運転車が事故を起こさず、安全に走行するために、
RSSは下記の5つのルールに基づいた予測を行います。

  1. Do not hit someone from behind
  2. Do not cut in recklessly
  3. Right-of-way is given, not taken
  4. Be cautious in areas with limited visibility
  5. If you can avoid a crash without causing another one, you must

この動画では、下記のような他車両が沢山周囲を走行する中、
RSSの5つのルールに基づいて自動運転車がどのような計算、
判断、行動をするのかについて解説してくれます。

ルール1: Do not hit someone from behind

1つ目は、前方車両に対して後ろから追突してはいけない
というルールです。このルールを守るためにRSSでは、
前方車両が突然停車した際に自身が追突してしまわない
よう、常に安全な距離を確保するための数理モデルが
定義されています。

そのモデルとはこちらのような理論式で表され、
自身が前方車両に対して最低でも確保しておかないと
いけない距離を意味します。

見ての通り、この数式には多くのパラメータが含まれますが、
それらのうち、自身の動きに関するものは下記のように定め
られています。上から順に、

移動速度
最小減速度
最大加速度
反応時間

となっています。

これに加えて、RSSでは前方車両の動きも考慮するように
なっています。下記のように、搭載されているセンサで
前方車両の速度を計測し、それに基づいて距離を計算します。

前方車両が最も強いブレーキを踏んで急停車するという
ワーストケースを想定し、その際の最大減速度をβ_maxという
パラメータとして定義します。

このパラメータは、人間のドライバーが出し得る自然な減速度として
-6m/s2と設定されています。

これにより、前方車両が突然停車したときにも安全を確保
できるだけの最短追従距離を決定することができ、
リーズナブルな予測が可能となります。

また、この理論により自動運転車が減速する際は、
強すぎる減速度でドライバーに不快感を与えないために、
jerk-bounded braking profileという加速度の微分である
ジャークが存在するブレーキプロファイルを適用しています。

ジャークが存在することで加減速度の変化が不連続でなくなり、
不自然な加減速動作をさせないようにできるのです。

また、追従していた前方車両が車線変更し、突然目の前に
他の停止車両が現れたという下記のようなシチュエーション
の場合、

AVはそれを障害物と認識して、車線変更して追い越す動作を
することで衝突を回避します。

ルール2: Do not cut in recklessly

2つ目のルールは、無謀な割り込みをしないことです。

下記のように、前方に割り込んで来る車両と、
後ろから追い越そうとしてくるバイクに挟まれたような
シチュエーションの場合、

自動運転車はこれら2台の行動を尊重して、縦方向と横方向の
安全な距離を確保するような行動を取ります。

このときRSSでは、各車両の横方向速度を考慮して、
安全な最短横方向距離をこちらの式で計算します。

まず、自身が右方向に2.5m/sの速度で動いているとし、

右前方から割り込んできた車両は左方向に1.7m/sで移動
してくると認識します。

また、お互いが相手に反応するのにどれくらいの時間を
要するのかを下記のように仮定します。

他にも、計算に必要なパラメータもいくつか定義します。
お互いが走行する車線内では、横方向距離は常に微小な距離だけ
変化するものと仮定し、その分のマージンをμ = 0.2mと定義します。

次はお互いが相手との衝突を回避するためにブレーキをかける際の
ワーストケースとして、最小減速度を-0.8m/s2と定義します。

そして最後は、お互いが相手を避けようとアクセルを踏む際の
最大加速度を0.1m/s2と定義します。

以上の各パラメータと先に紹介した理論式を用いることで、
安全のために最低限確保するべき横方向の距離を計算する
ことが可能となり、それよりも距離が近い場合は危険と
判定します。

一方縦方向に関しては、既に紹介したルール1の理論式により
計算される最低限確保するべき縦方向距離を検証すると、
今回のようなシチュエーションでは安全と判定されます。

横方向の距離は限度を超えているため危険ですが、
縦方向の距離は限度を超えていないため危険とは
判定されません。そのため、自動運転車としては
特にアクションを取る必要はなく、このまま走行を
継続して良いと判断します。

後ろから来るバイクについても、縦方向距離は危険だが、
横方向距離は安全だと計算されるため、特にアクションは
要らないと判定されます。

つまりRSSは、今回のようなシチュエーションは総じて危険では
ないと判断するということになります。

ルール3: Right-of-way is given, not taken

3つ目は、通行権は与えられるものであり、取られるものではない、
というものです。

下記のように、前方に新たな車両が現れたというシチュエーションでは、
この車両が駐車場から出て、自分の車線に侵入してくることを考慮し、
不用意に前進しないようにします。

このとき、黒い車は停車しているため、自動運転車はそことの
安全な距離を確保しながら走行しようとします。

その最低限確保するべき距離は、下記のような理論式で
計算されます。

また、黒い車が動き出した場合も想定し、自動運転車は
自身が急ブレーキをかけた場合にどの程度の距離を保って
停車できるかも見積もります。

このように交差点で他車両と合流するシチュエーションでも、
自動運転車はRSSに基づき、安全かつ自然な走行を実現する
ことができます。

下記のように左から黒い車両が来た場合、本ルールにより
自動運転車は黒い車両に進行を妨げられないように十分な
距離を確保することができます。

このようなケースでは、自動運転車は自身に優先権があることを
認識しています。そのため、黒い車両は停車して待ってくれると
仮定し、自身は走行を継続することで不必要に相手に進路を
譲ってしまうことを防ぐことができます。

自動運転車は自身の進路と黒い車両との距離を6mと計測し、
そこからブレーキをかけて停車するまでの距離は1.2mであると
RSSから計算します。そのため、衝突を起こすことなく安全に
走行できると判断します。

これは、右から来る白い車両に対しても同様です。

逆に、このように相手との縦方向と横方向の距離が
十分に確保できていない場合は、危険な状況と判断し
すぐに避けないといけません。

ここでは、横方向の距離がこれ以上詰まらないようにブレーキ操作し、
衝突せずに安全な合流を出来るようにする行動します。

ルール4: Be cautious in areas with limited visibility

4つ目のルールは、視界が限られる場所では注意深くなること、です。

例えばこのようなシチュエーションの場合、横断歩道とその手前にいる
他車両を認識し、その陰から歩行者が出てくるかもしれないと仮定します。
そして、歩行者がいなかったとしても自動運転車は速度を落として走行します。

横断歩道を歩く歩行者の最大速度と加速度をそれぞれ2km/h, 2m/s2と
仮定し、歩行者が現れたときは完全に停車し進路を譲ります。

また同様のやり方で、このような交差点での合流時にも、
他車両の動きにも対応する必要があります。

このような状況では、黒い車により自動運転車の視界が遮られてしまいます。
そのため、視認性がクリアだと判断できるまでは警戒しないといけません。

視認性が損なわれている状態では、黒い車の影には別の車がいる
かもしれないと仮定します。

そして、その車が直進して横切ってくるか、左折してこちらに進入して
くるかというケースを想定します。

直進する場合の最高移動速度を27km/h、左折する場合の最高移動速度を
18km/hと仮定し、それまでの安全な距離を計算しながら、視認性が
クリアになるまで徐行しながら進んでいくようにします。

このとき、ルール3も同時に適用し、自分と他車両の通行権を考慮しながら
交差点に入っていくようにしています。

ルール5: If you can avoid a crash without causing another one, you must

5つ目のルールは、2次的な衝突が起こることも想定しながら
目の前の衝突を回避しなければならない、というものです。

RSSにより自動運転車は、予想される危険な状況を未然に
回避できるようにSafety envelopeを持ち続けます。

しかしときには、同じ道路を走行する他の車が危険な行動を
起こすことがあり、その際はそれに応じた行動を取れる必要が
あるため、このルールが適用されます。

複数車線の高速道路を走行し、前方に他の車が走行している
状況では、前方の車との車間距離との中間までを最短安全距離と
します。

自身が車線変更をして先行車両を追い越そうとした際に、
2台目の先行車両V2が急ブレーキをかけた場合、その後ろの
V1は急な車線変更をして避けようとします。

そうなると、先に車線変更した自身と衝突する可能性があるため、
それを回避するために確保するべき十分な距離として、
上記の安全距離が用いられます。