SlideShare una empresa de Scribd logo
1 de 29
ウルシステムズ株式会社
http://www.ulsystems.co.jp
mailto:info@ulsystems.co.jp
Tel: 03-6220-1420 Fax: 03-6220-1402
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
「グーグルの自動運転CARの技術要素」勉強会
2014/8/29
講師:近棟 稔
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
はじめに
近年、「人工知能(AI)」は多くの分野で応用され、その成果を目にしたり利用したりする機会が増えてきま
した。たとえば、多くの人が利用しているGoogle検索もその1つです。Google検索を支える基礎的な考え
方は、人工知能由来のものとなっています。
一方で、AIの進歩が急速に見え、Elon Musk (Tesla MotorsのCEO)が以下の様な「AIは核兵器より危険か
も」といった内容の tweet をし、様々な議論が沸き起こりました。いわゆるAI脅威論です。
将来がどうなるかは分かりませんが、AIの世界のさまざまな潮流の中で、ひときわ注目を集めているのは
Google Carの存在だと思います。人間が運転する代わりに、AIが人間より安全に運転を代行する事が既に
可能になりつつあります。
このGoogle Carの中身を知る事を通して、今のAIに何が出来て、何が出来そうにないかが分かって頂けれ
ば幸いです。
1
https://www.youtube.com/watch?v=P0Nf3TcMiHo
The end of humanity: Nick Bostrom at TEDxOxford
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
Self-Driving Car の歴史
 2004 DARPA Grand Challenge ・・・ゴールできた車なし
 2005 DARPA Grand Challenge(砂漠のレース)
Sebastian Thrun率いるスタンフォード大学の
レーシングチームが優勝(車の名前はStanley)
今はスミソニアン博物館に飾られています。
 2007 DARPA Urban Challenge(市街地を想定したレース)
優勝はカーネギーメロン大学+GMのチーム。
Sebastian Thrun率いるスタンフォード大学の
レーシングチームは2位。(車の名前はJunior)
 その後、 Sebastian ThrunはGoogleにてGoogle Carの
開発へと進み、 DARPAはGUSSの開発へと進みます。
2004年に始まったチャレンジから10年でここまで進歩しました。
2
DARPAは、インターネットの歴史の中で出てくるARPA-Netの
ARPAです。GPSの開発でも有名です。ARPAはDefenseのDを
先頭に付けて今ではDARPAと改名しています。
Stanley
Junior
GUSSGoogle Car Google Car
https://www.youtube.com/watch?v=J3l5X3gYHPo
ジムカーナ的な事も出来ます。
https://www.youtube.com/watch?v=8fjNSUWX7nQ
ハンドルなどが付いていないバージョンです。
https://www.youtube.com/watch?v=GVdeBEsbzuA
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
Sebastian Thrun による Self-Driving Car の関連論文とネット講座
 Stanley: The Robot that Won the DARPA Grand Challenge
http://robots.stanford.edu/papers/thrun.stanley05.html
 Junior: The Stanford Entry in the Urban Challenge
http://robots.stanford.edu/papers/junior08.html
 Artificial Intelligence for Robotics - Programming a Robotic Car (Udacity)
https://www.udacity.com/course/cs373
3
このレースは、砂漠でのレースだったため、車をコースアウト(もしくは谷底に落
下)させずに、障害物(先行車含む)を回避しながら、速くゴールする事に主
眼が置かれています。砂漠という環境では道の境界がはっきりしていないとい
う難しさがあったようです。前方のみに注意を払えば良い条件だったため、セ
ンサーは前方に向けられています。
市街地を想定したレースで、他の車が交差点などを走っている状況で、信
号などの交通ルールを守りながら速く目的地に着いたり、駐車場で空いてい
る駐車スペースを自動的に探して駐車するような事が試される内容です。
GoogleCarの技術はこのレースで使われた技術にかなり似ています。そのた
め、この勉強会でもこの論文の内容を多く取り上げます。
Udacityというオンラインコースで Sebastian Thrun みずからGoogleCarの
基本技術を教える講義が開かれました。無料で受講可能です。上記の
DARPA Grand Challenge や DARPA Urban Challenge の論文では基
礎技術に関して既知のこととして扱っている部分が多いのですが、そのような
技術について基礎から積み上げて説明されています。また、GoogleCarにつ
いての言及もあり、GoogleCarが「Junior」とどう違うのかといった話も出てき
ます。
より重要
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
Juniorのセンサー
4
ライダー(LIDAR)
レーザーによって対象物までの距
離と対象物の反射率を測定
GPS
複数のGPS衛星からの電波
を受信し、位置を測定
ドップラーレーダー
電波によって対象物までの
距離と相対速度を測定
DMI
ホイールの回転数を数えて
走行距離を測定
[まめ知識]
OS: Linux
使用言語: C++
プロセス間通信:
Pub-Sub型
メッセージパッシング
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
GoogleCarのセンサー
5
ライダー(LIDAR)
レーザーによって対象物までの距
離と対象物の反射率を測定
GPS
複数のGPS衛星からの電波
を受信し、位置を測定
ドップラーレーダー
電波によって対象物までの
距離と相対速度を測定
DMI
ホイールの回転数を数えて
走行距離を測定
IMU
inertial measurement unitの略。
慣性航法のための6軸加速度セン
サー。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
ライダー(LIDAR)で出来ること
 距離の検出
LIDARは、レーザーパルスを発射してから、そのパルスが何かの対象物に当たり、乱反射が見えるまで
の時間を測定します。この測定した時間と光の速度を用いて距離を算出します。(C・T/2)
 対象物の反射率の測定
ライダーは距離の測定だけではなく、対象物の反射率も測定可能です。この反射率の情報は、道路のレーンマーカー(道
路の白線)が3D空間上のどこに引かれているかが読み取れるため、非常に重要な情報になります。多くのレーンマーカー
は、反射率の高い塗料を用いてペイントされているため、LIDARで読み取れるのです。
6
赤外線レーザー(eye safe)
(どの方向に発射したかを
正確に知っている。)
赤外線カメラ・・・パルスが乱反射するのを検知
赤外線パルス
対象物
(注) LIDARの種類によって
赤外線以外のレーザー
を使うものもあります
[Velodyne HDL64E の場合]
測定可能距離: 約120mまで
測定誤差: 5cm以下
周囲360度の3D測定時間: 66ミリ秒
Velodyne HDL64Eのように
周囲360度の距離をメッシュ
状に測定するタイプの場合、
一瞬(66ミリ秒)で周囲の3D
構造をスキャン出来ます。
https://www.youtube.com/watch?v=oZ7P4RsTE64
参考: https://www.youtube.com/watch?v=WJoaksSKaOo
[参考:LIDARとレーダーを併用する理由]
「LIDARでかなり正確な情報が取れるのに、なぜGoogleCarはレーダーも併用するのでしょうか?」Udacityにて生徒からこのような質問が出まし
た。理由の1つは、LIDARとレーダーの特性の違いという解答でした。LIDARは波長が900nm程度と短く、霧や雨などによって前方が隠されてし
まいますが、一方でレーダーは波長が数cm程度となり、霧の向こうを見ることも出来ます。また、測定可能距離も違います。車用レーダーは
250m先を検出することも可能です。より重要な理由として、レーダーはドップラー効果を用いて対象物との相対速度を正確に測定することが出
来、早期の動体検出が可能だという理由もあります。(ドップラーLIDARも存在するため製品上の制約かと思われます)
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
ロボットの思考と行動のサイクルと制御の難しさ
7
行動計画の
立案
(結構得意)
計画した
動作を実行
誤差が発生
状況把握
誤差を修正
ロボットの思考と
行動のサイクル
 ロボットは実世界で動作するため、コンピューターシミュレーションのようにはいきません。
