5.3K Views
May 15, 24
スライド概要
中部大学にて
プログラマー
確率ロボティクス入門 第3回 千葉工業大学 上田隆一 2024年5月15日 @中部大学
前回のおさらい • 確率の計算 • 乗法定理、加法定理を覚えておけば可能 • ベイズの定理が知能を考えるうえで大事 • 確率的自己位置推定 「ベイズフィルタ」 と呼ばれる手続き • 移動したとき: 𝑏𝑏�𝑡𝑡 𝒙𝒙 = 𝑝𝑝 𝒙𝒙 |𝒙𝒙′ , 𝒖𝒖𝑡𝑡 𝑏𝑏𝑡𝑡−1 (𝒙𝒙′) • 観測したとき: 𝑏𝑏𝑡𝑡 𝒙𝒙 = η𝑝𝑝 𝐳𝐳𝑡𝑡 |𝒙𝒙 𝑏𝑏�𝑡𝑡 𝒙𝒙 = η𝐿𝐿 𝒙𝒙|𝐳𝐳𝑡𝑡 𝑏𝑏�𝑡𝑡 𝒙𝒙 • 数式、コード、実例を丁寧に見ているといつかピンと来る 2023年5月15日 ロボットフロンティア@中部大学 2
尤度についてもう1回説明 • 問題: レーザーで壁までの距離を計測したら5mでした. ロボットは壁からどれくらいの距離にいそうですか? • 計測には3cmくらいの誤差 • 素朴な答え: 5m • 工場等での答え: 5±0.03m 壁 誤差 5m X • 5mだけど3cmくらい誤差がありそう • 確率ロボティクス的な答え: 全然違うかもしれない • ロボットと壁の間に人がいるなど,センサの精度以外の要因も考慮 どうやって 考慮するの? 2023年5月15日 壁 5m X ロボットフロンティア@中部大学 3
計測ではなくて点数(=尤度)をつける • 場所𝒙𝒙ごとにセンサの値𝐳𝐳𝑡𝑡 があり得るかどうかを考慮して付与 • これを尤度関数𝐿𝐿 𝒙𝒙|𝐳𝐳𝑡𝑡 = 𝑝𝑝 𝐳𝐳𝑡𝑡 |𝒙𝒙 と解釈 • 統計の問題では𝐿𝐿に根拠がある場合が多いが、ロボットの場合は基本ない • どれだけ不慮の事態を考えるかで変化 • 状況によって工夫 [Thrun2005][Ueda2002][Takeuchi2010] • 下図: 人の存在を考慮したときの尤度の構成例 L 尤度L 壁 5m X 測量よりも計測の誤差や誤りに柔軟に対応可能 2023年5月15日 ロボットフロンティア@中部大学 4
尤度関数の構成例 — LiDARで使われる「尤度場」 • 地図にセンサ値がどれだけマッチしているかで尤度を設定 ある瞬間のLiDARの計測値 ロボットの位置を 仮定して,黒2点, 灰1点で点数を つけてみる. 仮定1のほうが,仮定2より 2倍「尤もらしい」と考える. 単純だが実際に利用されている 地図(黒: 壁の位置,灰: 壁周辺) 2023年5月15日 仮定2 仮定1 14点(黒: 6,灰: 2) 7点(黒: 1,灰: 5) ロボットフロンティア@中部大学 5
原理は(たぶん)分かった。実装は? • どうやってプログラムにするの? • 代表的なもの • カルマンフィルタ[Kalman 1960] • Monte Carlo localization [Fox 1999, Dellaert 1999] • パーティクルフィルタを使ったもの 2023年5月15日 ロボットフロンティア@中部大学 6
カルマンフィルタによる自己位置推定 • 多変量「ガウス分布」に確率分布を制限して ベイズフィルタを実装 • ガウス分布: 正規分布とも呼ばれる • 信念の表現 • 𝑏𝑏𝑡𝑡 𝒙𝒙 = ηexp[− 1 2 𝒙𝒙𝑡𝑡 − 𝝁𝝁𝑡𝑡 ⊤ Σ𝑡𝑡−1 𝒙𝒙𝑡𝑡 − 𝝁𝝁𝑡𝑡 ] • 適切な近似で指数部の計算だけに • 移動時: Σ� 𝑡𝑡 = 𝐹𝐹𝑡𝑡 Σ𝑡𝑡−1 𝐹𝐹𝑡𝑡⊤ + 𝐴𝐴𝑡𝑡 𝑀𝑀𝑡𝑡 𝐴𝐴⊤𝑡𝑡 • 観測時: • Σ𝑡𝑡 = (𝐼𝐼 − 𝐾𝐾𝑡𝑡 𝐻𝐻𝑡𝑡 )Σ� 𝑡𝑡 � 𝑡𝑡 � 𝑡𝑡 + 𝝁𝝁 • 𝝁𝝁𝑡𝑡 = 𝐾𝐾𝑡𝑡 𝒛𝒛𝑡𝑡 − 𝒉𝒉 𝝁𝝁 • ここで𝐾𝐾𝑡𝑡 = Σ� 𝑡𝑡 𝐻𝐻𝑡𝑡⊤ (𝐻𝐻𝑡𝑡 Σ� 𝑡𝑡 𝐻𝐻𝑡𝑡⊤ + 𝑄𝑄𝑡𝑡 )−1 2023年5月15日 ロボットフロンティア@中部大学 2次元のガウス分布 by Piotrg~commonswiki https://commons.wikimedia.org/w iki/File:Multivariate_Gaussian.png CC BY-SA 3.0 7
カルマンフィルタによる自己位置推定の例 • 左: 観測なし • 移動によって位置・向きの不確かさが増加していく • 右: ★の向きと距離を計測して信念分布に反映 カルマンフィルタはアポロ計画でも 使われた(あとで見ておいてください) https://www.youtube.com/watch?v=aNzGCMRnvXQ 2023年5月15日 ロボットフロンティア@中部大学 8
カルマンフィルタの限界 • うまく実装すれば機能するが・・・ • 限界が存在 • 向きを持つロボットが移動する際には, 信念分布の形状はガウス分布にならない • 尤度関数もガウス分布と 同じような形状にならない • 「複数の候補」が表現できない • ロボットのいる環境は空中と違って複雑 2023年5月15日 ロボットフロンティア@中部大学 [上田2019]より [上田2019]より 9
分身を使った自己位置推定 • 右のようなシミュレーションでできる図を そのまま利用できないか? • いくつもロボットの分身を動かす • 分身の分布(偏在具合)を 信念分布の近似とみなす • 移動に関する具体的な操作 • 初期の信念分布(位置・向きを教えてもらえる場合): • 分身を教えてもらった位置・向きに配置 • 移動: 状態遷移モデル 𝑝𝑝 𝒙𝒙 |𝒙𝒙′ , 𝒖𝒖 にしたがって動かす 2023年5月15日 ロボットフロンティア@中部大学 10
数学的な根拠 • 「ドローイング」 • 確率分布にしたがってひとつ値を取り出す行為 • 𝑥𝑥~𝑃𝑃(𝑥𝑥) • ドローイングを繰り返して集めたデータ(標本,サンプル)は, 元の分布の近似 • 例: さいころを何度も振って出目の統計をとると, 頻度の割合が1/6に近づく サンプルで元の分布を近似可能 頻度 𝑃𝑃 1/6 何度( 𝑁𝑁 回としましょう) もさいころを振って各目の 出た回数を記録 1 2 3 4 5 6 2023年5月15日 𝑥𝑥 つまり𝑥𝑥~𝑃𝑃(𝑥𝑥)の繰り返し ロボットフロンティア@中部大学 𝑁𝑁/6 1 2 3 4 5 6 11 𝑥𝑥
尤度関数の反映 • 各分身に尤度の変数を持たせる • この場合の尤度: 各分身の 位置・向きの尤もらしさ • そのまま尤度関数の考え方を適用可能 • 演算 • ある分身の尤度を𝑤𝑤とする • 尤度ではあるが「重み」と表現 • センサ情報が入ると,次のように更新 • 𝑤𝑤 ⟵ 𝑤𝑤𝑤𝑤(𝒙𝒙|𝐳𝐳) 2023年5月15日 分身2 分身1 14点(黒: 6,灰: 2) 7点(黒: 1,灰: 5) ロボットフロンティア@中部大学 分身1のほうが,分身2より 2倍「尤もらしい」と考える (再掲) 12
観測を重ねることによる重みの変化 • 尤もらしい分身は,次の観測でも高い尤度になりやすい →ほとんどの分身の重みが相対的に0に 例: 矢印の長さが重み →1つの分身の重みだけ 大きくなってあとはゼロ 2023年5月15日 ロボットフロンティア@中部大学 13
リサンプリング • 重みの大きい分身を増やす • 方法 • パーティクルの重みを積み上げたリストを作成 • 1/𝑁𝑁ずつリストを進んで分身を𝑁𝑁個コピー • コピーで作った分身の重みを1/𝑁𝑁にして新たな分身の集団を作成 • 元の分身の集団は破棄 公平になるように,乱数で 開始位置を少しずらす 2023年5月15日 [上田2019]より ロボットフロンティア@中部大学 14
分身を使った自己位置推定の完成 • 別名: • パーティクルフィルタ,粒子フィルタ(粒子: 分身のこと) • MCL(Monte Carlo localization) https://www.youtube.com/watch?v=mGkNZUbasXo より.https://github.com/ryuichiueda/emclを使用 2023年5月15日 ロボットフロンティア@中部大学 15
分身を使った自己位置推定 →パーティクルフィルタ • 𝑁𝑁個あるうちの𝑖𝑖番目のパーティクルを次のように表現 (𝑖𝑖) (𝑖𝑖) 𝑖𝑖 • 𝜉𝜉𝑡𝑡 = (𝒙𝒙𝑡𝑡 , 𝑤𝑤𝑡𝑡 ) • 手続き (𝑖𝑖 = 0, 1, 2, … , 𝑁𝑁 − 1) • 移動時: 𝒙𝒙𝑡𝑡 ~𝑝𝑝 𝒙𝒙 |𝒙𝒙𝑡𝑡−1 , 𝒖𝒖𝑡𝑡 𝑖𝑖 𝑖𝑖 • 観測時: 𝑤𝑤𝑡𝑡 ⟵ 𝑤𝑤𝑡𝑡 𝐿𝐿(𝒙𝒙𝑡𝑡 |𝐳𝐳𝑡𝑡 ) • その後,移動直前にリサンプリング (𝑖𝑖) 2023年5月15日 (𝑖𝑖) 𝑖𝑖 ロボットフロンティア@中部大学 16
自己位置推定のまとめ • 確率分布を各自の知識と考える • 人工知能(つまり主観を持つ何か)を考えるうえで必須と考えられる • ベイズの定理 • 知識のアップデート方法 • 尤度関数を使った自己位置推定(ベイズフィルタ) • 2種類の実装を紹介(いずれも近似計算) • カルマンフィルタ • パーティクルフィルタ 2023年5月15日 ロボットフロンティア@中部大学 17
今日の本当の本題: SLAM • SLAM: simultaneous localization and mapping • 地図を作りながら自己位置推定する技術 • 地図だけ作りたい場合はmap buildingと呼ぶことも • 00年代後半に実用 • 「地図を作りながら自己位置推定する」方法 • センシング→動く(動いた量を計測)→センシング→動く・・・ で得られたセンサ情報を貼り合わせ 2023年5月24日 ロボットフロンティア@中部大学 18
問題:移動にもセンサ情報にも雑音 移動量に 基づいて 貼り合わせ 真の位置・向き とは違う!! センサ情報に 基づいて 貼り合わせ どこでも 合ってしまう 合わない うまく 合わない きれいに 合うところが 見つからない どうしましょう? 2023年5月24日 ロボットフロンティア@中部大学 19
確率を使って問題を整理 • 当面,SLAMの問題とは次のような問題としましょう • 「𝑝𝑝 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 が最大となる𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 を求める問題」 • 𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 : 初期位置(地図を描く時の原点),移動,センサ情報 • 𝒙𝒙1:𝑡𝑡 : ロボットの動いた軌跡 • 𝐦𝐦: 地図 • 𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 を説明する最尤な𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 を求める問題と考えてもよい • 問題 • どうやって𝑝𝑝 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 を計算するのか? • 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦には無限に候補が存在 2023年5月24日 ロボットフロンティア@中部大学 20
アプローチ1: 最急降下法等による最適化 • graph-based SLAMなどの原理 (今日は説明しません) • 𝑝𝑝 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 を 誤差の評価関数として実装 • 特に確率論に厳密である必要はない 軌跡,センサ情報が どれだけずれているか点数化 (注意: 大雑把な説明です.) 点数が高くなるよう に少しずつずらす • 移動に雑音がない仮定で地図を初期化し, 評価値が減るようにずらしていく • 評価値が改善しない →正解の軌道と地図として出力 2023年5月24日 ロボットフロンティア@中部大学 21
graph-based SLAMの様子 • 得られたセンサ情報を重ねては修正を繰り返している • 1周したあとに一気に歪みを減らす「ループの閉じ込み」が重要 • (特にジャイロがない場合)θ方向に歪みやすい https://youtu.be/jS5_a9BW2zI (cartographerを使用) 2023年5月24日 ロボットフロンティア@中部大学 22
アプローチ2: ベイズ推定 • 今日の本題 • 式を実装が簡単な形式に変形 • 𝑝𝑝 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 = 𝑝𝑝 𝐦𝐦 |𝒙𝒙1:𝑡𝑡 , 𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 𝑝𝑝(𝒙𝒙1:𝑡𝑡 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 )(乗法定理) ( 𝒙𝒙 と𝒖𝒖 の情報が冗長なので整理) = 𝑝𝑝 𝐦𝐦 |𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 𝑝𝑝(𝒙𝒙1:𝑡𝑡 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 ) ① ② • まだ複雑な式のように思えるが, 実はパーティクルで表現可能 2023年5月24日 ロボットフロンティア@中部大学 FastSLAM 23
FastSLAMのパーティクル • 軌跡の分布から𝑁𝑁個ドローしたもの • 位置でなく軌跡 • 一般的な自己位置推定(MCL)とは異なる • 𝒙𝒙1:𝑡𝑡 ~𝑝𝑝(𝒙𝒙1:𝑡𝑡 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 ) (前ページ②) Y ドローされた軌跡(全体で 𝑝𝑝(𝒙𝒙1:𝑡𝑡 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 )を近似) (𝑖𝑖) • 𝑖𝑖 = 0,1,2, … , 𝑁𝑁 − 1 • 𝒙𝒙1:𝑡𝑡 に対する𝑝𝑝 𝐦𝐦 |𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 (前ページ①) (𝑖𝑖) • 𝑝𝑝 𝐦𝐦 |𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 = 𝑝𝑝 (𝑖𝑖) 𝐦𝐦 |𝒙𝒙0 , 𝒙𝒙1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 • 条件の𝒙𝒙0 , 𝒙𝒙1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 が全部固定されている (𝑖𝑖) 軌跡の仮説を作る問題と, 仮説に対する地図の分布を作る問題に分かれる 2023年5月24日 ロボットフロンティア@中部大学 X 各軌跡に対して地図の 分布をぶら下げる Y X 24
FastSLAMによる地図生成 • 表示されているのは最尤なパーティクルの地図 • 他にたくさんの軌跡と地図のペア • 「ループの閉じ込み」は基本的にない https://youtu.be/b2kYQ11PUSI (gmappingを使用) 2023年5月24日 ロボットフロンティア@中部大学 25
FastSLAMの処理 • 各パーティクルのデータ: • 軌跡𝒙𝒙1:𝑡𝑡 、重み𝒘𝒘𝑡𝑡 、地図の信念分布𝑏𝑏𝑡𝑡 (𝐦𝐦) (𝑖𝑖) (𝑖𝑖) (𝑖𝑖) • 移動に対して • MCLとほぼ同じ (𝑖𝑖) (𝑖𝑖) • 𝒙𝒙𝑡𝑡 ~𝑝𝑝(𝒙𝒙|𝒙𝒙𝑡𝑡−1 , 𝒖𝒖𝑡𝑡 ) (𝑖𝑖) (𝑖𝑖) (𝑖𝑖) • 𝒙𝒙1:𝑡𝑡−1 に𝒙𝒙𝑡𝑡 をくっつけて 𝒙𝒙1:𝑡𝑡 に • 移動を繰り返していくとだんだんデータが増えていきそう • この話はあとで • センサ情報に対して • 𝒘𝒘𝑡𝑡−1 と𝑏𝑏𝑡𝑡−1 (𝐦𝐦)を両方更新 (𝑖𝑖) 2023年5月24日 (𝑖𝑖) できるの? ロボットフロンティア@中部大学 26
重みの更新式の導出 (𝑖𝑖) • 𝑤𝑤𝑡𝑡 𝑖𝑖 ベイズの定理 𝑖𝑖 𝑖𝑖 ∝ 𝑝𝑝 𝒙𝒙1:𝑡𝑡 𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 ∝ 𝑝𝑝 𝐳𝐳𝑡𝑡 𝒙𝒙1:𝑡𝑡 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡−1 𝑝𝑝 𝒙𝒙1:𝑡𝑡 𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡−1 (𝑖𝑖) 𝑖𝑖 (𝑖𝑖) 冗長 (𝑖𝑖) • = 𝑝𝑝 𝐳𝐳𝑡𝑡 𝒙𝒙1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡−1 𝑤𝑤𝑡𝑡−1 = 𝑝𝑝 𝐳𝐳𝑡𝑡 𝑏𝑏𝑡𝑡−1 (𝐦𝐦), 𝒙𝒙𝑡𝑡 (𝑖𝑖) = 𝑝𝑝 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 2023年5月24日 𝑖𝑖 𝑏𝑏𝑡𝑡−1 (𝐦𝐦) (𝑖𝑖) 𝑤𝑤𝑡𝑡−1 (𝑖𝑖) 𝑤𝑤𝑡𝑡−1 観測が入る前の軌跡に (𝑖𝑖) 対する重みなので𝑤𝑤𝑡𝑡−1 𝑡𝑡 − 1までの軌跡・観測情報を 𝑡𝑡 − 1までの地図の分布に置き換え これまでの地図から考えて, (𝑖𝑖) 𝒙𝒙𝑡𝑡 で𝐳𝐳𝑡𝑡 が得られる度合 ロボットフロンティア@中部大学 27
地図の更新式の導出 (𝑖𝑖) • 𝑏𝑏𝑡𝑡 𝐦𝐦 = 𝑝𝑝 (𝑖𝑖) = 𝜂𝜂𝑝𝑝 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 = 𝜂𝜂𝑝𝑝 (𝑖𝑖) 𝐦𝐦 𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 (𝑖𝑖) 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 (𝑖𝑖) = 𝜂𝜂𝑝𝑝 (𝑖𝑖) 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡−1 𝑝𝑝 𝐦𝐦 𝒙𝒙0:𝑡𝑡−1 , 𝐳𝐳1:𝑡𝑡−1 𝑝𝑝 (𝑖𝑖) 𝐦𝐦 𝒙𝒙0:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡−1 (ベイズの定理) (余計な情報の削除) (𝑖𝑖) 𝑏𝑏𝑡𝑡−1 𝐦𝐦 • 左の因子: 自己位置推定で尤度関数と言っていたもの • 右の因子: センサ情報が入る前の地図の信念分布 • 前ページの期待値のカッコ内の分布と同じもの 2023年5月24日 ロボットフロンティア@中部大学 28
FastSLAMの更新式のまとめ • パーティクル1つのデータ: 𝒙𝒙𝑡𝑡 , 𝒘𝒘𝑡𝑡 , 𝑏𝑏𝑡𝑡 (𝐦𝐦) (𝑖𝑖) (𝑖𝑖) (𝑖𝑖) • 過去の軌跡は,下の式をみるといらない(実時間実行のために重要) • 移動に対して: 𝒙𝒙𝑡𝑡 ~𝑝𝑝 𝒙𝒙 𝒙𝒙𝑡𝑡−1 , 𝒖𝒖𝑡𝑡 (𝑖𝑖) (𝑖𝑖) • センサ情報に対して • 重みの更新: 𝑤𝑤𝑡𝑡 (𝑖𝑖) • 地図の更新: 𝑏𝑏𝑡𝑡 (𝑖𝑖) (𝑖𝑖) • 𝑝𝑝 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 2023年5月24日 (𝑖𝑖) = 𝜂𝜂 𝑝𝑝 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 𝐦𝐦 = 𝜂𝜂𝑝𝑝 𝑖𝑖 (𝑖𝑖) 𝑤𝑤𝑡𝑡−1 𝑏𝑏𝑡𝑡−1 (𝐦𝐦) (𝑖𝑖) (𝑖𝑖) 𝐳𝐳𝑡𝑡 𝐦𝐦, 𝒙𝒙𝑡𝑡 𝑏𝑏𝑡𝑡−1 𝐦𝐦 注意: 𝜂𝜂の値は 上下の式で違う : 地図𝐦𝐦に対する尤度関数とみなせる ロボットフロンティア@中部大学 29
(𝑖𝑖) パーティクルに持たせる地図𝑏𝑏𝑡𝑡 (𝐦𝐦)の形式 • 占有格子地図 • 自己位置推定の時に出てきた 尤度場用の地図と同じもの • 音波/レーザスキャナ用 • 点ランドマークの地図 • 特定の目印(ランドマーク)を カメラ等で観測するとき • ランドマークの位置の不確かさ をカルマンフィルタで計算 分布 真の位置 (地図にはない) 2023年5月24日 ロボットフロンティア@中部大学 30
点ランドマーク地図に対する例 • 実装については[上田2019]で • まだまだ作業が必要 • さらなる式展開 • 最初に見たランドマークに対する カルマンフィルタの初期化 2023年5月24日 ロボットフロンティア@中部大学 31
SLAMのまとめ • 自己位置推定と比較して推定対象の次元が大きい→難問 • SLAMに関する確率分布: 𝑝𝑝 𝒙𝒙1:𝑡𝑡 , 𝐦𝐦|𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 • 自己位置推定に関する確率分布: 𝑝𝑝 𝒙𝒙𝑡𝑡 |𝒙𝒙0 , 𝒖𝒖1:𝑡𝑡 , 𝐳𝐳1:𝑡𝑡 , 𝐦𝐦 • 難問だが,可能となった • graph-based SLAM: 粗い地図を最適化 • FastSLAM: 軌跡の推定と地図の推定を分解 • Rao-Blackwellizationという確率の操作 2023年5月24日 ロボットフロンティア@中部大学 32