移動ロボットのナビゲーション
千葉工業大学 上田隆一
2021年1月24日 RSJロボット工学セミナー
移動ロボットのナビゲーション
• ロボットがある地点から
ある地点まで移動するための技術
• 荷物を各家庭の玄関へ届ける
• 掃除(スイープ)
• 自動運転
• 移動ロボットの最重要機能
• どんなプログラミング方法がある?
• 理論的な背景は?
2021年1月24日 RSJロボット工学セミナー 2
(今回は道中の移動障害物の回避は扱わず、遠いところにどこを通ってどう行くかという問題を扱います。)
ゴール
ナビゲーション機能のプログラミング
• 様々
• 用途や難易度で違い
• これからの話
• 簡単な方法から順に説明
• 簡単: 数学的に簡単なものから、という意味
• 数学的に難しいもののほうが結果としては簡単
2021年1月24日 RSJロボット工学セミナー 3
ハンドコーディングによる
実装
初心者向けの基本的な方法。しかし意外に難しい。
2021年1月24日 RSJロボット工学セミナー 4
タートルグラフィクス
• 移動の手続きを順に並べる
• 教育用
• 最も簡単なナビゲーションの実装
2021年1月24日 RSJロボット工学セミナー 5
これでいいんじゃないの?
(どんな限界があるでしょうか?説明できるでしょうか?)
実世界でのタートルグラフィクス
• 距離がのびるほどうまくいかない
• 理由
• 床ですべる。ごみを踏む。
必ずある左右の偏り・・・
• 人がロボットをまっすぐ正確に置けない
• 数度ずれる
2021年1月24日 RSJロボット工学セミナー 6
「廊下をまっすぐ走れ」(無理!)
ずれをどう修正するか?
→ センサが必要
センサフィードバック
• ロボットに「ずれている」という
感覚を持たせる
• ずれをなくすように調整しながら移動
• 壁など基準となる目標物の
距離を測りながら進む
• 問題
• ゴールを目指すためには基準の切り替えが必要
• 例: 左の壁沿い→交差点を右折→右の壁沿い・・・
• 切り替え処理の実装が大変難しい(研究者でも無理)
2021年1月24日 RSJロボット工学セミナー 7
「壁」という基準に対して
まっすぐ走行
「左手法」というアルゴリズムで
動くマウス
結局なんでこんなに難しいんだろう?
• 正解を続けなければならない
• 交差点が10個あれば10回正しく曲がらないと目的地に着かない
• 「AIが〇〇の種類を90%で識別できました!!AIすごいですね!! AIが!! AI
が!! AIが!! AIが!! AIが!! AIが!! AIが!! 」より相当難しい
• 正答率90%なら10回連続で当てる確率は35%
• 人工知能とかAIとかうるせーよほんとに
• 交差点に達したことのチェックも難しい
• 信号があって、三叉路で、・・・
• どうするか
• 見えるものに対していちいちif文を書かず、情報を座標に統合する。
2021年1月24日 RSJロボット工学セミナー 8
自己位置とサブゴールの利用
モノから座標へ
2021年1月24日 RSJロボット工学セミナー 9
世界座標系と自己位置推定の導入
• ロボットが移動する平面(あるいは空間)に座標系を設定
• ロボットの位置と向き(あわせて「姿勢」)を(𝑥, 𝑦, θ)で表現
• 姿勢を「自己位置推定」で求める
• 今日はこの話はナシ。人の作ったものに乗っかる。
• ゴールも座標(𝑥G, 𝑦G)で表現
• ロボットの移動の手続きを次のように考える
• サブゴールを空間に設置
• サブゴールにある程度近づいたら
次のサブゴールを目指す
2021年1月24日 RSJロボット工学セミナー 10
𝑥
𝑦
θ
(𝑥G, 𝑦G)
(𝑥, 𝑦)
「交差点」や「標識」などのモノではなく、座標だけに集中
ウェイポイントナビゲーション
• 現在よく用いられている方法
• スタート位置とゴール位置の
間にサブゴール
(ウェイポイント)を設置
• ウェイポイントの間隔は障害物がなく
簡単な制御で移動できる程度
2021年1月24日 RSJロボット工学セミナー 11
最も単純なウェイポイントナビゲーション
(数センチごとにウェイポイント設置)
ROSのツール(Rviz)などで手動で設置
画像: 池邉龍宏氏提供
これができれば移動ロボットの
大会には出られる(手動だけど)
ウェイポイント(のようなもの)を自動で置く
• Rapidly-Exploring Random Tree
(RRT)[LaValle 1998]
• ロボットが通れるところに枝を
伸ばしてゴールまでの経路を探索
• 右図: AtsushiSakai/PythonRobotics
のRRTのコードから生成
• ○高次元で有利
• マニピュレータの動作生成に用いられる
• 移動ロボットの場合は効果は限定的
• ×経路が折れ曲がる
• ×きわどい経路ができる
2021年1月24日 RSJロボット工学セミナー 12
スタート
ゴ
ー
ル
障
害
物
SLAM・自己位置ベースの教示再生
• もう一つの「自動」
• ロボットに地図生成させながらウェイポイントを置いていく
2021年1月24日 RSJロボット工学セミナー 13
本パートのまとめ(これで十分??)
• ウェイポイントナビゲーション
• 機能する自己位置推定、そこそこ正確な地図、腕の良い「ウェイポイ
ント職人」がいれば、平坦な環境ならナビゲーション可能
• RRTなどで自動化も可能
• 問題: できた経路が走りやすいことを保証するのは大変
• 問題が抽象化されすぎ
• ウェイポイント間はどう制御する?
2021年1月24日 RSJロボット工学セミナー 14
コストの考慮と探索手法
合理的な経路を自動で見つける
2021年1月24日 RSJロボット工学セミナー 15
最短経路の選択
• さらに効率よく、自律性を高めたい
• RRTより短い経路を見つけたい
• どの経路(サブゴール)を通るか
自分で計算してほしい
• 必要な手続き、計算
• グラフや格子でサブゴールや経路を表現
• あるサブゴールからゴールまでの
コスト(距離、時間、危険性)を計算
• 計算には時間がかかるので、効率のよい手順
(アルゴリズム)が研究されてきた
2021年1月24日 RSJロボット工学セミナー 16
G
S
3
3
2
2
2
2
3
3
G
S
グラフ表現(駅と路線のようなもの)
格子表現
ダイクストラ法[Dijkstra1959]
• ゴールから後ろ向きに距離を確定していく
2021年1月24日 RSJロボット工学セミナー 17
ゴールの手前のサブゴールのコストを計算
(最小の2となったノードはコスト確定)
G
G
S
3
2
3
3
2
2
2
2
3
3
S
3
2
5
4
3
3
2
2
2
2
3
3
コストが確定しているサブゴールに
隣接しているサブゴールのコスト計算
(最小の3になったノードはコスト確定)
ダイクストラ法(続き)
2021年1月24日 RSJロボット工学セミナー 18
G
7
3
2
5
4
3
3
2
2
2
2
3
3
さらにサブゴールのコストを計算
(複数の経路がある場合はコスト最小のものを選択)
(ここでは4のサブゴールのコストが確定)
G
7
3
2
5
4
3
3
2
2
2
2
3
3
コスト確定後、移動コストとサブゴールの
コストが釣り合う経路が最短経路に
他の探索手法
• A*探索
• 探索の順番を「ヒューリスティック関数」で操作
• ヒューリスティック関数: サブゴールからゴールまでの直線距離など
• ベルマン-フォード法
• コストが負でも大丈夫
• 用途に応じて選択される
• ロボット以外の用途: インターネットのルーティング、
鉄道の乗り換え、将棋、囲碁、チェス・・・
2021年1月24日 RSJロボット工学セミナー 19
探索手法のまとめ
• 長所
• 複数ある候補から最良の経路を求められる
• 計算が必要だがうまく探索すると計算量をおさえることができる
• うまく使うとロボットが移動中に経路を変更可能
• 問題
• ハマるといつまでたっても計算が終わらない
• できた経路が走りやすいことを保証するのは大変
• 問題が抽象化されすぎ(特にグラフ表現の場合)
• ロボットの動きが不自然に
• 飛ばしてもいいようなサブゴールに無理に到達しようとする
2021年1月24日 RSJロボット工学セミナー 20
ポテンシャル場の利用
なめらかな経路生成
2021年1月24日 RSJロボット工学セミナー 21
連続空間での動作生成
• ナビゲーション: 物理の問題と考える
• 「𝒙 = (𝑥, 𝑦, θ)を𝒙G = (𝑥G, 𝑦G)に近づける問題」
• 磁石や重力のように𝒙Gに𝒙を吸い付ければよい
• ポテンシャル場と力の関係
• 利点
• サブゴールという考えがなくなる
• 動きなめらか
• すこしロボットの動きに偏りがあっても
それなりの経路でゴールに向かえる
• ロボットの姿勢がずれたらそこを起点にスタートできる
• 問題
• どうやって実現するの??
2021年1月24日 RSJロボット工学セミナー 22
𝒙
𝒙G
?
人工ポテンシャル法
• 80年代に考案された方法
([Latombe 1991]などの教科書に記述)
• 世界座標系(空間)に、ゴールが底に
なるようなポテンシャル場を設置
• ヒューリスティック
• ロボットをポテンシャルが
落ちるように速度(下式の𝒗)を決定
2021年1月24日 RSJロボット工学セミナー 23
障害物
𝒗 = −α
𝜕𝑓
𝜕𝒙
1
2
3
4
𝑓
5
𝒗
これでOK?問題は?
ローカルミニマムの問題
•
𝜕𝑓
𝜕𝒙
がゴール以外で0になるとロボットが停止
• 0になる点: 停留点、ローカルミニマムと呼ばれる
• 人工ポテンシャル法でこれをなくすのは難しい
• 障害物が多いとポテンシャルの谷が入りくむ
2021年1月24日 RSJロボット工学セミナー 24
1
2
3
4
5
谷底
停留点のないポテンシャル関数とは
どのようなものか?
最適状態価値関数
• 各点𝒙に対し、ゴールまでのコストが正確に計算されたもの
• 𝑉∗(𝒙)と表記( 𝒙に対してコストを与える)
• 𝑉∗(𝒙)が正確な場合、どこに移動してもコストが
減らないということは理論的にない
• ロボットが最良の方法で移動した場合、
移動のためのコストと𝑉∗(𝒙)の減少が釣り合う
• その他の行動: 𝑉∗(𝒙)の減少のほうが小さくなる
• エネルギーと力の向きの関係と同じ
2021年1月24日 RSJロボット工学セミナー 25
1
2
3
1
ありえない
実例で詳しく(次のページ)
移動のコストと𝑉∗のつり合い
• ダイクストラ法の例は、実は𝑉∗
を求めていた
• サブゴールの数値: 𝑉∗
• 最良な移動のコストと釣り合っている
• スタート以外のサブゴールからゴールに向かう
経路にもつり合いが見られる
• つり合いに従う移動は「最適」
• 𝝅∗ 𝒙 と表記
• 最適方策と呼ばれる
• 姿勢(サブゴール)に対して
とるべき行動を返す関数
2021年1月24日 RSJロボット工学セミナー 26
G
7
3
2
5
4
3
3
2
2
2
2
3
3
ここまでのまとめ
• 人工ポテンシャル法
• サブゴールなど関係なく任意の姿勢に対して行動を返す
• 𝑉∗をヒューリスティックで設定する方法
• ローカルミニマムの問題
• 探索手法は𝑉∗
と𝝅∗
を暗に部分的に計算
• 𝝅∗が得られれば、ロボットはどこからでもゴールに向かえる
• ただし、
• 計算は途中で打ち切り
• 離散化が伴う
• フィードバックに関する
考慮がされていない
2021年1月24日 RSJロボット工学セミナー 27
探索とポテンシャル法は違うもの
に見えて同じことをしている。
→さらに問題を整理しましょう。
最適制御とナビゲーション
ナビゲーションは制御
2021年1月24日 RSJロボット工学セミナー 28
問題を整理
• 𝑉∗を解くための式を考える
• 𝑉∗
𝒙 = min
𝒖
{𝑉∗
𝒙 + 𝒖Δ𝑡 + 𝑐(𝒖, 𝒙, 𝒙 + 𝒖Δ𝑡)Δ𝑡}を満たす𝑉∗
• Δ𝑡: 微小時間
• 𝑐: コストの関数
• 𝒙′ = 𝒙 + 𝒖Δ𝑡 として整理(𝑐は再定義)
• 𝑉∗ 𝒙 = min
𝒖
{𝑉∗ 𝒙′ + 𝑐(𝒖, 𝒙, 𝒙′)}
• さらに、 𝒖には雑音が乗る( 𝒙′
は毎回同じにならない)ことを考慮
• 𝑉∗ 𝒙 = min
𝒖
{𝑉∗ 𝒙′ 𝑝 𝒙′|𝒖, 𝒙 + 𝑐(𝒖, 𝒙, 𝒙′)𝑝 𝒙′|𝒖, 𝒙 } 𝒅𝒙′
= min
𝒖
< 𝑉∗
𝒙′
+ 𝑐(𝒖, 𝒙, 𝒙′
) >𝑝 𝒙′|𝒖,𝒙
• 𝑉∗
𝒙 はコストの期待値
2021年1月24日 RSJロボット工学セミナー 29
これを満たす𝑉∗
を求める。→最適制御問題
(でも、難しすぎやしないか?)
ここまで考えるとなにがよいか
• 俯瞰できる
• ナビゲーション: 各工程のコストを最小にして仕事を終わらす問題
• 𝝅∗が究極の行動則で、あとは近似
• 適切に手法を選べる
• ナビゲーション以外の問題も解ける
• 結局、グラフや格子に離散化して解くことになるが、
その際に、間違って別のサブゴールや格子に行くことも考慮可能
• きわどい行動をとらせないことが可能
• 格子を細かく切ればなめらかな行動が可能
2021年1月24日 RSJロボット工学セミナー 30
𝑉∗, 𝝅∗の解き方
• これまでの方法
• あらゆる方法は𝝅∗
を近似的に解いている
• 愚直にやるなら価値反復
• 詳解確率ロボティクスに記述
• 現在、ROSで使えるようにパッケージ作成中
• 強化学習
• ロボットの動きがモデル化できないときに有効
2021年1月24日 RSJロボット工学セミナー 31
大学の上田居室で計算した
状態価値関数
ゴール
ここからが面白いのですが、本日はここまで(すみません!)
ここまでのまとめ
• ハンドコーディングから最適制御までナビゲーションの
手法をおさらい
• 最適制御からハンドコーディングを眺めると面白い
• 人間がロボットに方策を与えている
• 動作の切り替え時にローカルミニマムが生じることが多い
• いろんな方法があるが、やっていることは最適制御
• 解いている問題を理解しないと、
新しい手法が出るたびに右往左往して効率が悪い
• しかし、ほんとに最適制御だけでナビゲーションは
語れるのだろうか?
2021年1月24日 RSJロボット工学セミナー 32
end-to-end学習
ナビゲーションは最適制御だと言ったけど、それは半分嘘。
2021年1月24日 RSJロボット工学セミナー 33
座標系を定義することに対する批判
• 「人間や動物は座標なんか使ってない」
• 人間は交差点を曲がるタイミングを(ほぼ)間違えない
• 多くの研究者が人間や動物のような方法を模索
• 1990年~2000年ごろはたくさん試みがあった
• キーワード: 人工ニューラルネットワーク、認知ロボティクス
• 2000年台後半に「深層学習」で復活
• 注意: 実は座標を使っているとも言える
• 海馬やその周辺に座標のようなものを認識する細胞が存在
• 2014年ノーベル生理学・医学賞
2021年1月24日 RSJロボット工学セミナー 34
この議論がナビゲーション研究の最重要テーマ
end-to-end学習
• ロボットに画像などの情報を入力したら
アクチュエータの動きが出力される
• 入出力間を人工ニューラルネットワークなどで学習
• 座標を使う制御系と比べて
入力の次元が多い
• 従来の制御とは明らかに異質
• 従来扱われてきた問題の枠組みを超える
2021年1月24日 RSJロボット工学セミナー 35
画像と行動を結び付け
(ビデオ: 千葉工大林原研の岡田眞也さん提供)
本日のまとめ
• ハンドコーディングから最適制御までナビゲーションの
手法をおさらい・・・したあとにend-to-end学習の話
• 最適制御だけだと実世界の膨大な変数を扱えない
• 人間レベルのナビゲーションを実現するためには?
• 自己位置推定が全然できないなかで移動する(上田の研究テーマ)
• 未知の領域を移動する(探査の問題)
• 人の流れにとりあえずついていく
• 電車に乗って旅をする
• 途中で疲れて帰る
• ・・・
2021年1月24日 RSJロボット工学セミナー 36
SLAMや自己位置推定だけでなく、
ぜひこちらにも興味を!

移動ロボットのナビゲーション