下記のような思考と行動のサイクルの中で常にロボットが思っている脳内世界と実世界との間に誤差
(齟齬)が生まれます。この誤差が累積するようだと、ロボットをうまく制御することは出来ません。
正確な状況把握の難しさ
ロボットは、状況の把握のため
にセンサーを使います。
センサーからの情報は、前回の
動作の結果生じた、ロボットが
考えている世界と実世界との間
に生じた差異を修正するために
利用します。
ロボットが考えている世界が実
世界と適合していれば、次の行
動立案はより正しいものになり
ます。
しかし、センサーからの情報にも
必ず「誤差」が含まれていますの
で、まるっきり信用するわけにも
いきません。
正確な動作の難しさ
ロボットが行動する際、計画通
りに正確な動作をすることは出
来ません。
「1メートル前進」といった動作も、
0.9メートルしか前進しなかった
り、1.1メートル前進してしまった
りします。
そのため、行動計画はロボットの
不正確な動作を見越して余裕
をもって立てる必要があります。
(そうしないと崖下に落ちたりし
ます)
また、行動後の状態が期待した
状態になっているとも限りません。
現実世界と脳内と
の齟齬が拡大して
しまうフェーズ
現実世界と脳内
との齟齬を修正で
きる唯一のタイミン
グ
このあたりをうまく扱う事が
ロボット制御の基本
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
制御ソフトウエアのオーバービュー
8
ライダー(LIDAR)
GPS
ドップラーレーダー
DMI
IMU
センサー群 状況の把握
ローカライゼーション
既知の地図(空間)内のどこに自分
が居るかを決定
SLAM
既知の地図(空間)をセンサーデー
タをもとに更新 (simultaneous lo
calization and mapping)
動くものを検出
他の車やバイクや人など、動くもの
を検出し、移動方向や速度を見
積もり、トラッキングする(気にし続
ける)
プランニング(計画)
広域のルート計画
既知の地図をもとに、カー
ナビゲーションがやっている
ように、目的地に到達する
ための道順を自動的に計
画する。この際、どのレーン
に居たほうが良いかや、右
折と左折のどちらが簡単に
曲がれるかといった事も気
にして計画を立てる。
駐車場でのルート計画
車庫入れ的な挙動が必
要となる駐車場や狭い道
でのUターンのための行動
計画を自動立案する。
方針の決定
finite state machine
(状態遷移図)によってロボ
ットの行動指針を定義し、
いまやらなければならない
事を自動決定する。
https://www.youtube.com/watch?v=bDOnn0-4Nq8
Google Carが認識する世界
走行計画の実行
PIDコントロール
proportional-integral-d
erivative controlの略。
計画した走行ラインにそっ
て車をコントロールする方
法。
計画した走行ラインにそっ
て車を走行させることにも
工夫が必要で、うまく制御
出来ないと走行ラインを中
心に車が蛇行してしまった
りする。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: localization: 既知の地図上のどこに自分が居るかを推定する
 ローカライゼーションとは、既知の地図上のどこに自分が居るかを推定する事です。これが正確に行え
なければ話になりません。
 Q: 現在位置の特定はGPSを使えば良いのではないか?
A: GPSだけでは十分な精度が出ません。DARPA Urban Challengeでは、レース中、
GPSの誤差が1mを超えることがしばしばあったようです。このような大きな誤差があると、
センターラインを超えて対向車線を走ってしまったり、障害物に衝突してしまったりします。
実用的に許容可能な誤差は10cm程度までです。GPSだけでは達成できません。
 Q: 現在位置の特定に使えるセンサーデータはどれか?
A: すべてのセンサーデータを利用可能です。たとえばLIDARは周囲の3D構造や白線の位置を
読み取ってデータ化します。このデータをGoogleCarの場合はGoogleMapの衛星写真情報を
補正した道路地図情報(白線の情報や周囲の木々や建物の位置が入っている)と照らし
合わせます。合致している可能性が高い位置は、この2つのデータの比較で判明します。
ただし、LIDARとGoogleMapの比較は、他の車によって視界が遮られたり、白線が書き換え
られたり、雪が降ったりと、さまざまな要因でノイズが入るため、絶対的に信頼できるものでも
ありません。
9
LIDARからの情報例 GoogleMapの情報
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: Markov localizationを用いた現在位置の特定
 x座標のみの空間(1次元空間)があるとして、そのどこかにロボットカーが居るとします。
 すべてのセンサーデータを用い、x座標中のどこにロボットカーが居るのかを様々な方法で
推定し、それを確率で表現します。
 行動計画を立案し、1ほど右に車を動かす事にしたとします。しかし、実際に車がちゃん
と1ほど右に動くとは限りません。上記確率分布は以下のように変化します。
 新たなセンサーデータを用い、居場所の特定を行います。
 新たなセンサーデータから算出した存在確率(B)と、行動後の車の存在確率(A)を合成し、
より精度の高い位置情報を得ます。合成する方法は次のページで引き続き説明します。
10
x
x
位置xに
ロボットが
居る確率
センサーによると、
このあたりに存在する確率が高い このあたりもあやしいけど
センサーのノイズかも・・・?
x
移動 移動すると自信がなくなり、確率分布の
山が低くなり、山の裾野も広がる。
つまり居場所があいまいに。
移動
x
位置xに
ロボットが
居る確率
位置xに
ロボットが
居る確率
新しいセンサーデータに
よると、このあたりに存在
する確率が高い
・・・(A)
・・・(B)
困ったことに、このあたりの
存在確率も高い
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: Markov localizationにおける、新たなセンサーデータから
算出した存在確率(B)と、行動後の車の存在確率(A)を合成する方法
 車の移動後に再度センサーデータを取得した際、以下の(A)と(B)を合成することで更に精度の高い確率
分布が得られます。
11
x
位置xに
ロボットが
居る確率
x
位置xに
ロボットが
居る確率
・・・(A)
移動後の予想
センサーデータからの予想
(A)と(B)の両方で存在確率が
高い場合、その合成をすると、
より高く鋭いピークが得られる。
→確度の高い情報が得られている
(A)か(B)のどちらかにしか山がない場合、
合成後はより低い山しか得られない。
→ノイズは自然に除去される!
x
位置xに
ロボットが
居る確率
・・・(B)
合成後の予想→より正確
確率の掛け算 確率の掛け算 確率の掛け算
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: Markov localizationのアルゴリズムのバリエーション
 Markov localization のコンセプトを実現するアルゴリズムには、代表的には以下のバリエーションがあります。なお、
すべてfilterという名前が付いていますが、これは、これらの処理が probabilistic low-pass filter と言われる種類のもの
でもあるためです。「フィルター」という意味では信号処理で出てくるローパス・フィルターなどの仲間でもあります。
(recursive Bayesian estimatorとも呼ばれます)
 Google Carは上記の3種類のアルゴリズムを用途によって使い分けているそうです。また、DARPA Grand ChallengeのS
tanleyとDARPA Urban ChallengeのJuniorでも、使用するアルゴリズムが変わっています。
12
名前 特徴 説明
Histogram
filter
素朴
遅い
前ページまでの計算を素朴に実装したものです。
x座標を等間隔に細かな区画に分け、1つ1つの区画に車が居る存在確率を計算します。この方法は
区画の数が多くなると手に負えなくなるほど計算時間がかかる事が欠点です。
Kalman
filter
近似で
高速
車の存在確率の表現として正規分布を用いる方法です。
x座標を区画に分ける必要がなくなる一方、本来の確率分布が正規分布では表現できない(たとえば
確率の山は1つしかなくなってしまう)ため、どうしても近似表現となります。その代わり計算は高速で
す。
Particle
filter
実装が
簡単
ある程
度高速
車の存在確率を大量の粒子(particle)の粗密で表現する方法です。
存在確率の高いx座標には沢山のparticleが集まって来ることで、そこに車が居る確率が高いことを
表現します。1つしか確率の山が持てないKalman filterとは違い、複数の場所に確率の山を作るこ
とが可能なうえ、用いるparticleの数を調整することで、計算の正確さと計算速度の調整が可能です。
たとえば計算が荒くなることを承知で計算速度を上げたければparticleの数を少なくし、計算が遅く
なったとしても、より解像度の高い計算結果が欲しければparticleの数を増やします。プログラミング
が楽であることもParticle filterの特徴です。
Stanley 全面的にKalman filterを使用。
Junior
走行レーン内における左右の位置推定には1次元Histogram filterを使用。既知の地図上における自分の居
場所の推定と、他の車の位置のトラッキングにはParticle filterを使用。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: localization: Histogram filter
 Histogram filterは、ロボットの存在確率を棒グラフのような表現で計算する方法です。
この方法は、ヒストグラム1本1本の計算が必要になり、非常に時間がかかります。
13
x
位置xに
ロボットが
居る確率
x
位置xに
ロボットが
居る確率
移動後の予想
センサーデータからの予想
x
位置xに
ロボットが
居る確率
合成後の予想→より正確
確率の掛け算 確率の掛け算 確率の掛け算
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: localization: Kalman filter
 Kalman filterは、ロボットの存在確率を正規分布(ガウス関数)で近似して扱う方法です。
