EurekaMoments

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

自動運転のための自動ブレーキ機能に要求される性能の決め方

目次

背景・目的

以前、自動運転における衝突回避機能の性能をどのように考えるかに
ついて記事を書きました。

www.eureka-moments-blog.com

これを書いたときはただのメモ程度でしたが、ここ最近になって自動車の
運動学を勉強したり、実際の自動ブレーキシステムの開発に取り組むように
なったので、またいろいろ知見が得られています。
今回の記事では、ここまでに得られた知見も含めて、自動ブレーキシステムの
性能をどうのような流れで決めるかについて改めてまとめたいと思います。

前提となるシステムの方針と構成

実際のシステムはもっと複雑になると思いますが、今回の説明では例として
下記のようなシステム構成で実現される自動ブレーキシステムを考えます。

性能を決めるまでの流れ

1. 最終的な停車時に実現されるべき状態の決定

まずは、目の前の障害物に対して、最終的にどれくらいの距離を保った状態で
停車させたいかを決めます。出来るだけ距離を詰めるのか、もしものために
余裕を持たせるのか、などいろいろな議論を重ねる必要があります。

この時に考慮しなければならないのは、システムエラーによる誤発進です。
目の前の障害物がいなくなれば、システムはそれを検出して自動的に再発進を
するべきですが、まだ障害物が存在するにも関わらずに発進してしまっては、
停車した意味がありません。
ただし、仮に誤発進をしてしまったとしても、そこで再び障害物を検出して
停車する事ができれば安心です。このことから、停車時に確保する距離を
決めるために注目すべきポイントは下記のようなものが考えられます。

  • システムが車を自動停車・発進させるときの速度制御の仕組み
  • 障害物センサが検出可能な最短距離
  • システムが衝突判定をするまでにかかる時間
  • 衝突判定をしてから、実際にブレーキがかかり始めるまでの時間
  • ブレーキがかかり始めてから停車するまでの制動距離

以上の事を抑えた上で停車時に確保したい距離を決めておけば、たとえ誤発進を
したとしても、そのミスをカバーすることができるようになります。

2. 障害物センサの最短検出距離の把握

当たり前の事ですが、システムとして使用する障害物検出用センサの検出可能
距離はしっかりと把握しておく必要があります。例えば、センサの最短検知距離が
実力として10mであった場合、前述した停車時の距離は10mよりも長めに設定して
おかないと、誤発進のミスをカバーすることが難しくなります。

3. 遅れ時間の把握

先に述べたシステム構成のように、自動ブレーキはセンサ、コントローラ、
アクチュエータがCANやEthernetなどで繋がりデータのやり取りを行う事で
実現されます。
しかしながら、このように複数のコンポーネントがやり取りする中では、
それらの処理周期などによる遅れ時間がところどころで発生します。今回の
例としているシステムの場合だと、下記のような遅れ時間が挙げられます。

  • センサの検出データがコントローラに届くまでの時間
  • コントローラがセンサからのデータを処理して、衝突判定をするまでの時間
  • 衝突判定後にブレーキ開始指令がブレーキ制御コントローラに届くまでの時間
  • 制御コントローラからアクチュエータに操作信号が届くまでの時間
  • アクチュエータが操作信号を受けて、実際に減速し始めるまでの時間

各ハードの仕様次第でもありますが、これらの遅れ時間をかき集めると、
少なくとも1~2秒くらいにはなるでしょう。つまり、1~2秒くらいの空白の
時間が生まれる訳で、この時の車速が50km/h(13.9m/s)だとしたら13.9~27.8mは
障害物までの距離が詰まる事になります。
こういった遅れ時間の間に生じる空走距離を考慮した上で、システムが満たすべき
性能を決める必要があります。

4. ブレーキによる減速度の制御方法の決定

www.eureka-moments-blog.com

以前にこちらの記事にて書いたように、ブレーキによる制動が起こる際、
タイヤと路面の間には下記のような関係の力が発生します。

ただ、とにかく早く停車して衝突を防ぐ事だけを考えると、最初から最大出力の フルブレーキをかければよいと考えたくなります。しかしながら、下記の図の通り、
ブレーキによる制動力が強くなりすぎると最大静止摩擦力を越えてタイヤのロックが
起こりスリップ状態になります。
タイヤがスリップするようになると、それが制動距離が伸びる要因となり得るので、
ただやみくもに強いブレーキを踏めばよいという話ではなくなるので注意が必要です。

こういう問題への対策としては、本来の最大出力よりも弱くしたところをブレーキの
最大出力として、そこまで数秒かけて少しずつ上げていくようにし、そこから先は
設定した最大値を超えないようにキープするというやり方があります。
減速度を一定とするなら、タイヤがスリップ状態になる直前までの減速度は次の
ような式になりますが、

これを、初期値から最大値まで決まった時間だけかけて増加させるような関数として
定義することで、できるだけ人間が実際にブレーキをかけるような挙動に近づけよう
とするのが効果的です。

5. 制動距離の見積もり

ここまでの流れでブレーキ制御の方式を決定できたので、ここから制動距離を
見積もる事が出来るようになります。下記のグラフはトラックのような大型車両の
制動距離を車速別にプロットしたものですが、自分達のシステム用に決めたブレーキ
制御の理論式に基づいて同じようなグラフを描いてみればよい訳です。

torack7.blog.fc2.com

そして見積もれたあとは、決定した理論を利用した実機によるブレーキ性能試験を
行い、自分達の見積もりがどれだけ正確そうかを確認します。車速が速いほど、
制動にかかる時間や進む距離は長くなるので、スリップなどの外乱も入り込みやすく
なり、見積りに対する誤差は生じやすくなります。

出来る限りの最高速度での制動距離計測試験を行い、その結果と見積もりの相対誤差
が10%くらいであれば、その見積もりは十分信頼できるものだと考えることができます。

6. 障害物検出から衝突判定を行うタイミングや時間の決定

ここまでの流れで明らかにしてきた、停車時の距離、センサの実力、遅れ時間、
制動距離を考慮して、システムの処理として最初にくる障害物検出と衝突判定を
どのタイミングから始めるべきか、あるいはいつまでに終えるべきかを逆算する
ことができます。
ここで大事になるのは制動距離であり、停車するまでに必要な距離 + 停車時の
障害物までの距離を確保できる内に衝突判定を完了して、ブレーキを開始
しなければいけません。

起こり得る背反

制動距離がかなり長くなる事が予想される場合、その分より遠方から検出を開始する
か、もっと短い時間で衝突判定を行うようにするか、といった対策を考える必要が
あります。
ただし、そこで注意しなければならないのが、障害物ではない物を障害物だと誤検出
して、必要のない減速・停車をしてしまう事です。特に角度誤差については、距離が
遠くなるほど左右に大きくなるので、走路外の対向車、歩行者などを障害物と誤検出
する可能性があります。
これについては、事前の開発段階で入念な試験を行い、安全性、正確性、即効性の、
ちょうどバランスのいいところを見つけ出しておく事が重要です。