確率ロボティクス2016第1回
Tue Sep 6 17:34:48 JST 2016 (modified: Fri Nov 29 17:27:30 JST 2019)
views: 1419, keywords:
確率ロボティクス
第1回
上田 隆一
2016年9月21日@千葉工業大学
今日の内容
- 動機付け(なんでこの講義があるのか)
- 定式化
移動ロボットの ナビゲーション
- ナビゲーション: 航海術
- その昔、課題となったこと
- どこにいるか知りたい
- 正確な地図を知りたい
- 安全で短い経路が知りたい
遭難したらおしまい
By George Grie - 投稿者自身による作品, [1], CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=3298445
ナビゲーション技術
- 自己位置推定
- SLAM(simultaneous localization and mapping)
- 目的地までの経路探索
最近(ここ20年)の考え方
- 確率論(ベイズ推論)の導入
- 自身の分かっていること/分かっていないことを 確率分布で表現
- センサが良くなるまでのつなぎ扱いになることも
確率分布の記述
- ガウス分布
- カルマンフィルタ(1960年〜)
- 格子地図
- 状態空間を切って格子一つ一つに確率を記述
- パーティクルフィルタ
- 確率分布から標本抽出した標本の分布で記述
よく使われるアルゴリズム
- こちらが詳しいです
- Monte Carlo Locaization(MCL)
- FastSLAM
- MCLのパーティクルに地図を持たせたもの
- graph-based SLAM
- 精度行列(情報行列)に移動履歴やセンサでの 観測履歴を登録し、後で最も精度行列を操作して ロボットの経路と地図を得る
- visual SLAM
- 画像の重ね合わせ
- 画像どうしの相対姿勢からカメラの経路を推定 (visual odometry)
講義の内容
- 第1回: 確率ロボティクスとは(今回)
- 後半、理論の話をします
- 第2回: デッドレコニング
- 第3回: センサ計測をパーティクルの分布に反映させる方法
- 第4回: センサ情報処理の実装
- 第5回: リサンプリング、リセット
- 第6回: マルコフ決定過程
- 第7回: 価値反復
- 第8回: 強化学習
- 第9回: POMDP
- 第10回: POMDPに対する実装の例
- 第11回: SLAM
- 第12回: オンラインSLAM
- 第13回: オフラインSLAM
- 第14回: 課題についての議論と解説
- 第15回: まとめ
進め方
- 式を説明して練習問題を解くような形式で進める予定
- 古典的、基礎的なところを重視
- 講師の個人的な事情もあり・・・
テスト・レポート等
- 課題は2回
- 各20点(+α)
- テストは1回
- 60点
- 出席
- 遅刻、早退は0.5回とカウント
参考図書
- Thrun et al.: Probabilistic ROBOTICS, MIT press, 2005.
- Bishop: Pattern Recognition and Machine Learning, Springer, 2006.
さっそく始めましょう
- まずは「状態」について考えます
ロボットの問題を一般的に表す
- ロボットの研究によくある登場人物
- ロボット、環境、障害物(動くもの、動かないもの)、人・・・
- どうやって数式で表すか?
- ポイント
- 物理法則に支配されている
- ただ、ロボットは自分の判断で状況を変えることができる
- ロボットの体は環境の一部か否か
- 「判断する何か」から見たら環境の一部
世界の表現
- とりあえず「判断する何か」はおいておき、目の前に存在する世界を表現しましょう
- 表現できないとプログラムも書けない
- ロボットでよく使われる表現
- コンフィグレーション空間
- ロボットアーム等の関節各の組み合わせでロボットの姿勢を表現
- タイルワールド
- 将棋のマス目のように環境を分割
- 状態空間
- 制御で使われる
- コンフィグレーション空間
状態空間と状態
- 状態空間
- 制御中の全局面(状態)の集合で構成
- [latex]\\mathcal{X}[/latex]で表しましょう
- 状態の一般的な表現
- n個の状態変数で表現
- 状態空間との関係性: [latex]\\boldsymbol{x} \\in \\mathcal{X} [/latex]
- [latex]\\boldsymbol{x} = (x_1,x_2,x_3,\\dots,x_n)[/latex]
状態を定義してみましょう
- 次のページから挙げるロボットの状態を定義してみましょう
- ポイント
- 同じ[latex]\\boldsymbol{x}[/latex]が別の状態を指さないようにする
- これはロボットの知覚の問題
- ロボットが「同じだ!」と思ってしまったら別の行動ができない
- 例: 雨が状態に考慮されていないと、ロボットは雨が降っても絶対に傘はささない
- 問題は厳密なものではありません
- こういう場合はこうなる、みたいな議論を
- 同じ[latex]\\boldsymbol{x}[/latex]が別の状態を指さないようにする
- ポイント
移動ロボット1
- 平面上をゆっくり動く
移動ロボット2
- 速く走る
- できることは壁沿い走行だけ
移動ロボット3
- 平面上を動く
- 全方位移動機構
- [latex]x,y[/latex]はともかく、向きはどうしましょうか???
- 速度はどうする?
マニピュレータ
- 麻雀牌はどうする?
生物
バリエーション
- 移動ロボットがビルの各フロアを行き来するときはどうする?
- 移動ロボットが螺旋状にフロアがつながっている建物を移動するときはどうする?
- 表参道ヒルズのような話
- 人がロボットの周囲にたくさんいる
まとめ
- 何をしたいか、何をしても問題ないかで状態の定義は変わる
- 速度を状態変数に入れる/入れない
- 動的/準静的
- 建物の階数を入れる/入れない
- 別のフロアで別の行動が潜在的に可能/不可能
- フレーム問題とも関係する話
- 速度を状態変数に入れる/入れない
- 自分の体/他人の体に関する状態変数
- 制御できるかどうかを別にすると同じもの
- やわらかいものは難しい
- ・・・
次回
- 「状態の不確かさ」について考えます。