ガウス関数の性質上、確率分布の山は1つしか表現できないため、近似の方法として荒い
のですが、その分、計算のパフォーマンスは非常に高いです。
14
x
位置xに
ロボットが
居る確率
x
位置xに
ロボットが
居る確率
・・・(A)
移動後の予想
センサーデータからの予想
x
位置xに
ロボットが
居る確率
・・・(B)
合成後の予想→より正確
ガウス分布の合成
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: localization: Particle filter
 Particle filterは、ロボットの存在確率をparticle(粒子)の密度として表現する方法です。
ロボットの位置が、より良く推測出来ている状態では、particleは1箇所に固まって存在す
る状態になります。推測が出来ない状態になると、広くバラバラに存在する状態になりま
す。
15
x
位置xに
ロボットが
居る確率
x
位置xに
ロボットが
居る確率
・・・(A)
移動後の予想
センサーデータからの予想(それぞれのparticleの存在確率を計算: particle filterでは「ウエイト」と呼び、そのparticleの重要性を表現する)
x
位置xに
ロボットが
居る確率
・・・(B)
合成後の予想→より正確
各particleの存在確率をもとに、particleを「リサンプリング」します。
存在確率の高いparticleは子供を多く産み、存在確率の低いparticleは消滅します。
なお、このリサンプリング時に、ガウス乱数に基づいて、子供は親の近くのどこかに生成します。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その1: localization: 地図上のどこに自分が居るかを推定している例
 以下はJuniorの論文に掲載されていた推定例です。ここでは、以下の2つの位置を推定しています。
 車の左側面の位置(図中の黄色の線)
 白線の位置(図中の緑色の線)
この例では上記2つの情報を表示していますが、実際にはより多くの位置情報を推定します。
たとえばStanleyは 位置(3軸)、速度(3軸)、車の向き(3軸) などを推定しています。
 なお、GPS情報は赤い線とエリアで示されています。この場合80cmほど右にずれています。
16
GPSの取付位置
この場合80cmほどGPS情報がずれている
車の左側面の推定位置
白線の推定位置
白い線はLIDAR
による3Dデータ
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その2: 他の車や自転車や歩行者のトラッキング
 他の車や自転車や歩行者の動きをトラッキングして、衝突しないようにします。このような処理にもMarkov localization
を用います。大まかな処理ステップは以下の通りです。
1. ドップラーレーダー(前方の遠距離にいる移動体向け)やLIDARを用い、障害物を検出します。
トラッキングする障害物として認識するか否かは、既知の地図に載っているか否かで判断するそうです。
2.検出した障害物1つ1つに対し、Markov localizationで位置や移動速度や移動方向の推定をします。
Juniorの場合は、Markov localizationの中でもParticle filterを用いていたそうです。別の実装では、
Kalman filter を用いたものもあるそうです。
17
https://www.youtube.com/watch?v=TsaES--OTzM
障害物1つ1つをトラッキングし、現在位置と移動方向と移動速度を推定
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その3: 走行ルートの計画
 現在位置から目的地までの走行ルートの計画方法は、カーナビが行っている事と大差ありません。ただし、カーナビより
も計画の内容が細かく、前を走っている遅い車を追い越した方が良いか、走行レーンを変更したほうが良いかなどといっ
た走行ルートの計画も行います。
 走行ルートの決定をする際には「コスト」の小さいルートを選びます。「コスト」というのは、単純に「走行ルートの走
行距離」をコストとする事もありますし、それに加えて右折や左折が少ないルートの方が、単純に走行距離が短いルート
よりコストが小さいと定義したりすることもあります。
 コストが最小になる走行ルートを算出する際、GoogleCarは「A*(Aスター)」という汎用アルゴリズムを用います。
A*を用いてルート探索している様子を以下に示します。
18
車の動ける
範囲はこのように
限られている
車の動ける範囲をもとに、
動ける範囲のツリーを検索してゴールに近づく
動いた先で
次にどう動く?
参考: https://www.youtube.com/watch?v=0gk8ioVjNO4
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その3: 走行ルートの計画: A*アルゴリズムの基本的な考え方
 A*アルゴリズムは、基本的には幅優先探索の特殊なものになります。
幅優先探索を最短経路問題などに使えるようにしたものとしてbest-first searchという汎用アルゴリズムがあり、
更にbest-first searchを高速化するためにA*が考え出されました。
A*は、電車のルート検索やカーナビのルート探索など、さまざまな場面で使われています。
幅優先探索 → best-first search → A*
 best-first search の基本的な挙動
→ 計算済みのエリアを更に広げる際、「コスト的にbestな部分を優先的に(best-first)」展開していく方法です。
コストが同じエリアが広がっている場合、同心円状に探索エリアが広がっていってしまい、非効率です。
 A*の基本的な挙動
→基本的にはbest-first searchと同じですが、目的地の方向を意識し、目的地の方へ優先的に探索エリアを
伸ばすという工夫が追加された方法です。
目的地の方へ優先的に探索エリアを伸ばすために、コストの算出時に意図的に目的地の方向へ近づく
方向のコストをわずかに安く見積もります。このような特徴的なコストの算出法をbest-first searchに適用
したものがA*の正体です。
19
目的地
目的地
現在地
現在地
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その4: PIDコントロール
 走行ラインの計画が終わった後、いよいよロボットカーはステアリングの舵角を決定したり、アクセル
やブレーキを調整したりします。以降、単純化のため、ステアリングの舵角のみに焦点をあてて説明し
ます。
 ステアリングの舵角は、PIDコントロール(proportional-integral-derivative control)という方法で決定
します。もともとは船の自動操舵方法として発展したもののようです。
20
走りたい
走行ライン
走行ラインに戻るためには、
右に打を切ったほうが良い。
でもどのくらい切ればいいんだろう?
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その4: PIDコントロール: Pコントロール
 Pコントロールを説明するために、まずCTE(cross tracking error)の説明をします。CTEとは、走りたい走行ラ
インから車がどれだけ離れているかを測定した距離情報です。走行ラインの真上をちゃんと走行している場合はCTEはゼロ
です。もしも走行ラインの左を走っている場合は正の値となり、走行ラインの右を走っている場合は負の値となります。
 Pコントロールの考え方は単純で、CTEに比例した量だけ右に打を切れば、走行ラインに戻る方向に打を切れるという理屈
になります。なお、PコントロールのPは比例(proportional)の意味です。
 CTEがゼロの場合は打を切らない
 CTEが正(走行ラインの左側)の場合はCTEが大きいほど大きく打を右に切る
 CTEが負(走行ラインの右側)の場合はCTEが大きいほど大きく打を左に切る
 ただ、実際にはPコントロールだけでは、走行ラインを中心に蛇行してしまいます。
あたかも走行ラインを中心に振動しているような振る舞いになります。
21
走行ラインに戻るためには、
CTEに比例した量だけ、
右に打を切ったほうが良い。=Pコントロール
走りたい走行ラインから
車がどれだけ離れているかは
CTE(cross tracking error)
と呼ばれます。
走りたい
走行ライン
走りたい
走行ライン
CTE
走行結果
舵角 = 𝑎 ∙ CTE
(aは定数)
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その4: PIDコントロール: PDコントロール
 Pコントロールだけを使うと、走行ラインを中心に蛇行してしまいます。
この蛇行を抑制するために、Dコントロールという制御を追加します。Dはderivative(微分)のDです。
Dコントロールを理解するために、まず⊿CTEを説明します。
 ⊿CTEはCTEの変化量です。たとえば⊿t時間前の前回のCTEの値がCTE1で、再度CTEを測定した際の値
がCTE2だった場合、⊿CTE=CTE2 - CTE1となります。
 ⊿CTE/⊿tは以下の様な意味を持ちます。
 ⊿CTE/⊿tがゼロの場合、車は走行ラインと平行に走っています。
 ⊿CTE/⊿tが正の場合、どんどん左にそれています。よって、それだけ打を右に切る必要があります。
 ⊿CTE/⊿tが負の場合、どんどん右にそれています。よって、それだけ打を左に切る必要があります。
 PDコントロールでは、この⊿CTEに比例した量だけの舵角をPコントロールに加えて補正します。そうす
ると、なめらかに走行ラインに沿うようになります。
22
走りたい
走行ライン
CTE1 CTE2
⊿CTE = CTE2 - CTE1
走りたい
走行ライン
舵角 = 𝑎 ∙ CTE + 𝑏 ∙
⊿CTE
⊿t
(a, bは定数)
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その4: PIDコントロール: PIDコントロール
 完全な世界であればPDコントロールだけでもうまく機能するかもしれませんが、実際にはもう一つ解決
