ロボット情報工学特論
Advanced Information Engineering for Robotics
第9回:知能ロボティクス2
Outline
自己位置推定
ベイズフィルタの応用
モンテカルロ位置推定(MCL)
環境地図
占有格子地図
地図の生成
SLAM
カルマンフィルタ
パーティクルフィルタ(FastSLAM)
パスプランニング
RRT
確率的ロードマップ
ベッド ソ フ ァ 椅子 長 机 トイレ キッチン テーブル キッチン テーブル 本棚 本棚 本棚 長 机 長机 椅子 椅子 ソ フ ァ 椅 子 テーブル テレビ テレビ テ ーブ ル 棚 棚 棚 冷蔵庫
移動ロボットの問題
ロボットが環境の中を動き回る
どのように目的地まで行くか?
リアクティブに動くという考え方(ローカルなプランニング)
その場で判断する⇒地図や経路は必要ない
グローバルなプランニング
環境地図
どのようなデータ構造でどのように作るか?
自己位置推定
今どこにいるかをどのように推定するか?
経路計画
地図を使ってどのように経路を計画するか
確率ロボティクスの主要問題
位置推定問題
ロボットの姿勢 : ( x, y,
θ
)
⇒直接計測できない
センサ計測値から( x, y,
θ
)を推定
位置推定問題の分類
位置追従
:初期のロボット姿勢が既知
姿勢の誤差が小さい⇒正規分布などで近似できる
局所的な問題
大域的位置推定
:初期姿勢が未知
正規分布などで信念を近似することができない
大域的な推定は位置追従より難しい
誘拐ロボット問題
:ロボットが他の位置にテレポーテー
ションする
ロボットが誤った信念をもってしまう⇒誤りからの回復能力が必要
大域的位置推定よりも難しい
位置推定の確率モデル
マルコフ性⇒
条件付き独立性
状態遷移確率
計測確率
)
,
,
|
(
x
x
1
u
m
p
t
t
−
t
)
,
|
(
z
x
m
p
t
t
1
−
t
x
x
t
x
t
+
1
1
−
t
u
u
t
u
t
+
1
1
−
t
z
z
t
z
t
+
1
m
:地図
m
x
:状態(位置)
u
:制御
z
:計測
マルコフ位置推定
マルコフ位置推定アルゴリズム(
)
for all do
end for
return
1
1
1
,
)
(
)
,
|
(
)
(
x
t
=
∫
p
x
t
u
t
x
t
−
m
bel
x
t
−
dx
t
−
bel
)
(
)
,
|
(
)
(
x
t
p
z
t
x
t
m
bel
x
t
bel
=
η
m
z
u
x
bel
(
t
−
1
),
t
,
t
,
t
x
)
(
x
t
bel
•ベイズフィルタと同じ
•地図mが入っているだけ
•x0の与え方で各種位置推定問題に対応する
•実装の問題
⇒カルマンフィルタが使える
ロボットの動作モデル
ロボットの動作モデル ⇒ 状態方程式
が必要
2つの動作モデル
オドメトリベース
速度ベース
(
デッドレコニング
)
エンコーダの情報が使える場合はオドメトリを使うのが一般的
エンコーダの情報が使えない場合は速度ベース
速度と時間で姿勢を計算するモデル
)
,
|
(
x
t
u
t
x
t
−
1
p
動作モデルが必要な理由
バンプ
理想的な場合
車輪の径が異なる
カーペット(すべり)
など様々・・・
ロボットが
から
へ移動
オドメトリ情報
オドメトリモデル
2
2
)
'
(
)
'
(
x
x
y
y
trans
=
−
+
−
δ
θ
δ
rot
1
=
atan2
(
y
'
−
y
,
x
'
−
x
)
−
1
2
'
rot
rot
θ
θ
δ
δ
=
−
−
θ
,
, y
x
x
'
,
y
'
,
θ
'
trans
rot
rot
u
=
δ
1
,
δ
2
,
δ
trans
δ
1
rot
δ
2
rot
δ
θ
,
, y
x
'
,
'
,
'
y
θ
x
オドメトリの雑音モデル
計測されるオドメトリは理想的なオドメ
トリに雑音をのせることで表現する
|
|
|
|
1
1
1 1 2ˆ
trans rotrot
rot
δ
ε
α
δ
α
δ
δ
=
+
+
|
|
|
|
2
2
1 2 2ˆ
trans rotrot
rot
δ
ε
α
δ
α
δ
δ
=
+
+
|
|
|
|
4 1 2 3ˆ
rot rot transtrans
trans
δ
ε
α
δ
α
δ
δ
δ
=
+
+
+
確率の計算 (ゼロ平均)
1. prob_normal_distribution
(a,b):
2.
return
2 2 2 2 1 22
1
)
(
σ
σ
πσ
ε
x
e
x −=
正規分布
一般的には正規分布が用いられる
−
22 22
1
exp
2
1
b
a
b
π
1.
Algorithm motion_model_odometry
(x,x’,u)
2.
3.
4.
5.
6.
7.
8.
9.
10.
11. return
p
1
· p
2
· p
3
動作モデル(事後確率)の計算
2
2
)
'
(
)
'
(
x
x
y
y
trans
=
−
+
−
δ
θ
δ
rot
1
=
atan2
(
y
'
−
y
,
x
'
−
x
)
−
1
2
'
rot
rot
θ
θ
δ
δ
=
−
−
2
2
)
'
(
)
'
(
ˆ
x
x
y
y
trans
=
−
+
−
δ
θ
δ
ˆ
rot
1
=
atan2
(
y
'
−
y
,
x
'
−
x
)
−
1
2
'
ˆ
ˆ
rot
rot
θ
θ
δ
δ
=
−
−
)
ˆ
|
ˆ
|
,
ˆ
(
prob
rot
1
rot
1
1
rot
1
2
trans
1
=
δ
−
δ
α
δ
+
α
δ
p
|))
ˆ
|
|
ˆ
(|
ˆ
,
ˆ
(
prob
trans
trans
3
trans
4
rot1
rot2
2
=
δ
−
δ
α
δ
+
α
δ
+
δ
p
)
ˆ
|
ˆ
|
,
ˆ
(
prob
rot
2
rot
2
1
rot
2
2
trans
3
=
δ
−
δ
α
δ
+
α
δ
p
odometry values
(u)
動作モデルの例
x’
u
p(x|u,x’)
u
x’
オドメトリ動作モデルのサンプリング
1.
Algorithm sample_motion_model
(u, x)
:
1.
2.
3.
4.
5.
6.
7.
Return
)
|
|
sample(
ˆ
2 1 1 11 rot rot trans rot
δ
α
δ
α
δ
δ
=
+
+
|))
|
|
(|
sample(
ˆ
2 1 43 trans rot rot trans trans
δ
α
δ
α
δ
δ
δ
=
+
+
+
)
|
|
sample(
ˆ
2 2 1 22 rot rot trans rot
δ
α
δ
α
δ
δ
=
+
+
)
ˆ
cos(
ˆ
'
x
trans rot1x
=
+
δ
θ
+
δ
)
ˆ
sin(
ˆ
'
y
trans rot1y
=
+
δ
θ
+
δ
2 1ˆ
ˆ
'
θ
δ
rotδ
rotθ
=
+
+
'
,
'
,
'
y
θ
x
θ
δ
δ
δ
1,
2,
,
x
x
,
y
,
u
=
rot rot trans=
動作モデルからのサンプリングの例
オドメトリモデルの例
ロボットの計測モデル
をモデル化する必要がある
ロボットの位置x(と地図)が与えられた際にzが得られ
る確率
)
,
|
(
z
x
m
p
t
t
移動ロボットのセンサ
接触センサ
:
Bumpers
内界センサ
加速度センサ
(spring-mounted masses)
ジャイロスコープ
(spinning mass, laser light)
コンパス
, 傾斜計 (earth magnetic field, gravity)
距離センサ
ソナー
(time of flight)
レーダー
(phase and frequency)
レーザーレンジファインダ
(triangulation, tof, phase)