連載
» 2015年07月03日 05時00分 UPDATE

Google Carの自動運転技術大解剖(2):自動車を制御するロボットの思考と行動の仕組み――Google Carが現実世界を認識する際の3つのアルゴリズムと実用化への課題 (1/3)

本連載では、公開情報を基に主にソフトウエア(AI、アルゴリズム)の観点でGoogle Carの仕組みを解説していきます。今回は、制御AIの思考と行動のサイクル、位置推定の考え方「Markov Localization」における3つのアルゴリズムと、その使い分け、現実世界の認識における課題などについて。

[近棟稔,ウルシステムズ]

Google Carの人工知能(AI)は何を考えているのか

「Google Carの自動運転技術大解剖」のインデックス

連載目次

 グーグルが開発した自動運転車(以下、Google Car)の仕組みについて、公開情報を基に、主にソフトウエア(AI、アルゴリズム)の観点で解説していく本連載。前回の「あなたの知らない自動運転技術の歴史とGoogle Carの自動運転に使用するセンサーの基礎知識」では、自動運転技術の歴史を概説し、Google Carの自動運転に使用するセンサーについても説明しました。

 今回は、Google Carを制御するためのロボット(AI、人工知能)の思考と行動のサイクル、ロボットによる制御の難しさ、Google Carにおける解決方法、位置推定の考え方「Markov Localization」における3つのアルゴリズムと、その使い分け、現実世界の認識における課題について説明します。

googlecar1_6.jpg Google Carのセンサー(動画「A First Drive - Google Self-Driving Car Project」より引用した画像を加工)(前回記事の再掲)
googlecar1_8.jpg 制御ソフトウエアの概要(前回記事の再掲)

ロボットの思考と行動のサイクル

 一般的に、ロボットの制御は下の図のようなサイクルを高速に回すことによって制御します。Google Carに関しても例外ではなく、このような制御サイクルを回しています。

googlecar2_1.jpg ロボットの思考と行動のサイクル

【1】状況の把握

 制御サイクルを順を追って説明すると、まずロボットは「状況の把握」を行います。Google Carは、「状況の把握」のためにはセンサーを用いて、以下のような情報を把握します。

  • 周囲の静的な道路情報や地図情報
  • 地図上のどこに自分が居るのか(緯度、経度、高度)
  • どの車線に居るのか
  • 車の移動速度
  • 車の移動方向(X、Y、Z軸の3軸)
  • 車の加速度(X、Y、Z軸の3軸)
  • 車の角速度(ロール、ピッチ、ヨーの3軸)
  • 他の車や自転車や歩行者、障害物の現在位置、移動方向、移動スピード
  • 信号の状態

 これらの情報は、Google Carが現在認識している世界を構成する情報です。Google Carが認識している世界というのは、ドライビングシミュレーションゲームの世界に非常に似ています。3Dの世界があり、周囲に道路が伸びていて、その世界における自車や他車、歩行者それぞれの位置・移動方向・スピードが把握されています。

 Google Carは、このドライビングシミュレーションゲームに似た仮想世界が、現実世界と合致していることを前提に走行します。「Google Carは現実世界を非常にうまくコンピューター内に再現した仮想世界を走る」と言ってもいいかもしれません。

 これは少し奇妙に感じられるかもしれませんが、私たち人間にも当てはまることです。私たち人間の脳も、実際には視覚などの感覚器から脳に情報を取り込み、脳内で現実世界を仮想的に捉えています。その意味で、Google Carがやっていることは人間がやっていることと同じです。なお、このようにロボットが認識する仮想世界は、「モデル」とも呼ばれます。

googlecar2_2.jpg Google Carが認識する仮想世界(障害物一つ一つをトラッキングし、現在位置と移動方向と移動速度を推定)(動画「A Ride in the Google Self Driving Car」より引用)