しなければならない問題があります。それは「機械的な狂い」です。たとえば車のホイールの取り付け
角などが若干悪く、ステアリングを切ってなくても左へ左へと曲がってしまう場合があります。このよ
うな機械的な狂いがある場合、PDコントロールだけではうまく走行ラインに乗せられません。
 機械的な狂いの問題を解消するため、PDコントロールに加え、Iコントロールというものを追加します。
Iはintegralの略で、積分という意味です。Iコントロールでは、移動の開始以降に測定したすべてのCTE
の量を累積し、その累積量に比例した量で舵角を補正します。
23
[極端なドリフトの例]
舵角をゼロに保った状態でも
ホイールの向きがもともと
曲がったりしていて、旋回してしまう。 走行ライン
ドリフトがあると、走行ラインに
うまく乗らない
走行ライン
正
負
舵角 = 𝑎 ∙ CTE + 𝑏 ∙
⊿CTE
⊿t
+ 𝑐 ∙ CTE
(a, b, cは定数)
PIDコントロールによる舵角の決定
[参考]
PIDコントロールの定数項a,b,cは、最適な値を見
付けるためにTwiddleという方法を用います。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
技術その4: PIDコントロール: Google Car のコンソール上に表示されるCTE
 おまけの情報ですが、Google Car のコンソール上にはよくCTEが表示されています。
右上の方に表示があり、この場合は3cmのズレがあることが分かります。
また、CTEの下に表示されているPlanは、おそらく車の速度調整です。
速度もPIDコントロールを用いていると思われます。
24
https://www.youtube.com/watch?v=TsaES--OTzM
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
制御ソフトウエアのオーバービュー(再掲)
25
ライダー(LIDAR)
GPS
ドップラーレーダー
DMI
IMU
センサー群 状況の把握
ローカライゼーション
既知の地図(空間)内のどこに自分
が居るかを決定
SLAM
既知の地図(空間)をセンサーデー
タをもとに更新 (simultaneous lo
calization and mapping)
動くものを検出
他の車やバイクや人など、動くもの
を検出し、移動方向や速度を見
積もり、トラッキングする(気にし続
ける)
プランニング(計画)
広域のルート計画
既知の地図をもとに、カー
ナビゲーションがやっている
ように、目的地に到達する
ための道順を自動的に計
画する。この際、どのレーン
に居たほうが良いかや、右
折と左折のどちらが簡単に
曲がれるかといった事も気
にして計画を立てる。
駐車場でのルート計画
車庫入れ的な挙動が必
要となる駐車場や狭い道
でのUターンのための行動
計画を自動立案する。
方針の決定
finite state machine
(状態遷移図)によってロボ
ットの行動指針を定義し、
いまやらなければならない
事を自動決定する。
https://www.youtube.com/watch?v=bDOnn0-4Nq8
Google Carが認識する世界
走行計画の実行
PIDコントロール
proportional-integral-d
erivative controlの略。
計画した走行ラインにそっ
て車をコントロールする方
法。
計画した走行ラインにそっ
て車を走行させることにも
工夫が必要で、うまく制御
出来ないと走行ラインを中
心に車が蛇行してしまった
りする。
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
おまけ:おそらく最も安く、有名な、3Dセンサー
 Kinect for Xbox One や、second-generation Kinect for Windows v2は、LIDARと同じくtime-of-fli
ght 方式の深度センサー(3Dセンサー)を持っています。これにより、GoogleCarと同じく、周囲の状
況を3Dデータとして把握する事が出来ます。Kinectは安価なので、これを自作ロボットの目として使う
人もいます。ロボットの目としては、CCDカメラのように2次元情報しか検出できない物を使うより、周
囲の状況と自分の位置が3次元データとして直接得られる方が都合が良いのです。
26
https://www.youtube.com/watch?v=WPDi-WAmUDc
KinectをRumbaに取り付けて目にしてみたもの
https://www.youtube.com/watch?v=eWmVrfjDCyw
Kinectをクアドコプターの目にしてみたもの
Kinect
for Windows v2 sensor
$199
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
おまけ:ステレオビジョン・・・LIDAR以外の3D検出技術。安価。
 人間をはじめとする多くの動物は2つの目を使って世界を3Dと認識して処理しています。このような技
術は、AIおよびコンピュータービジョンの世界では「ステレオビジョン」と呼ばれています。
有名なのは、スバルの使っているEyeSightが代表例になります。
27
https://www.youtube.com/watch?v=EYrTDMSylrU
Subaru EyeSight
http://news.mynavi.jp/series/computer_vision/021/
コンピュータビジョンのセカイ - 今そこにあるミライ
前方を同時に撮影する2つのカメラ(目)
ステレオカメラで周囲を3Dデータとして読み取る
ULS Copyright © 2014 UL Systems, Inc. All rights reserved.
おまけ:structure from motion (SfM): 動画から3D構造を復元
28
http://openmvg.readthedocs.org/en/latest/software/SfM/SfM/ http://cg.cs.uni-bonn.de/aigaion2root/attachments/schwartz-2009-improvesfm.pdf
 ステレオカメラではなく、単眼の普通のカメラ(スマートフォンのカメラでもOK)で動画
(複数の写真でもOK)を撮影し、その動画から、被写体の3D構造を復元する技術があり、
structure from motion (SfM) と呼ばれています。
 最近の利用例としては、NHKが土砂災害の情報を伝えるために、ヘリコプターで災害現場
をビデオ撮影し、その動画から、structure from motionを用いて現場の3D構造を復元し
て用いた例があります。
 また、structure from motionによって3D空間を算出した後、カメラの動きをスムージン
グすることで、手ブレを抑えた動画に再編集するHyperlapseという技術も開発されていま
す。(http://japanese.engadget.com/2014/08/12/hyperlapse-ms/?ncid=rss_truncated)

Más contenido relacionado

Destacado

PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことYoshio Hanawa
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行gree_tech
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25Minoru Chikamune
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略yoku0825
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則Hiroshi Tokumaru
 
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11Minoru Chikamune
 

Destacado (7)

PHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったことPHP拡張をPECLに登録してわかったこと
PHP拡張をPECLに登録してわかったこと
 
PHP Version Up と AWS への移行
PHP Version Up と AWS への移行PHP Version Up と AWS への移行
PHP Version Up と AWS への移行
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25有名論文から学ぶディープラーニング 2016.03.25
有名論文から学ぶディープラーニング 2016.03.25
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
 

Similar a 「グーグルの自動運転Carの技術要素」勉強会 2014.08.29

人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
大学新入生のコンピュータ不安の長期定点観測
大学新入生のコンピュータ不安の長期定点観測大学新入生のコンピュータ不安の長期定点観測
大学新入生のコンピュータ不安の長期定点観測Takahiro Sumiya
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×RoboticsエンジニアへのロードマップNVIDIA Japan
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へShuji Watanabe
 
ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発Masaru Nagaku
 
AIを支える人間マイクロワーカーの真実
AIを支える人間マイクロワーカーの真実AIを支える人間マイクロワーカーの真実
AIを支える人間マイクロワーカーの真実Hiroshi Takahashi
 
20130802第6回iocj情報交換会 info scoop最新情報
20130802第6回iocj情報交換会 info scoop最新情報20130802第6回iocj情報交換会 info scoop最新情報
20130802第6回iocj情報交換会 info scoop最新情報infoScoop
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリYuichiArisaka
 
Project Araと新しいものづくりのエコシステム
  Project Araと新しいものづくりのエコシステム  Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステムmaruyama097
 
[DLゼミ] Learning agile and dynamic motor skills for legged robots
[DLゼミ] Learning agile and dynamic motor skills for legged robots[DLゼミ] Learning agile and dynamic motor skills for legged robots
[DLゼミ] Learning agile and dynamic motor skills for legged robotsharmonylab
 
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングxR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングShinya Tachihara
 
人工知能技術のエンタープライズシステムへの適用
人工知能技術のエンタープライズシステムへの適用人工知能技術のエンタープライズシステムへの適用
人工知能技術のエンタープライズシステムへの適用Miki Yutani
 
【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine Intelligence【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine IntelligenceDeep Learning JP
 
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内Shu Takeda
 
ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~Ken Azuma
 
人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考maruyama097
 
マルチインスタンス型オフショア開発
マルチインスタンス型オフショア開発マルチインスタンス型オフショア開発
マルチインスタンス型オフショア開発GKT_slide
 
AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)aitc_jp
 
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Tadahiro Taniguchi
 

