Autowareにおける車両制御アルゴリズムの開発

はじめまして!

株式会社ティアフォーで自動運転システムの開発を行っている堀部です。

今回は自動運転における車両制御、特に経路追従と呼ばれる部分について説明していこうと思います。

f:id:taka_horibe:20190326143937p:plain

Autowareによる経路追従の様子

 

自動運転における車両制御

一般に自動運転において「車両制御」とは、経路追従制御およびステアリング・速度制御を合わせた領域を指します。

 

この2つの機能の目的は

  • 経路追従制御:車両を目標経路に沿わせるための目標ステア角・車速を計算する
  • ステアリング・速度制御:ステアリング角と車速を目標値に合わせる

となっており、ブロック図としては以下のように書かれます。

f:id:taka_horibe:20190319212336p:plain

control block diagram


ステアリング制御は、ステアリング角度を目標角度にサーボさせる、いわゆるモーター制御に近いイメージです。しかしステアリングの運動には摩擦による地面との相互作用が存在し、車速や重量、路面状況などによって特性が大きく変化します。

通常の制御では摩擦は外乱としてフィードバックで押さえ込むことが多いのですが、ステアの場合はこの外乱が非常に大きく、この非線形特性をうまく取り扱えるかが制御の肝になります。

速度制御も同様に、車両速度を目標速度に合わせることが目的ですが、ここでもエンジン特性のような非線形を考慮する必要があります。エンジンの特性は数式で記述することが難しいため、非線形性を吸収するマップを作成して対応したりします。速度の加減速は人が感じる乗り心地に直結するため、自動運転に置いても非常に重要な役割を持ちます。

今回説明する経路追従制御は、目標経路に沿って走行するためのステア目標値、速度目標値を計算し、上記2つの制御系に渡すような構造となっています。この系はステア・速度制御をフィードバックループの内部に持つような構造になっており(ブロック図参照)、車両全体の運動特性を考慮して設計する必要があります。

 

 

軌道追従制御の歴史

開発初期(PID制御)


車両の走行制御の開発は古くから行われており、日本でも1960年代には時速100kmでの自動走行に成功しています。*1

この時代は道路に埋め込んだ磁気マーカーを検出して自己位置を求める方法が主流であり、古典制御(いわゆるPID)によって追従制御が行われていました。

PID制御では以下の図のように、車両と目標経路との横方向偏差(Lateral error)、および姿勢偏差(heading error)にPIDゲインを掛けて、ステアリング指令値を計算します。

f:id:taka_horibe:20190319215815p:plain

PID control

この手法は古典制御理論を利用した解析やチューニングが容易な反面、経路形状を考慮できなかったり、偏差が生じた後にしか対応ができない(つまり必ず偏差が生じる)といった欠点があります。

 

DARPAグランドチャレンジ(pure-pursuit)

f:id:taka_horibe:20190320205547p:plain

DARPA Ground Challenge: Carnegie Mellon University

 

DARPAグランドチャレンジ*2とは2004年と2005年にアメリカの国防高等研究計画局(DARPA)主催のもと開催された自動運転のレースであり、スタンフォードカーネギーメロン、MITと言った名だたる大学のチームが参加しました。この大会で今の自動運転に必要な多くの技術が生まれたと言われています。

この大会で多くのチームが使用した経路追従アルゴリズムが、Autowareでも採用されているpure-pursuitと呼ばれる制御方法になります。*3

この制御は経路の一定距離(Lookahead distance)前方に目標点を設定し、その点に向かって円を描いて進むようにステア角を決定するアルゴリズムです。簡易な方法ではありますが、前方を見ることによって(曲率一定という仮定はあるものの)経路形状を考慮できており、設計パラメータが少なく直感的にわかりやすい、と言った利点を持ちます。

f:id:taka_horibe:20190319215804p:plain 

また、制御理論の観点から見るとpure-pursuitはPD制御とよく似た性質を持っていますが、アルゴリズムに数値微分を必要としないという特徴があります。

PID制御の"D"は微分を意味しますが、微分とは変化率を求める作業であり、D制御は「現在の変化率から将来を予測して制御する」という一面を持ちます。

一方で、pure-pursuitでは「経路の先を見て将来を予測する」という方法によってD制御の効果を実現しており、微分を必要としない、ノイズに強い制御方法となっています。

