http://apple.ee.uec.ac.jp/isyslab
ロボット情報工学特論 no.14
Advanced Information Engineering for Robotics no.14
第14回:知能ロボティクス2~確率ロボティクス応用編~
電気通信大学大学院
情報理工学研究科
知能機械工学専攻
長井隆行
http://apple.ee.uec.ac.jp/isyslab
Outline
自己位置推定
環境地図
占有格子地図
地図の生成
SLAM
ベイズフィルタの応用
モンテカルロ位置推定(MCL)
カルマンフィルタ
パーティクルフィルタ(FastSLAM)
パスプランニング
RRT
確率的ロードマップ
2
http://apple.ee.uec.ac.jp/isyslab
移動ロボットの問題
ロボットが環境の中を動き回る
リアクティブに動くという考え方(ローカルなプランニング)
どのように目的地まで行くか?
その場で判断する⇒地図や経路は必要ない
グローバルなプランニング
自己位置推定
今どこにいるかをどのように推定するか?
経路計画
どのようなデータ構造でどのように作るか?
冷蔵庫
テ テレビ
ー
ブ
ル
椅
子
環境地図
ソ
フ
ァ
長
机
椅子
長机
キッチン
テーブル
椅子
棚
本棚
棚
本棚
本棚
キッチン
テーブル
トイレ
棚
長
テーブル 机
ベッド
ソ
フ
ァ
テレビ
椅子
地図を使ってどのように経路を計画するか
確率ロボティクスの主要問題
3
http://apple.ee.uec.ac.jp/isyslab
位置推定問題
ロボットの姿勢 : (x,y,q) ⇒直接計測できない
センサ計測値から(x,y,q)を推定
位置推定問題の分類
位置追従:初期のロボット姿勢が既知
姿勢の誤差が小さい⇒正規分布などで近似できる
局所的な問題
大域的位置推定:初期姿勢が未知
正規分布などで信念を近似することができない
大域的な推定は位置追従より難しい
誘拐ロボット問題:ロボットが他の位置にテレポーテーションする
ロボットが誤った信念をもってしまう⇒誤りからの回復能力が必要
大域的位置推定よりも難しい
4
http://apple.ee.uec.ac.jp/isyslab
位置推定の確率モデル
マルコフ性⇒ 条件付き独立性
p( xt | xt 1 , ut , m)
状態遷移確率
p( zt | xt , m)
計測確率
xt 1
ut 1
zt 1
xt 1
xt
ut
zt
m :地図
x :状態(位置)
u :制御
z :計測
ut 1
zt 1
m
5
http://apple.ee.uec.ac.jp/isyslab
マルコフ位置推定
マルコフ位置推定アルゴリズム( bel ( xt 1 ), ut , zt , m )
for all xt do
bel ( xt ) p( xt | ut , xt 1 , m)bel ( xt 1 )dxt 1
bel ( xt ) p( zt | xt , m)bel ( xt )
end for
return bel ( xt )
•ベイズフィルタと同じ
•地図mが入っているだけ
•x0の与え方で各種位置推定問題に対応する
•実装の問題
⇒カルマンフィルタが使える
6
http://apple.ee.uec.ac.jp/isyslab
ロボットの動作モデル
ロボットの動作モデル ⇒ 状態方程式
p( xt | ut , xt 1 ) が必要
2つの動作モデル
オドメトリベース
速度ベース (デッドレコニング)
エンコーダの情報が使える場合はオドメトリを使うのが一般的
エンコーダの情報が使えない場合は速度ベース
速度と時間で姿勢を計算するモデル
7
http://apple.ee.uec.ac.jp/isyslab
動作モデルが必要な理由
車輪の径が異なる
理想的な場合
バンプ
カーペット(すべり)
など様々・・・
8
http://apple.ee.uec.ac.jp/isyslab
オドメトリモデル
ロボットが x , y,q
から
x ' , y ' ,q '
へ移動
オドメトリ情報 u rot1 , rot2 , trans
trans ( x ' x ) 2 ( y ' y ) 2
rot1 atan2( y ' y, x ' x ) q
rot2 q 'q rot1
x , y,q
rot1
rot2
trans
x ' , y ' ,q '
9
http://apple.ee.uec.ac.jp/isyslab
オドメトリの雑音モデル
計測されるオドメトリは理想的なオドメトリに
雑音をのせることで表現する
ˆrot1 rot1
1 | rot1 | 2
ˆtrans trans
ˆrot2 rot2
3
| trans|
| trans| 4 | rot1 rot 2 |
1 | rot 2 | 2
| trans|
10
http://apple.ee.uec.ac.jp/isyslab
確率の計算 (ゼロ平均)
正規分布
1.
2.
一般的には正規分布が用いられる
prob_normal_distribution(a,b):
return
1 a2
exp
2
2
2b
2b
1
( x)
2
1
2
2
e
1 x2
2 2
11
http://apple.ee.uec.ac.jp/isyslab
動作モデル(事後確率)の計算
1.
Algorithm motion_model_odometry (x,x’,u)
2.
trans ( x ' x ) 2 ( y ' y ) 2
rot1 atan2( y ' y, x ' x ) q
rot2 q 'q rot1
3.
4.
odometry values (u)
2
2
ˆ
(
x
'
x
)
(
y
'
y
)
5.
trans
values of interest (x,x’)
ˆrot1 atan2( y' y, x' x) q
6.
ˆrot2 q 'q ˆrot1
7.
ˆ , | ˆ | ˆ )
p
prob
(
1
rot1
rot1
1
rot1
2 trans
8.
ˆ , ˆ (| ˆ | | ˆ |))
p
prob
(
2
trans
trans
3 trans
4
rot1
rot2
9.
ˆ , | ˆ | ˆ )
p
prob
(
3
rot
2
rot 2
1
rot 2
2 trans
10.
11. return p1 · p2 · p3
12
http://apple.ee.uec.ac.jp/isyslab
動作モデルの例
p(x|u,x’)
x’
x’
u
u
13
http://apple.ee.uec.ac.jp/isyslab
オドメトリ動作モデルのサンプリング
1.
Algorithm sample_motion_model (u, x):
u rot1 , rot2 , trans , x x, y,q
1. ˆrot1 rot1 sample(1 | rot1 | 2 trans)
ˆ
2. trans trans sample( 3 trans 4 (| rot1 | | rot2 |))
sample( | | )
3. ˆ
rot2
rot2
1
6.
x' x ˆtrans cos(q ˆrot1 )
y' y ˆtrans sin(q ˆrot1 )
q ' q ˆ ˆ
7.
Return
4.
5.
rot1
rot2
2
trans
sample_normal_distribution
rot2
x ' , y ' ,q '
14
http://apple.ee.uec.ac.jp/isyslab
動作モデルからのサンプリングの例
Start
15
http://apple.ee.uec.ac.jp/isyslab
オドメトリモデルの例
分散の与え方(パラメータ)によって異なる
16
http://apple.ee.uec.ac.jp/isyslab
ロボットの計測モデル
p( zt | xt , m) をモデル化する必要がある
ロボットの位置x(と地図)が与えられた際にzが得られる確率
移動ロボットのセンサ
接触センサ: Bumpers
内界センサ
加速度センサ (spring-mounted masses)
ジャイロスコープ (spinning mass, laser light)
コンパス, 傾斜計 (earth magnetic field, gravity)
距離センサ
ソナー (time of flight)
レーダー (phase and frequency)
レーザーレンジファインダ (triangulation, tof, phase)
赤外線 (intensity)
視覚センサ: カメラ
位置センサ: GPS
17
http://apple.ee.uec.ac.jp/isyslab
スキャンベースモデル
Probability
is a mixture of …
a
Gaussian distribution with mean at
distance to closest obstacle,
a uniform distribution for random
measurements, and
a small uniform distribution for max
range measurements.
Again,
independence between
different components is assumed.
18
http://apple.ee.uec.ac.jp/isyslab
例
尤度場
地図 m
P(z|x,m)
19
http://apple.ee.uec.ac.jp/isyslab
San Jose Tech Museum
Occupancy grid map
Likelihood field
20
http://apple.ee.uec.ac.jp/isyslab
スキャンマッチング
スキャンから尤度場を生成しそれらを比較
することでスキャン同士のマッチングをする
21
http://apple.ee.uec.ac.jp/isyslab
相関ベースの計測モデル
地図が占有格子地図として表現されている
現在のスキャンを占有格子地図と同等の表
現に変換
ロボットの想定位置において地図とスキャン
の正規化相関関数を計算
相関値 [-1, 1]
p(mlocal | xt , m) max{ m, mlocal , xt ,0}
地図 m における位置 xt のスキャン mlocal の尤もらしさ
22
http://apple.ee.uec.ac.jp/isyslab
拡張カルマンフィルタの利用
カルマンフィルタを使ってマルコフ位置推定を実現
動作モデル、計測モデルの線形化が必要
拡張カルマンフィルタ(EKF)
最適ではない
非線形性が強すぎると発散する可能性がある
しかしすべての前提条件を満たさない時でも実際にはか
なりよく働く
23
http://apple.ee.uec.ac.jp/isyslab
1.
EKF_localization ( mt-1, St-1, ut, zt, m):
予測:
3. Gt
5.
6.
g (ut , mt 1 )
xt 1
x'
mt 1, x
y '
mt 1, x
q '
mt 1, x
x'
mt 1, y
y '
mt 1, y
q '
mt 1, y
x'
mt 1,q
y '
Jacobian of g w.r.t location
mt 1,q
q '
mt 1,q
x' x'
v
t
t
y ' y '
g (ut , mt 1 )
Vt
ut
v
t
t
q
'
q
'
v
t
t
1 | vt | 2 | t |2
0
M t
2
3 | vt | 4 | t |
0
Jacobian of g w.r.t control
Motion noise
7.
mt g (ut , mt 1 )
Predicted mean
8.
St Gt St 1GtT Vt M tVtT
Predicted covariance
24
http://apple.ee.uec.ac.jp/isyslab
1.
EKF_localization ( mt-1, St-1, ut, zt, m):
更新:
2.
zˆt
2
2
mx mt , x m y mt , y
atan 2m m , m m m
y
t,y
x
t,x
t ,q
h( mt , m)
xt
3.
Ht
4.
r2 0
Qt
2
0 r
rt
m
t,x
t
mt , x
rt
mt , y
t
mt , y
Predicted measurement mean
rt
mt ,q
t
mt ,q
Jacobian of h w.r.t location
St H t St H tT Qt
Pred. measurement covariance
6.
Kt St H tT St1
Kalman gain
7.
mt mt Kt ( zt zˆt )
Updated mean
8.
St I Kt H t St
Updated covariance
5.
25
http://apple.ee.uec.ac.jp/isyslab
EKF Prediction Step
26
http://apple.ee.uec.ac.jp/isyslab
EKF Observation Prediction Step
27
http://apple.ee.uec.ac.jp/isyslab
EKF Correction Step
28
http://apple.ee.uec.ac.jp/isyslab
Estimation Sequence (1)
29
http://apple.ee.uec.ac.jp/isyslab
Estimation Sequence (2)
30
http://apple.ee.uec.ac.jp/isyslab
Comparison to GroundTruth
31
http://apple.ee.uec.ac.jp/isyslab
モンテカルロ位置推定
位置推定におけるパーティクルフィルタの利用
MCLアルゴリズム( t 1 , ut , zt , m )
t t
for m=1
( m)
t
( m)
t
x
w
to
M
do
sample_motion_model( ut , xt(m1) )
measuremen t_model( zt , xt( m) , m)
サンプリング
重み評価
t t xt( m) , wt( m)
endfor
for m=1
to
M
do
draw i with probability wt( m)
リサンプリング
add xt(i ) to t
endfor
return
t
32
http://apple.ee.uec.ac.jp/isyslab
MCL位置推定の例
グローバル位置推定
誘拐ロボット問題@スミソニアン博物館
http://robots.stanford.edu/videos.html
33
http://apple.ee.uec.ac.jp/isyslab
地図生成の問題
ロボットの位置を知るためには環境地図が必要
地図生成の問題とは、与えられた観測データ
d {u1 , z1 , u2 , z2 ,, un , zn }
に対して最も尤もらしい地図
m arg max P(m | d )
*
m
を計算することである
まずはロボットの位置が既知の場合を考える
実際には地図もロボットの位置も未知(SLAM問題)
34
http://apple.ee.uec.ac.jp/isyslab
占有格子地図
位置ベースと特徴ベース
特徴ベースの地図
ランドマークと位置
書き換えなどが容易
位置ベースの地図⇒占有格子地図
各位置(グリッド)が物体で占有されているか
どうか⇒各座標xyに割り当てる
移動ロボットのナビゲーションに適している
経路の探索が容易
35
http://apple.ee.uec.ac.jp/isyslab
占有格子の逐次更新の例
36
http://apple.ee.uec.ac.jp/isyslab
Resulting Map Obtained with
Ultrasound Sensors
37
http://apple.ee.uec.ac.jp/isyslab
Resulting Occupancy and
Maximum Likelihood Map
The maximum likelihood map is obtained by
clipping the occupancy grid map at a
threshold of 0.5
38
http://apple.ee.uec.ac.jp/isyslab
占有格子地図の例
スキャンデータ
占有格子地図
39
http://apple.ee.uec.ac.jp/isyslab
Tech Museum, San Jose
CADの地図
占有格子地図
40
http://apple.ee.uec.ac.jp/isyslab
SLAMの問題
ロボット
が未知の
(静的)環
境で
行動する
場合
Given:
ロボットの制御
センサによる観測
Estimate:
環境地図
ロボットの経路
41
http://apple.ee.uec.ac.jp/isyslab
SLAMはなぜ難しいのか?
SLAM: ロボットの経路と環境地図が共に未知
鶏と卵の問題
ロボットの姿勢には曖昧性があり得る
経路の推定エラーが地図の生成に影響を与える
42
http://apple.ee.uec.ac.jp/isyslab
SLAM: Simultaneous Localization and Mapping
完全SLAM:
完全な経路と地図を推定
p( x1:t , m | z1:t , u1:t )
オンラインSLAM: 現在の姿勢と地図を推定
p( xt , m | z1:t , u1:t ) p( x1:t , m | z1:t , u1:t ) dx1dx2 ...dxt 1
今までの情報を統合してその時ごとに推定
43
http://apple.ee.uec.ac.jp/isyslab
オンラインSLAMのグラフィカルモデル
p( xt , m | z1:t , u1:t ) p( x1:t , m | z1:t , u1:t ) dx1 dx2 ...dxt 1
44
http://apple.ee.uec.ac.jp/isyslab
完全SLAMのグラフィカルモデル
p( x1:t , m | z1:t , u1:t )
45
http://apple.ee.uec.ac.jp/isyslab
SLAMの手法
スキャンマッチング
ICP(Iterative
EKF
Closest Points)
SLAM
拡張カルマンフィルタ
Fast-SLAM
パーティクルフィルタ
Graph-SLAM,
SEIFs
46
http://apple.ee.uec.ac.jp/isyslab
スキャンマッチング
時刻tの姿勢と地図の尤度を(t-1)の姿勢と地図
に関して最大化する
[ t 1]
xˆt arg max p( zt | xt , mˆ
) p( xt | ut 1 , xˆt 1 )
xt
現在の計測情報
ロボットの動き
t-1までに推定した地図
推定した姿勢とその時の計測情報に基づいて地
図情報 mˆ [t ] を更新する
47
http://apple.ee.uec.ac.jp/isyslab
スキャンマッチングの例
48
http://apple.ee.uec.ac.jp/isyslab
カルマンフィルタアルゴリズム(再掲)
カルマンフィルタアルゴリズム( mt 1 , St 1 , ut , zt
予測
m t At mt 1 Bt ut
S t At S t 1 AtT Rt
)
計測を新たな状態推定
にどれくらい反映させるか
K t S t CtT (Ct S t CtT Qt ) 1 :カルマンゲイン
更新
m t m t K t ( z t Ct m t )
S t ( I K t Ct ) S t
return
イノベーション:
計測値と期待される
計測値との差
mt , S t
1
St (CtT Qt1Ct St ) 1 から逆行列の補題を利用して導出
49
http://apple.ee.uec.ac.jp/isyslab
EKF-SLAM
ランドマークを使った環境地図
N個のランドマークを用いた地図
⇒(3+2N)次元のガウス分布
Bel ( xt , mt )
x
y
q
l1 ,
l
2
lN
x2
xy
xq
xl1
xl2
xl
N
xy
y2
yq
yl1
yl2
yl N
xq
yq
q2
ql1
ql2
qlN
xl1
yl1
ql1
l21
l1l2
l1lN
xl2
yl2
ql2
l1l2
l22
l2l N
xl N
yl N
qlN
l1lN
l2l N
2
lN
数百の次元を扱うことが可能
50
http://apple.ee.uec.ac.jp/isyslab
EKF-SLAM
Map
Correlation matrix
51
http://apple.ee.uec.ac.jp/isyslab
EKF-SLAM
Map
Correlation matrix
52
http://apple.ee.uec.ac.jp/isyslab
EKF-SLAM
Map
Correlation matrix
53
http://apple.ee.uec.ac.jp/isyslab
Victoria Park データセット
[courtesy by E. Nebot]
54
http://apple.ee.uec.ac.jp/isyslab
推定経路
[courtesy by E. Nebot]
55
http://apple.ee.uec.ac.jp/isyslab
EKF SLAM実例
[courtesy by John Leonard]
56
http://apple.ee.uec.ac.jp/isyslab
EKF SLAM実例
オドメトリ
推定された軌跡
[courtesy by John Leonard]
57
http://apple.ee.uec.ac.jp/isyslab
グリッドベース FastSLAM
Can we solve the SLAM problem if no pre-defined
landmarks are available?
Can we use the ideas of FastSLAM to build grid
maps?
As with landmarks, the map depends on the poses
of the robot during data acquisition
If the poses are known, grid-based mapping is easy
(“mapping with known poses”)
58
http://apple.ee.uec.ac.jp/isyslab
オドメトリ情報を使った地図生成
59
http://apple.ee.uec.ac.jp/isyslab
Rao-Blackwellization
姿勢
地図 計測
制御
SLAM事後分布
ロボット経路事後分布
位置推定:MCLを利用
既知姿勢の地図生成
MCLによる位置推定の
結果を位置を既知とした場合
の地図生成に適用する
Factorization first introduced by Murphy in 1999
60
http://apple.ee.uec.ac.jp/isyslab
Rao-Blackwellized地図生成の
グラフィカルモデル
u0
x0
u1
ut-1
x1
x2
z1
z2
...
xt
m
zt
61
http://apple.ee.uec.ac.jp/isyslab
Rao-Blackwellized地図生成
それぞれのパーティクルがロボットのあり得る経路を表現している
それぞれのパーティクルは
それぞれの地図を保持している
地図は推定された経路情報を利用してアップデートされる
それぞれのパーティクルは観測情報とそのパーティクルが保持す
る地図によって計算される尤度に比例する確率で残される
62
http://apple.ee.uec.ac.jp/isyslab
パーティクルフィルタの例
3 particles
map of particle 1
map of particle 2
map of particle 3
63
http://apple.ee.uec.ac.jp/isyslab
さらなる問題
格子地図の情報量が大きい
各パーティクルがそれぞれの地図を保持するため
パーティクル数をなるべく少なくしたい
解決策:
提案分布の改善
具体的な手法
パーティクルフィルタを適用する前の姿勢推定の精度を
改善する
64
http://apple.ee.uec.ac.jp/isyslab
スキャンマッチングによる姿勢の補正
i-1番目の姿勢と地図に対してi番目の姿勢と地
図の尤度を最大化する
xˆt arg max p( zt | xt , mˆ t 1 ) p( xt | ut 1 , xˆt 1 )
xt
現在の計測値
制御
t-1までの地図
65
http://apple.ee.uec.ac.jp/isyslab
スキャンマッチングによる動きモデル
Raw Odometry
Scan Matching
66
http://apple.ee.uec.ac.jp/isyslab
改良したオドメトリによるFastSLAM
スキャンマッチングにより局所的に精度の高い姿勢の
推定を行う
スキャンマッチングによる局所的(短い区間)で精度の
よいオドメトリ列をFastSLAMの入力とする
入力自体のエラーが小さいためパーティクル数を少な
くできる
[Haehnel et al., 2003]
67
http://apple.ee.uec.ac.jp/isyslab
改良オドメトリによる地図生成の
グラフィカルモデル
u0 ... uk-1
z1 ... z k-1
x0
uk ... u2k-1
zk+1...z2k-1
...
un·k ... u(n+1)·k-1
z n·k+1... z(n+1)·k-1
u'1
u'2
...
u'n
xk
x2k
...
x n·k
zk
z2k
...
zn·k
m
68
http://apple.ee.uec.ac.jp/isyslab
Intel Labの例
パーティクル数 15
実時間の4倍の速度
(P4, 2.8GHz)
スキャンマッチング時
の解像度は5cm
地図の解像度は1cm
69
http://apple.ee.uec.ac.jp/isyslab
Intel Labの例 続き
パーティクル数 15
FastSLAM with Scan-Matching
70
© Copyright 2026 ExpyDoc