Similar a 「グーグルの自動運転Carの技術要素」勉強会 2014.08.29 (20)

人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
大学新入生のコンピュータ不安の長期定点観測
大学新入生のコンピュータ不安の長期定点観測大学新入生のコンピュータ不安の長期定点観測
大学新入生のコンピュータ不安の長期定点観測
 
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
 
ユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へユースケースからテスト駆動開発へ
ユースケースからテスト駆動開発へ
 
ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発
 
AIを支える人間マイクロワーカーの真実
AIを支える人間マイクロワーカーの真実AIを支える人間マイクロワーカーの真実
AIを支える人間マイクロワーカーの真実
 
20130802第6回iocj情報交換会 info scoop最新情報
20130802第6回iocj情報交換会 info scoop最新情報20130802第6回iocj情報交換会 info scoop最新情報
20130802第6回iocj情報交換会 info scoop最新情報
 
Elasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリElasticsearchを使ったTwitter監視アプリ
Elasticsearchを使ったTwitter監視アプリ
 
Project Araと新しいものづくりのエコシステム
  Project Araと新しいものづくりのエコシステム  Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステム
 
[DLゼミ] Learning agile and dynamic motor skills for legged robots
[DLゼミ] Learning agile and dynamic motor skills for legged robots[DLゼミ] Learning agile and dynamic motor skills for legged robots
[DLゼミ] Learning agile and dynamic motor skills for legged robots
 
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングxR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
 
人工知能技術のエンタープライズシステムへの適用
人工知能技術のエンタープライズシステムへの適用人工知能技術のエンタープライズシステムへの適用
人工知能技術のエンタープライズシステムへの適用
 
【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine Intelligence【DL輪読会】A Path Towards Autonomous Machine Intelligence
【DL輪読会】A Path Towards Autonomous Machine Intelligence
 
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内
いまさら聞けないインフラ勉強会Vol.3~システム監視ツールバトル2013開催案内
 
ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~ビジネスとデザイン ~ビジネスは悪くない~
ビジネスとデザイン ~ビジネスは悪くない~
 
人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考
 
マルチインスタンス型オフショア開発
マルチインスタンス型オフショア開発マルチインスタンス型オフショア開発
マルチインスタンス型オフショア開発
 
AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)AITCオープンラボ 2018年5月度(4)
AITCオープンラボ 2018年5月度(4)
 
20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)20141111 明日の認証会議資料(寺田)
20141111 明日の認証会議資料(寺田)
 
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
 

Más de Minoru Chikamune

省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18Minoru Chikamune
 
AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07Minoru Chikamune
 
Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Minoru Chikamune
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13Minoru Chikamune
 
「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20Minoru Chikamune
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04Minoru Chikamune
 

Más de Minoru Chikamune (6)

省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18
 
AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07
 
Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13
 
「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04
 