グランドチャレンジの頃からは、自己位置推定の方式が磁気センサーのように環境に手を加える方法ではなく、LiDARなどによるマップマッチングが主流となりつつありました。この方法は直接自己位置を観測できる磁気センサーと異なり、推定される自己位置に多くのノイズが生じるため、pure-pursuitのノイズ耐性は非常に有用なものであったと考えられます。

近年の開発(MPC)

近年では、より複雑な制御理論が自動運転開発に適用されるようになってきました。その一例としてMPCと呼ばれる制御方法をご紹介します。

MPCは機械分野では2000年頃から実用化され始めた制御方法であり、1950年代に完成した古典制御、60年代の現代制御と比較すると比較的新しい制御手法になります。

この手法は下図のように、目標軌道(Reference trajectory)上の複数の点に対して、それらの点に沿う最適な経路(Predicted trajectory)を毎制御周期ごとに計算します。MPCは内部に車両モデルを持っており、このモデルと実現可能な入力の組み合わせの中から最適経路を計算し、その経路を実現するステア角を目標ステア角として後段のステアリング制御系に渡します。

 

 

f:id:taka_horibe:20190319215751p:plain

MPCは経路上の複数の点を利用しているため、経路形状の情報を適切に考慮した制御を行うことができます。これによって「この先は急カーブだから、早めにハンドルを切ろう」といった、賢い制御が可能になりました。

さらにMPCでは経路の計算に凸最適化と呼ばれる手法を用いており、ステアリングの最大角度や横G制限といった制約条件を考慮することができます。MPC以前の制御理論では、このような制約条件を含んだ制御設計を行うことはできず「制約条件に掛からないように全体の応答性を下げる」といった施策が必要でした。一方でMPCは「制約を考慮した最適な制御」を計算することが可能となり、限界まで機体の性能を使い切ることがでるようになりました。

このようにMPCは非常に性能の高い制御方法ですが、ほかの制御を比べて圧倒的に計算コストが高いという欠点があります(これが最近までMPCが実用化されなかった最大の理由です)。

この欠点は最近の計算機性能の向上に伴って特別に問題視されることは少なくなりましたが、それでも性能と計算コストのチューニングにはいくらかの労力を要することになります。

 

ティアフォーでの開発 

現在Autowareで使用しているpure-pursuitはオリジナルから一部改変が加えられており、速度に応じてlookahead distanceが線形に増加するようになっています。

これは「速度 / lookahead distance の値に応じて安定性が変化する」というpure-pursuitの解析結果*4を反映しており、速度増加に伴って振動を生じさせないような施策となっています。

しかしpure-pursuitはアルゴリズムの特性上、高速走行時や複雑な経路において追従精度が低くなってしまうという問題があります。

 

この問題を解決するため、現在ティアフォーではより高性能な制御系開発に取り組んでいます。

しかし、例えばMPCは上で述べたように高性能な制御の代名詞的存在ですが、pure-pursuitのようにロバスト性が特別高いというわけでもなく、ノイズの強い自己位置や、粗い経路を与えると発振や追従性の低下を引き起こしてしまいます。

また、経路予測に用いる車両の数式モデルの作成や、大量のパラメータ調整など、設計コストも高くなるため、多くの検証が必要になります。

我々は現在、車両シミュレーターを使ってこれらの制御系の開発・検証を行っています。社内メンバーに限らず、海外のチームなどともやり取りをし、Autowareの開発を加速させています!

 

・LGSVL シミュレータ(MPC, pure-pursuit)

youtu.be

 

・Gazebo(MPC, pure-pursuit)

www.youtube.com

 

 

最後に

ティアフォーでは自動運転システムを一緒に開発してくれるメンバーを募集しています!!

*1:自動運転の発展の歴史 国際交通安全学会誌 Vol. 40 No. 2 

http://www.iatss.or.jp/common/pdf/publication/iatss-review/40-2-01.pdf

*2:DARPA The Grand Challenge 

https://www.darpa.mil/about-us/timeline/-grand-challenge-for-autonomous-vehicles

*3:A Survey of Motion Planning and Control Techniques for Self-driving Urban Vehicles 

https://arxiv.org/pdf/1604.07446.pdf

*4:Stability of Autonomous Vehicle Path Tracking with Pure Delays in the Control Loop 

https://pdfs.semanticscholar.org/41f7/12a51b1490937fe494e80debeb87f09d7abe.pdf