-
Title:
05x-01 Office Hours Week 4
-
Description:
-
こんにちは 第4回オフィスアワーへようこそ
-
フォーラムではいい議論と質問が
いろいろありました
-
まずマイトゥールの質問から紹介します
-
前回のオフィスアワーでは講義終了時に
課題プロジェクトを出す話がありましたが
-
実際にロボットカーは作りますか?
-
実は最終講義を撮り終えたばかりで
-
車のシミュレーションのまとめに
多くの時間を割きました
-
しかし残念ながら実際の車ではありません
-
内容をすべてまとめるには丸一日かかりました
-
表面上はすべての要素をうまく組み合わせますが
-
プランナが作り出すものとコントローラが
必要とするものが違うことに気づきます
-
実はパラメータを調整することが難題でしたが
-
最終講義では先に環境を与えて車をAからBまで
運転させる問題を解いてもらいます
-
実際に現場で試してもらってもかまいません
-
講義が進むにつれ
私の実装のほとんどをお教えしますので
-
それが動作するように細部を入力してください
-
残念ながら本物の車を
皆さんに提供することはできませんが
-
最終の例題からも分かるように
講義してきたのは中核となる方法です
-
方向性は与えてくれますが
実際の運転に十分な方法ではありません
-
この講義の内容をさらに深めていけば
よりスムーズで簡潔に実現できるでしょう
-
タングルドの質問です レッスン4ー14で車の
クラクションの話題が出ましたが
-
ジュニアはクラクションを聞き分けられますか?
-
またマイクロホンセンサにより音の影響を受けたり
自動でクラクションを鳴らしたりしますか?
-
ジュニアはどちらもできません
-
自信を持って安全に運転するにはクラクションが
必要だという国や地域もあります
-
しかし私たちは音声通信を
実験に取り入れないことに決めました
-
次はジョージからの質問です
十分な計算能力があるなら
-
何度も再計画することが可能ですが
-
A*は静的で決定論的な世界を仮定します
-
A*を使用する際に陥りやすい点はありますか?
-
またその代わりとなるアルゴリズムは何ですか?
-
非常に深くて すばらしい質問です
-
私はその研究に何年も捧げましたし
-
何人もの博士課程の学生に
その主題で学位を与えました
-
A*は計画のすばらしさを体験できますが
未解決の問題点も多くあります
-
たとえばコイン投げをして
両方の結果を追求するような
-
分岐結果には対応できないのです
-
情報収集にも対応できません
-
計画においてやるべきことは
不確実性を減らすためにある動作を取ることです
-
たとえば食料品店に行く時
お金があるか分からないとします
-
私は財布があるか確認するでしょう
-
この確認動作はポケットに財布があるという情報を
もたらす以外に影響はありません
-
そして今のところA*では
このようなことはまったくできません
-
私が以前に話したダイナミック・プログラミングは
-
実際に複数の結果を追求して
まとめることができます
-
計算上では低効率なので
全状態空間を確認する必要があります
-
ユニバーサル計画を書いたことは
-
すべての可能な組み合わせを
追求する上での副産物でした
-
状態空間が拡大すると
ダイナミック・プログラミングはスケールしません
-
これも大きな未解決問題です
-
さてGoogleマップなどを使うと
二点間の経路計画を即座に作成できます
-
Googleが行っていたのは主な代替案を
事前にキャッシュに格納することです
-
計画問題で最短経路を見つけることは
テーブルを参照することです
-
実に最適な方法で行われました
-
経路計画において最適であることを証明できます
-
これはA*をはるかに超えたすばらしい成果です
-
計画分野は講座で触れた内容より
さらに面白いので皆さんに興味を持ってほしいです
-
私たちがA*を使い現在の環境でいかに
再計画に取り組んだかというと
-
非常に早く計画を行いました
-
高速のA*バージョンがありましたので
-
新しいものがあれば
再計画を行うだけでよかったのです
-
ダイナミック・プログラミングについて
触れましたが
-
ジュニアの計画ポリシーの大きさは?
という関連した質問がありました
-
ジュニアやGoogle自動運転車の場合は
あまり計画を行いません
-
基本的に車両そのものの視覚地平線以内の
計画を行ないます
-
ここからパリへの経路や
どの道路を使うかの問題には取り組みません
-
Googleマップで解決済みと仮定しています
-
すべての自動運転において固定進路を仮定し
詳細が決まれば
-
計画はすべて
ロボットの視覚範囲内で行われます
-
一般的な三次元状態空間でxとyと方向です
-
また一部の実験には速度を状態変数として使います
-
状況の改善や速度を上げるために
少し回り道をしたくなるかもしれません
-
ですが比較的 低次元空間です
-
コストのかかる左折について
もう1点質問があります
-
動作のコストは動的変数として
-
絶えず更新されていますか?
それとも固定ですか?
-
動作のコストに取り組む方法として
全体像を見ます
-
たとえばAからB地点までのコストを調べて
局所像へ戻ります
-
この局所像変数は
今この時点で車を考慮するためで
-
逆に全体像では静止した世界を仮定します
-
そして左折用に固定のコストを作ります
-
局所像では局所的に展開しA*と
相違のない局所先読み計画もします
-
そして左折の想定したコストを
実際のコストで置き換えます
-
時には車線変更を計画しても
違う動作をする場合がありますが
-
その時点でのコストが高すぎるからです
-
車線が空くまで遅い車の後ろについて
我慢する方を選びます
-
2つの計画レベルの間に相互作用があります
-
次は多目的環境とは?という質問です
-
多目的環境の分かりやすい例は
駐車場で空いている場所に駐車する場合です
-
いい問題ですし明確な答えがあるので
皆さんに課題として出すべきでした
-
A*において確かに多目的状態を
ゴール状態として指定することができます
-
ただヒューリスティック関数が許容できるかを
確かめなければいけません
-
いずれかのゴール状態への距離を
低く見積もるか
-
または正しく見積もった値が必要です
-
ダイナミック・プログラミングも同様に
-
多目的状態が可能で
定式化において何の問題もありません
-
ヒューリスティック関数についても質問があります
-
皆さんが知りたいと思っているのは
-
選択するヒューリスティック関数によっては
A*は早くなるのですが
-
アルゴリズムで推定するのか
それとも直感や試行錯誤で行われるのか
-
どうやって決めるのですか?
-
すばらしい質問ですね 実に深い問題です
-
車の領域では実際に
ヒューリスティック関数を計算し
-
2つのヒューリスティック関数を重ね合わせます
-
両者とも問題の要点に取り組みますが
より簡単に計算できます
-
障害がある環境があるとしましょう
-
計画空間がx、y、方向といった
三次元だとします
-
ヒューリスティックを働かせる1つの方法は
回転自由度を無視して
-
あらゆる方向へ車輪を移動できると仮定します
-
当然ながらロボットを
あらゆる方向へ移動することは
-
フィルタや車で制約されるよりも簡単です
-
今は二次元問題になり
三次元から二次元へ行くことによって
-
問題全体を即座に解決できます
-
二次元で計画し二次元計画の結果を
-
三次元プランナで
ヒューリスティック関数として使います
-
二次元のほうが三次元計画より
はるかに早いので成功します
-
車の物理的制約条件を無視することにより
-
どんな時でもあらゆる方向へ移動できる
単純な車モデルを選びます
-
2つ目のヒューリスティック関数は
障害のない三次元の問題についてです
-
x、y、方向という三次元空間で
回転制約がある三次元ロボットの
-
ゴール位置への最適動作を
事前に計画できます
-
1回行えばその値は永遠に正解で障害はありません
-
つまりある目標方向を得るために時には
-
ある回転が何が何でも必要で
障害はそれをさらに悪化させます
-
障害なしヒューリスティック関数を計算すれば
-
過小評価に至り障害があると悪化しますが
許容できるヒューリスティック関数です
-
これらの2つのヒューリスティック関数を
A*に投入すれば
-
実際に10から100倍プランナを加速します
-
とても面白いですね
-
今のは例として挙げただけです
-
すぐに実装しなくてかまいません
質問がいかに深いかということです
-
制約を減らし近道をして問題を解決する
よい方法を考えることができれば
-
A*において
よいヒューリスティック関数になるはずです
-
今回はいい質問が多く寄せられました
また次回も期待しています
-
ではレッスン5と6の概要をお願いします
-
その前に皆さんからの質問に感謝します
-
質問の深さや内容の理解をうれしく思いました
-
すばらしいことです
-
いつ自動運転車を買えますか?という質問より
うれしい疑問が多く寄せられました
-
講義の内容は本当に奥が深いと思います
-
そして皆さんにはさらに深く応用できるように
なってほしいと考えています
-
ですからどんどん質問をしてください
-
レッスン5と6では制御について学びます
-
制御というのは
抽象的で離散的なブツ切りのコースを
-
実際の運転動作へ変える技術です
-
運転や時間と同様に制御も連続性があります
-
つまり離散世界から離れて連続的世界を学ぶのです
-
レッスン6ではすべてをまとめます
-
そして私も手伝いながら
ロボットカーをプログラミングし
-
同時に位置推定や
経路計画や制御を行います
-
できればシミュレートした車で
実際の軌道を出力します
-
生徒の皆さんも楽しみにしていると思います
-
また講義でお会いしましょう