「グーグルの自動運転Carの技術要素」勉強会 2014.08.29

  • 1. ウルシステムズ株式会社 http://www.ulsystems.co.jp mailto:info@ulsystems.co.jp Tel: 03-6220-1420 Fax: 03-6220-1402 ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 「グーグルの自動運転CARの技術要素」勉強会 2014/8/29 講師:近棟 稔
  • 2. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. はじめに 近年、「人工知能(AI)」は多くの分野で応用され、その成果を目にしたり利用したりする機会が増えてきま した。たとえば、多くの人が利用しているGoogle検索もその1つです。Google検索を支える基礎的な考え 方は、人工知能由来のものとなっています。 一方で、AIの進歩が急速に見え、Elon Musk (Tesla MotorsのCEO)が以下の様な「AIは核兵器より危険か も」といった内容の tweet をし、様々な議論が沸き起こりました。いわゆるAI脅威論です。 将来がどうなるかは分かりませんが、AIの世界のさまざまな潮流の中で、ひときわ注目を集めているのは Google Carの存在だと思います。人間が運転する代わりに、AIが人間より安全に運転を代行する事が既に 可能になりつつあります。 このGoogle Carの中身を知る事を通して、今のAIに何が出来て、何が出来そうにないかが分かって頂けれ ば幸いです。 1 https://www.youtube.com/watch?v=P0Nf3TcMiHo The end of humanity: Nick Bostrom at TEDxOxford
  • 3. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. Self-Driving Car の歴史  2004 DARPA Grand Challenge ・・・ゴールできた車なし  2005 DARPA Grand Challenge(砂漠のレース) Sebastian Thrun率いるスタンフォード大学の レーシングチームが優勝(車の名前はStanley) 今はスミソニアン博物館に飾られています。  2007 DARPA Urban Challenge(市街地を想定したレース) 優勝はカーネギーメロン大学+GMのチーム。 Sebastian Thrun率いるスタンフォード大学の レーシングチームは2位。(車の名前はJunior)  その後、 Sebastian ThrunはGoogleにてGoogle Carの 開発へと進み、 DARPAはGUSSの開発へと進みます。 2004年に始まったチャレンジから10年でここまで進歩しました。 2 DARPAは、インターネットの歴史の中で出てくるARPA-Netの ARPAです。GPSの開発でも有名です。ARPAはDefenseのDを 先頭に付けて今ではDARPAと改名しています。 Stanley Junior GUSSGoogle Car Google Car https://www.youtube.com/watch?v=J3l5X3gYHPo ジムカーナ的な事も出来ます。 https://www.youtube.com/watch?v=8fjNSUWX7nQ ハンドルなどが付いていないバージョンです。 https://www.youtube.com/watch?v=GVdeBEsbzuA
  • 4. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. Sebastian Thrun による Self-Driving Car の関連論文とネット講座  Stanley: The Robot that Won the DARPA Grand Challenge http://robots.stanford.edu/papers/thrun.stanley05.html  Junior: The Stanford Entry in the Urban Challenge http://robots.stanford.edu/papers/junior08.html  Artificial Intelligence for Robotics - Programming a Robotic Car (Udacity) https://www.udacity.com/course/cs373 3 このレースは、砂漠でのレースだったため、車をコースアウト(もしくは谷底に落 下)させずに、障害物(先行車含む)を回避しながら、速くゴールする事に主 眼が置かれています。砂漠という環境では道の境界がはっきりしていないとい う難しさがあったようです。前方のみに注意を払えば良い条件だったため、セ ンサーは前方に向けられています。 市街地を想定したレースで、他の車が交差点などを走っている状況で、信 号などの交通ルールを守りながら速く目的地に着いたり、駐車場で空いてい る駐車スペースを自動的に探して駐車するような事が試される内容です。 GoogleCarの技術はこのレースで使われた技術にかなり似ています。そのた め、この勉強会でもこの論文の内容を多く取り上げます。 Udacityというオンラインコースで Sebastian Thrun みずからGoogleCarの 基本技術を教える講義が開かれました。無料で受講可能です。上記の DARPA Grand Challenge や DARPA Urban Challenge の論文では基 礎技術に関して既知のこととして扱っている部分が多いのですが、そのような 技術について基礎から積み上げて説明されています。また、GoogleCarにつ いての言及もあり、GoogleCarが「Junior」とどう違うのかといった話も出てき ます。 より重要
  • 5. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. Juniorのセンサー 4 ライダー(LIDAR) レーザーによって対象物までの距 離と対象物の反射率を測定 GPS 複数のGPS衛星からの電波 を受信し、位置を測定 ドップラーレーダー 電波によって対象物までの 距離と相対速度を測定 DMI ホイールの回転数を数えて 走行距離を測定 [まめ知識] OS: Linux 使用言語: C++ プロセス間通信: Pub-Sub型 メッセージパッシング
  • 6. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. GoogleCarのセンサー 5 ライダー(LIDAR) レーザーによって対象物までの距 離と対象物の反射率を測定 GPS 複数のGPS衛星からの電波 を受信し、位置を測定 ドップラーレーダー 電波によって対象物までの 距離と相対速度を測定 DMI ホイールの回転数を数えて 走行距離を測定 IMU inertial measurement unitの略。 慣性航法のための6軸加速度セン サー。
  • 7. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. ライダー(LIDAR)で出来ること  距離の検出 LIDARは、レーザーパルスを発射してから、そのパルスが何かの対象物に当たり、乱反射が見えるまで の時間を測定します。この測定した時間と光の速度を用いて距離を算出します。(C・T/2)  対象物の反射率の測定 ライダーは距離の測定だけではなく、対象物の反射率も測定可能です。この反射率の情報は、道路のレーンマーカー(道 路の白線)が3D空間上のどこに引かれているかが読み取れるため、非常に重要な情報になります。多くのレーンマーカー は、反射率の高い塗料を用いてペイントされているため、LIDARで読み取れるのです。 6 赤外線レーザー(eye safe) (どの方向に発射したかを 正確に知っている。) 赤外線カメラ・・・パルスが乱反射するのを検知 赤外線パルス 対象物 (注) LIDARの種類によって 赤外線以外のレーザー を使うものもあります [Velodyne HDL64E の場合] 測定可能距離: 約120mまで 測定誤差: 5cm以下 周囲360度の3D測定時間: 66ミリ秒 Velodyne HDL64Eのように 周囲360度の距離をメッシュ 状に測定するタイプの場合、 一瞬(66ミリ秒)で周囲の3D 構造をスキャン出来ます。 https://www.youtube.com/watch?v=oZ7P4RsTE64 参考: https://www.youtube.com/watch?v=WJoaksSKaOo [参考:LIDARとレーダーを併用する理由] 「LIDARでかなり正確な情報が取れるのに、なぜGoogleCarはレーダーも併用するのでしょうか?」Udacityにて生徒からこのような質問が出まし た。理由の1つは、LIDARとレーダーの特性の違いという解答でした。LIDARは波長が900nm程度と短く、霧や雨などによって前方が隠されてし まいますが、一方でレーダーは波長が数cm程度となり、霧の向こうを見ることも出来ます。また、測定可能距離も違います。車用レーダーは 250m先を検出することも可能です。より重要な理由として、レーダーはドップラー効果を用いて対象物との相対速度を正確に測定することが出 来、早期の動体検出が可能だという理由もあります。(ドップラーLIDARも存在するため製品上の制約かと思われます)
  • 8. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. ロボットの思考と行動のサイクルと制御の難しさ 7 行動計画の 立案 (結構得意) 計画した 動作を実行 誤差が発生 状況把握 誤差を修正 ロボットの思考と 行動のサイクル  ロボットは実世界で動作するため、コンピューターシミュレーションのようにはいきません。 下記のような思考と行動のサイクルの中で常にロボットが思っている脳内世界と実世界との間に誤差 (齟齬)が生まれます。この誤差が累積するようだと、ロボットをうまく制御することは出来ません。 正確な状況把握の難しさ ロボットは、状況の把握のため にセンサーを使います。 センサーからの情報は、前回の 動作の結果生じた、ロボットが 考えている世界と実世界との間 に生じた差異を修正するために 利用します。 ロボットが考えている世界が実 世界と適合していれば、次の行 動立案はより正しいものになり ます。 しかし、センサーからの情報にも 必ず「誤差」が含まれていますの で、まるっきり信用するわけにも いきません。 正確な動作の難しさ ロボットが行動する際、計画通 りに正確な動作をすることは出 来ません。 「1メートル前進」といった動作も、 0.9メートルしか前進しなかった り、1.1メートル前進してしまった りします。 そのため、行動計画はロボットの 不正確な動作を見越して余裕 をもって立てる必要があります。 (そうしないと崖下に落ちたりし ます) また、行動後の状態が期待した 状態になっているとも限りません。 現実世界と脳内と の齟齬が拡大して しまうフェーズ 現実世界と脳内 との齟齬を修正で きる唯一のタイミン グ このあたりをうまく扱う事が ロボット制御の基本
  • 9. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 制御ソフトウエアのオーバービュー 8 ライダー(LIDAR) GPS ドップラーレーダー DMI IMU センサー群 状況の把握 ローカライゼーション 既知の地図(空間)内のどこに自分 が居るかを決定 SLAM 既知の地図(空間)をセンサーデー タをもとに更新 (simultaneous lo calization and mapping) 動くものを検出 他の車やバイクや人など、動くもの を検出し、移動方向や速度を見 積もり、トラッキングする(気にし続 ける) プランニング(計画) 広域のルート計画 既知の地図をもとに、カー ナビゲーションがやっている ように、目的地に到達する ための道順を自動的に計 画する。この際、どのレーン に居たほうが良いかや、右 折と左折のどちらが簡単に 曲がれるかといった事も気 にして計画を立てる。 駐車場でのルート計画 車庫入れ的な挙動が必 要となる駐車場や狭い道 でのUターンのための行動 計画を自動立案する。 方針の決定 finite state machine (状態遷移図)によってロボ ットの行動指針を定義し、 いまやらなければならない 事を自動決定する。 https://www.youtube.com/watch?v=bDOnn0-4Nq8 Google Carが認識する世界 走行計画の実行 PIDコントロール proportional-integral-d erivative controlの略。 計画した走行ラインにそっ て車をコントロールする方 法。 計画した走行ラインにそっ て車を走行させることにも 工夫が必要で、うまく制御 出来ないと走行ラインを中 心に車が蛇行してしまった りする。
  • 10. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: localization: 既知の地図上のどこに自分が居るかを推定する  ローカライゼーションとは、既知の地図上のどこに自分が居るかを推定する事です。これが正確に行え なければ話になりません。  Q: 現在位置の特定はGPSを使えば良いのではないか? A: GPSだけでは十分な精度が出ません。DARPA Urban Challengeでは、レース中、 GPSの誤差が1mを超えることがしばしばあったようです。このような大きな誤差があると、 センターラインを超えて対向車線を走ってしまったり、障害物に衝突してしまったりします。 実用的に許容可能な誤差は10cm程度までです。GPSだけでは達成できません。  Q: 現在位置の特定に使えるセンサーデータはどれか? A: すべてのセンサーデータを利用可能です。たとえばLIDARは周囲の3D構造や白線の位置を 読み取ってデータ化します。このデータをGoogleCarの場合はGoogleMapの衛星写真情報を 補正した道路地図情報(白線の情報や周囲の木々や建物の位置が入っている)と照らし 合わせます。合致している可能性が高い位置は、この2つのデータの比較で判明します。 ただし、LIDARとGoogleMapの比較は、他の車によって視界が遮られたり、白線が書き換え られたり、雪が降ったりと、さまざまな要因でノイズが入るため、絶対的に信頼できるものでも ありません。 9 LIDARからの情報例 GoogleMapの情報
  • 11. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: Markov localizationを用いた現在位置の特定  x座標のみの空間(1次元空間)があるとして、そのどこかにロボットカーが居るとします。  すべてのセンサーデータを用い、x座標中のどこにロボットカーが居るのかを様々な方法で 推定し、それを確率で表現します。  行動計画を立案し、1ほど右に車を動かす事にしたとします。しかし、実際に車がちゃん と1ほど右に動くとは限りません。上記確率分布は以下のように変化します。  新たなセンサーデータを用い、居場所の特定を行います。  新たなセンサーデータから算出した存在確率(B)と、行動後の車の存在確率(A)を合成し、 より精度の高い位置情報を得ます。合成する方法は次のページで引き続き説明します。 10 x x 位置xに ロボットが 居る確率 センサーによると、 このあたりに存在する確率が高い このあたりもあやしいけど センサーのノイズかも・・・? x 移動 移動すると自信がなくなり、確率分布の 山が低くなり、山の裾野も広がる。 つまり居場所があいまいに。 移動 x 位置xに ロボットが 居る確率 位置xに ロボットが 居る確率 新しいセンサーデータに よると、このあたりに存在 する確率が高い ・・・(A) ・・・(B) 困ったことに、このあたりの 存在確率も高い
  • 12. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: Markov localizationにおける、新たなセンサーデータから 算出した存在確率(B)と、行動後の車の存在確率(A)を合成する方法  車の移動後に再度センサーデータを取得した際、以下の(A)と(B)を合成することで更に精度の高い確率 分布が得られます。 11 x 位置xに ロボットが 居る確率 x 位置xに ロボットが 居る確率 ・・・(A) 移動後の予想 センサーデータからの予想 (A)と(B)の両方で存在確率が 高い場合、その合成をすると、 より高く鋭いピークが得られる。 →確度の高い情報が得られている (A)か(B)のどちらかにしか山がない場合、 合成後はより低い山しか得られない。 →ノイズは自然に除去される! x 位置xに ロボットが 居る確率 ・・・(B) 合成後の予想→より正確 確率の掛け算 確率の掛け算 確率の掛け算
  • 13. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: Markov localizationのアルゴリズムのバリエーション  Markov localization のコンセプトを実現するアルゴリズムには、代表的には以下のバリエーションがあります。なお、 すべてfilterという名前が付いていますが、これは、これらの処理が probabilistic low-pass filter と言われる種類のもの でもあるためです。「フィルター」という意味では信号処理で出てくるローパス・フィルターなどの仲間でもあります。 (recursive Bayesian estimatorとも呼ばれます)  Google Carは上記の3種類のアルゴリズムを用途によって使い分けているそうです。また、DARPA Grand ChallengeのS tanleyとDARPA Urban ChallengeのJuniorでも、使用するアルゴリズムが変わっています。 12 名前 特徴 説明 Histogram filter 素朴 遅い 前ページまでの計算を素朴に実装したものです。 x座標を等間隔に細かな区画に分け、1つ1つの区画に車が居る存在確率を計算します。この方法は 区画の数が多くなると手に負えなくなるほど計算時間がかかる事が欠点です。 Kalman filter 近似で 高速 車の存在確率の表現として正規分布を用いる方法です。 x座標を区画に分ける必要がなくなる一方、本来の確率分布が正規分布では表現できない(たとえば 確率の山は1つしかなくなってしまう)ため、どうしても近似表現となります。その代わり計算は高速で す。 Particle filter 実装が 簡単 ある程 度高速 車の存在確率を大量の粒子(particle)の粗密で表現する方法です。 存在確率の高いx座標には沢山のparticleが集まって来ることで、そこに車が居る確率が高いことを 表現します。1つしか確率の山が持てないKalman filterとは違い、複数の場所に確率の山を作るこ とが可能なうえ、用いるparticleの数を調整することで、計算の正確さと計算速度の調整が可能です。 たとえば計算が荒くなることを承知で計算速度を上げたければparticleの数を少なくし、計算が遅く なったとしても、より解像度の高い計算結果が欲しければparticleの数を増やします。プログラミング が楽であることもParticle filterの特徴です。 Stanley 全面的にKalman filterを使用。 Junior 走行レーン内における左右の位置推定には1次元Histogram filterを使用。既知の地図上における自分の居 場所の推定と、他の車の位置のトラッキングにはParticle filterを使用。
  • 14. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: localization: Histogram filter  Histogram filterは、ロボットの存在確率を棒グラフのような表現で計算する方法です。 この方法は、ヒストグラム1本1本の計算が必要になり、非常に時間がかかります。 13 x 位置xに ロボットが 居る確率 x 位置xに ロボットが 居る確率 移動後の予想 センサーデータからの予想 x 位置xに ロボットが 居る確率 合成後の予想→より正確 確率の掛け算 確率の掛け算 確率の掛け算
  • 15. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: localization: Kalman filter  Kalman filterは、ロボットの存在確率を正規分布(ガウス関数)で近似して扱う方法です。 ガウス関数の性質上、確率分布の山は1つしか表現できないため、近似の方法として荒い のですが、その分、計算のパフォーマンスは非常に高いです。 14 x 位置xに ロボットが 居る確率 x 位置xに ロボットが 居る確率 ・・・(A) 移動後の予想 センサーデータからの予想 x 位置xに ロボットが 居る確率 ・・・(B) 合成後の予想→より正確 ガウス分布の合成
  • 16. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: localization: Particle filter  Particle filterは、ロボットの存在確率をparticle(粒子)の密度として表現する方法です。 ロボットの位置が、より良く推測出来ている状態では、particleは1箇所に固まって存在す る状態になります。推測が出来ない状態になると、広くバラバラに存在する状態になりま す。 15 x 位置xに ロボットが 居る確率 x 位置xに ロボットが 居る確率 ・・・(A) 移動後の予想 センサーデータからの予想(それぞれのparticleの存在確率を計算: particle filterでは「ウエイト」と呼び、そのparticleの重要性を表現する) x 位置xに ロボットが 居る確率 ・・・(B) 合成後の予想→より正確 各particleの存在確率をもとに、particleを「リサンプリング」します。 存在確率の高いparticleは子供を多く産み、存在確率の低いparticleは消滅します。 なお、このリサンプリング時に、ガウス乱数に基づいて、子供は親の近くのどこかに生成します。
  • 17. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その1: localization: 地図上のどこに自分が居るかを推定している例  以下はJuniorの論文に掲載されていた推定例です。ここでは、以下の2つの位置を推定しています。  車の左側面の位置(図中の黄色の線)  白線の位置(図中の緑色の線) この例では上記2つの情報を表示していますが、実際にはより多くの位置情報を推定します。 たとえばStanleyは 位置(3軸)、速度(3軸)、車の向き(3軸) などを推定しています。  なお、GPS情報は赤い線とエリアで示されています。この場合80cmほど右にずれています。 16 GPSの取付位置 この場合80cmほどGPS情報がずれている 車の左側面の推定位置 白線の推定位置 白い線はLIDAR による3Dデータ
  • 18. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その2: 他の車や自転車や歩行者のトラッキング  他の車や自転車や歩行者の動きをトラッキングして、衝突しないようにします。このような処理にもMarkov localization を用います。大まかな処理ステップは以下の通りです。 1. ドップラーレーダー(前方の遠距離にいる移動体向け)やLIDARを用い、障害物を検出します。 トラッキングする障害物として認識するか否かは、既知の地図に載っているか否かで判断するそうです。 2.検出した障害物1つ1つに対し、Markov localizationで位置や移動速度や移動方向の推定をします。 Juniorの場合は、Markov localizationの中でもParticle filterを用いていたそうです。別の実装では、 Kalman filter を用いたものもあるそうです。 17 https://www.youtube.com/watch?v=TsaES--OTzM 障害物1つ1つをトラッキングし、現在位置と移動方向と移動速度を推定
  • 19. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その3: 走行ルートの計画  現在位置から目的地までの走行ルートの計画方法は、カーナビが行っている事と大差ありません。ただし、カーナビより も計画の内容が細かく、前を走っている遅い車を追い越した方が良いか、走行レーンを変更したほうが良いかなどといっ た走行ルートの計画も行います。  走行ルートの決定をする際には「コスト」の小さいルートを選びます。「コスト」というのは、単純に「走行ルートの走 行距離」をコストとする事もありますし、それに加えて右折や左折が少ないルートの方が、単純に走行距離が短いルート よりコストが小さいと定義したりすることもあります。  コストが最小になる走行ルートを算出する際、GoogleCarは「A*(Aスター)」という汎用アルゴリズムを用います。 A*を用いてルート探索している様子を以下に示します。 18 車の動ける 範囲はこのように 限られている 車の動ける範囲をもとに、 動ける範囲のツリーを検索してゴールに近づく 動いた先で 次にどう動く? 参考: https://www.youtube.com/watch?v=0gk8ioVjNO4
  • 20. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その3: 走行ルートの計画: A*アルゴリズムの基本的な考え方  A*アルゴリズムは、基本的には幅優先探索の特殊なものになります。 幅優先探索を最短経路問題などに使えるようにしたものとしてbest-first searchという汎用アルゴリズムがあり、 更にbest-first searchを高速化するためにA*が考え出されました。 A*は、電車のルート検索やカーナビのルート探索など、さまざまな場面で使われています。 幅優先探索 → best-first search → A*  best-first search の基本的な挙動 → 計算済みのエリアを更に広げる際、「コスト的にbestな部分を優先的に(best-first)」展開していく方法です。 コストが同じエリアが広がっている場合、同心円状に探索エリアが広がっていってしまい、非効率です。  A*の基本的な挙動 →基本的にはbest-first searchと同じですが、目的地の方向を意識し、目的地の方へ優先的に探索エリアを 伸ばすという工夫が追加された方法です。 目的地の方へ優先的に探索エリアを伸ばすために、コストの算出時に意図的に目的地の方向へ近づく 方向のコストをわずかに安く見積もります。このような特徴的なコストの算出法をbest-first searchに適用 したものがA*の正体です。 19 目的地 目的地 現在地 現在地
  • 21. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その4: PIDコントロール  走行ラインの計画が終わった後、いよいよロボットカーはステアリングの舵角を決定したり、アクセル やブレーキを調整したりします。以降、単純化のため、ステアリングの舵角のみに焦点をあてて説明し ます。  ステアリングの舵角は、PIDコントロール(proportional-integral-derivative control)という方法で決定 します。もともとは船の自動操舵方法として発展したもののようです。 20 走りたい 走行ライン 走行ラインに戻るためには、 右に打を切ったほうが良い。 でもどのくらい切ればいいんだろう?
  • 22. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その4: PIDコントロール: Pコントロール  Pコントロールを説明するために、まずCTE(cross tracking error)の説明をします。CTEとは、走りたい走行ラ インから車がどれだけ離れているかを測定した距離情報です。走行ラインの真上をちゃんと走行している場合はCTEはゼロ です。もしも走行ラインの左を走っている場合は正の値となり、走行ラインの右を走っている場合は負の値となります。  Pコントロールの考え方は単純で、CTEに比例した量だけ右に打を切れば、走行ラインに戻る方向に打を切れるという理屈 になります。なお、PコントロールのPは比例(proportional)の意味です。  CTEがゼロの場合は打を切らない  CTEが正(走行ラインの左側)の場合はCTEが大きいほど大きく打を右に切る  CTEが負(走行ラインの右側)の場合はCTEが大きいほど大きく打を左に切る  ただ、実際にはPコントロールだけでは、走行ラインを中心に蛇行してしまいます。 あたかも走行ラインを中心に振動しているような振る舞いになります。 21 走行ラインに戻るためには、 CTEに比例した量だけ、 右に打を切ったほうが良い。=Pコントロール 走りたい走行ラインから 車がどれだけ離れているかは CTE(cross tracking error) と呼ばれます。 走りたい 走行ライン 走りたい 走行ライン CTE 走行結果 舵角 = 𝑎 ∙ CTE (aは定数)
  • 23. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その4: PIDコントロール: PDコントロール  Pコントロールだけを使うと、走行ラインを中心に蛇行してしまいます。 この蛇行を抑制するために、Dコントロールという制御を追加します。Dはderivative(微分)のDです。 Dコントロールを理解するために、まず⊿CTEを説明します。  ⊿CTEはCTEの変化量です。たとえば⊿t時間前の前回のCTEの値がCTE1で、再度CTEを測定した際の値 がCTE2だった場合、⊿CTE=CTE2 - CTE1となります。  ⊿CTE/⊿tは以下の様な意味を持ちます。  ⊿CTE/⊿tがゼロの場合、車は走行ラインと平行に走っています。  ⊿CTE/⊿tが正の場合、どんどん左にそれています。よって、それだけ打を右に切る必要があります。  ⊿CTE/⊿tが負の場合、どんどん右にそれています。よって、それだけ打を左に切る必要があります。  PDコントロールでは、この⊿CTEに比例した量だけの舵角をPコントロールに加えて補正します。そうす ると、なめらかに走行ラインに沿うようになります。 22 走りたい 走行ライン CTE1 CTE2 ⊿CTE = CTE2 - CTE1 走りたい 走行ライン 舵角 = 𝑎 ∙ CTE + 𝑏 ∙ ⊿CTE ⊿t (a, bは定数)
  • 24. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その4: PIDコントロール: PIDコントロール  完全な世界であればPDコントロールだけでもうまく機能するかもしれませんが、実際にはもう一つ解決 しなければならない問題があります。それは「機械的な狂い」です。たとえば車のホイールの取り付け 角などが若干悪く、ステアリングを切ってなくても左へ左へと曲がってしまう場合があります。このよ うな機械的な狂いがある場合、PDコントロールだけではうまく走行ラインに乗せられません。  機械的な狂いの問題を解消するため、PDコントロールに加え、Iコントロールというものを追加します。 Iはintegralの略で、積分という意味です。Iコントロールでは、移動の開始以降に測定したすべてのCTE の量を累積し、その累積量に比例した量で舵角を補正します。 23 [極端なドリフトの例] 舵角をゼロに保った状態でも ホイールの向きがもともと 曲がったりしていて、旋回してしまう。 走行ライン ドリフトがあると、走行ラインに うまく乗らない 走行ライン 正 負 舵角 = 𝑎 ∙ CTE + 𝑏 ∙ ⊿CTE ⊿t + 𝑐 ∙ CTE (a, b, cは定数) PIDコントロールによる舵角の決定 [参考] PIDコントロールの定数項a,b,cは、最適な値を見 付けるためにTwiddleという方法を用います。
  • 25. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 技術その4: PIDコントロール: Google Car のコンソール上に表示されるCTE  おまけの情報ですが、Google Car のコンソール上にはよくCTEが表示されています。 右上の方に表示があり、この場合は3cmのズレがあることが分かります。 また、CTEの下に表示されているPlanは、おそらく車の速度調整です。 速度もPIDコントロールを用いていると思われます。 24 https://www.youtube.com/watch?v=TsaES--OTzM
  • 26. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. 制御ソフトウエアのオーバービュー(再掲) 25 ライダー(LIDAR) GPS ドップラーレーダー DMI IMU センサー群 状況の把握 ローカライゼーション 既知の地図(空間)内のどこに自分 が居るかを決定 SLAM 既知の地図(空間)をセンサーデー タをもとに更新 (simultaneous lo calization and mapping) 動くものを検出 他の車やバイクや人など、動くもの を検出し、移動方向や速度を見 積もり、トラッキングする(気にし続 ける) プランニング(計画) 広域のルート計画 既知の地図をもとに、カー ナビゲーションがやっている ように、目的地に到達する ための道順を自動的に計 画する。この際、どのレーン に居たほうが良いかや、右 折と左折のどちらが簡単に 曲がれるかといった事も気 にして計画を立てる。 駐車場でのルート計画 車庫入れ的な挙動が必 要となる駐車場や狭い道 でのUターンのための行動 計画を自動立案する。 方針の決定 finite state machine (状態遷移図)によってロボ ットの行動指針を定義し、 いまやらなければならない 事を自動決定する。 https://www.youtube.com/watch?v=bDOnn0-4Nq8 Google Carが認識する世界 走行計画の実行 PIDコントロール proportional-integral-d erivative controlの略。 計画した走行ラインにそっ て車をコントロールする方 法。 計画した走行ラインにそっ て車を走行させることにも 工夫が必要で、うまく制御 出来ないと走行ラインを中 心に車が蛇行してしまった りする。
  • 27. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. おまけ:おそらく最も安く、有名な、3Dセンサー  Kinect for Xbox One や、second-generation Kinect for Windows v2は、LIDARと同じくtime-of-fli ght 方式の深度センサー(3Dセンサー)を持っています。これにより、GoogleCarと同じく、周囲の状 況を3Dデータとして把握する事が出来ます。Kinectは安価なので、これを自作ロボットの目として使う 人もいます。ロボットの目としては、CCDカメラのように2次元情報しか検出できない物を使うより、周 囲の状況と自分の位置が3次元データとして直接得られる方が都合が良いのです。 26 https://www.youtube.com/watch?v=WPDi-WAmUDc KinectをRumbaに取り付けて目にしてみたもの https://www.youtube.com/watch?v=eWmVrfjDCyw Kinectをクアドコプターの目にしてみたもの Kinect for Windows v2 sensor $199
  • 28. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. おまけ:ステレオビジョン・・・LIDAR以外の3D検出技術。安価。  人間をはじめとする多くの動物は2つの目を使って世界を3Dと認識して処理しています。このような技 術は、AIおよびコンピュータービジョンの世界では「ステレオビジョン」と呼ばれています。 有名なのは、スバルの使っているEyeSightが代表例になります。 27 https://www.youtube.com/watch?v=EYrTDMSylrU Subaru EyeSight http://news.mynavi.jp/series/computer_vision/021/ コンピュータビジョンのセカイ - 今そこにあるミライ 前方を同時に撮影する2つのカメラ(目) ステレオカメラで周囲を3Dデータとして読み取る
  • 29. ULS Copyright © 2014 UL Systems, Inc. All rights reserved. おまけ:structure from motion (SfM): 動画から3D構造を復元 28 http://openmvg.readthedocs.org/en/latest/software/SfM/SfM/ http://cg.cs.uni-bonn.de/aigaion2root/attachments/schwartz-2009-improvesfm.pdf  ステレオカメラではなく、単眼の普通のカメラ(スマートフォンのカメラでもOK)で動画 (複数の写真でもOK)を撮影し、その動画から、被写体の3D構造を復元する技術があり、 structure from motion (SfM) と呼ばれています。  最近の利用例としては、NHKが土砂災害の情報を伝えるために、ヘリコプターで災害現場 をビデオ撮影し、その動画から、structure from motionを用いて現場の3D構造を復元し て用いた例があります。  また、structure from motionによって3D空間を算出した後、カメラの動きをスムージン グすることで、手ブレを抑えた動画に再編集するHyperlapseという技術も開発されていま す。(http://japanese.engadget.com/2014/08/12/hyperlapse-ms/?ncid=rss_truncated)