【2】行動計画の立案

 いったん、現実世界を非常にうまく再現した仮想世界が作られると、Google Carは次にこの仮想世界の中でロボットによる「行動計画の立案」を行います。具体的に行うことは主に以下のようなことです。

  • 目的地までの経路の決定(カーナビのルート検索のようなもの)
  • 他の車や歩行者などの障害物の状況を基にした、詳細な走行ラインの決定
  • 車速の決定

 特に「走行ライン」は重要です。ここで言う「走行ライン」とは、「Google Carが仮想世界の中のどの座標を通っていくか」を表現した情報であり、仮想世界の中の地上に引かれた一本の線で表現されます。Google Carは、実際にこの走行ラインに沿って走ることになります。

 「行動計画の立案」はコンピューターが得意とする分野です。経路を自動検索するような技術は、カーナビゲーションシステムが日常的に行っていることから、可能であることが分かると思います。走行ラインの決定や、車速の決定に関しても、簡単なものであればドライビングシミュレーションゲームで見掛ける機会があります。例えば、コンピューターによって操られている車が、人が操っている車を上手に避けて走るのを見たことがあるのではないでしょうか。

 Google Carの行動計画アルゴリズムはゲームより高度ですが、基礎となっている技術は、1990年代のゲームに使われている前から存在するものです。

【3】計画した動作を実行

 走行ラインや車速などの行動計画が決まると、Google Carはその計画を実行に移します。計画を実行するためには、ステアリングの角度を何度にするかや、アクセルやブレーキをどのように調整するかを具体的に決める必要があります。つまり、行動計画を実現するための物理的なアクション量を算出します。

 このためには、連載の後半で説明する予定の「PIDコントロール」という方式を用います。ステアリングの角度などが決まったら、Google Carは実際にアクチュエーターを動かし、実際の動作を行います。

 この際、動作は仮想世界と現実世界の両方で実行します。仮想世界でも行動を実行しておく理由は、「現実世界では、こうなるだろうな」ということを物理シミュレーションし、仮想世界の状態を現実世界にあらかじめ近づけておくためです。つまり、いったん仮想世界を作り上げた後、Google Carはセンサーだけでなく、仮想世界の情報も組み合わせて、現実世界での位置や周囲の状況を把握するのです。

行動をした後は、再び「状況の把握」へ

 以上が大まかな制御サイクルです。行動をした後は、再びセンサーを使って外界を認識し直し、再度「状況の把握」を行います。

 なおGoogle Carは、このような制御サイクルを0.1秒サイクルで行っています。

ロボット(AI)による「状況の把握」の難しさ

 前述の制御サイクルのうち、ロボットによる制御を難しくしているのは「状況の把握」の部分です。

 ロボットは、現実世界を非常にうまく再現した仮想世界を元に行動計画の立案や、行動計画に基づいた行動を起こします。そのため、うまくロボットを制御するためには、この仮想世界が現実世界を本当に反映しきれていることが大前提となります。

 しかしながら、この「状況の把握」というタスクはAI研究の中でも難しいもので、現在でも十分に技術が洗練されているとは言い難い領域です。ロボットの挙動としてよく見掛ける、「慎重に慎重を重ねて動く」ロボットは、この状況の把握を時間をかけて一生懸命行っているのです。しかし、技術が洗練されていないばかりに現実世界を見誤り、簡単に制御に失敗してしまいます。

 なぜ状況の把握は難しいのでしょうか? それは、現実世界と仮想世界をつなぐ部分に必ず不確実性が伴うためです。

 まず、センサーを用いて現実世界をスキャンする際には必ず測定誤差が入り込みます。例えば、GPSの読み取りデータに1m以上の測定誤差が入り込むことは頻繁に発生します。

 また、ロボットが行動を起こす際にも不確実性が入り込みます。例えば、1m前進しようとしても、何センチかは1mに届かなかったり、逆に1mをオーバーしてしまったりするでしょう。現実世界は仮想世界ほど完璧に状況を捉えられる世界ではないのです。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。