剛体の位置と姿勢
• 3
次元空間内の剛体の位置・姿勢の表現方法–
基準座標系: Σ
A= O
A–{X
A, Y
A, Z
A}
–
剛体座標系: Σ
B= O
B–{X
B, Y
B, Z
B} – O
B の位置ベクトル:
Ap
B– X
B, Y
B, Z
B の方向を向く単位ベクトルをΣ
Aで表したもの:
Ax
B,
Ay
B,
Az
B– Σ
Aから見た剛体の位置:
Ap
B– Σ
Aから見た剛体の姿勢: {
Ax
B,
Ay
B,
Az
B}
•
回転行列–
AR
B= [
Ax
B Ay
B Az
B] – (
AR
B)
T(
AR
B) = I
3A −1 A T
ベクトルの表現
• Σ
AとΣ
B の原点は一致しているとする•
あるベクトルr
– Σ
Aから見たとき(Σ
Aでの表現):
Ar = [
Ar
x Ar
y Ar
z]
T– Σ
Bでの表現:
Br = [
Br
x Br
y Br
z]
TA
r =
Ax
BBr
x+
Ay
BBr
y+
Az
BBr
zA
r =
AR
BBr
同様に,
(Σ
AとΣ
B の立場を逆にすれば)
B
r =
BR
AAr
•
上の関係は任意のr
について成り立つから(
AR
B)(
BR
A) = I
3座標系の関係
• Σ
A,Σ
B と原点が一致している第3
の座標系Σ
C• r
のΣ
Cにおける表現Cr
B
r =
BR
CCr,
Ar =
AR
CCr
A
R
CCr =
Ar =
AR
BBr =
AR
BBR
CCr
A
R
C=
AR
BBR
C,
AR
B= (
CR
A)
T CR
BA
R
B=
(
Cx
A)
T Cx
B(
Cx
A)
T Cy
B(
Cx
A)
T Cz
B(
Cy
A)
T Cx
B(
Cy
A)
T Cy
B(
Cy
A)
T Cz
B(
Cz
A)
T Cx
B(
Cz
A)
T Cy
B(
Cz
A)
T Cz
B
同次変換行列
• 2
つの座標系Σ
A, Σ
B(
原点が一致していない)
• Σ
Aに対するΣ
B の位置:
Ap
B• Σ
Aに対するΣ
B の姿勢:
AR
B• Σ
B に関してBr
で表示された点をΣ
Aで表示A
r =
AR
BBr +
Ap
B
A
r 1
=
A
R
B Ap
B0 0 0 1
B
r 1
•
同次変換行列A
T
B=
A
R
B Ap
B0 0 0 1
• [
注意!]:
A
r
と
A
r 1
,B
r
と
B
r 1
を同一視することがある.
同次変換
•
同次変換A
r =
AT
BBr
•
クイズ– Σ
BはΣ
Aと原点が一致していて,Z
Aまわりにα
回転した位置にある.このときAT
B を 求めよ.– Σ
BはΣ
Aに対してY
A方向に2
,Z
A方向に1
だけ並進した位置にある.このときAT
B を 求めよ.同次変換の分解
1 0 1 2 3 4 5 6
1 0 1 2 3 4 5
ΣA
ΣB p
B
Ar
r
A B
•
同次変換行列
A
R
B Ap
B0 1
=
I
3 Ap
B0 1
A
R
B0 0 1
•
同次変換A
r =
AT
BBr
•
ベクトルの回転・並進としての解釈– Σ
AにおいてBr
で表現される点 をΣ
A に関してAR
B回転し,そ れをΣ
Aに関してAp
B 並進する とAr
を得る.– Σ
B における表現がBr
である点 のΣ
A における表現は Ar
であ る.座標系の回転・並進としての解釈
−1 0 1 2 3 4 5
−1 0 1 2 3 4 5
• Σ
AをΣ
Aに関してAR
B回転し,そ れをΣ
A に関して Ap
B 並進するとΣ
Bを得る.• Σ
AをΣ
A に関してAp
B 並進し,そ の場でAR
B 回転するとΣ
Bを得る.座標系の回転・並進としての解釈 [ 注意 1]
−1 0 1 2 3 4 5
−1 0 1 2 3 4 5
• Σ
AをΣ
Aに関してAR
B回転し,回 転後の座標系Σ
0Aに関してA0p
B並進 してもΣ
B にはならない!座標系の回転・並進としての解釈 [ 注意 2]
−1 0 1 2 3 4 5 6
−1 0 1 2 3 4 5
• Σ
AをΣ
Aに関してAp
B 並進し,Σ
A に関してAR
B 回転してもΣ
B には ならない!同次変換の積
• 3
つの座標系Σ
A, Σ
B, Σ
Cがあり,Σ
AとΣ
B の関係がAT
B,Σ
B とΣ
C の関係がBT
Cで与えら れるとき,Σ
AとΣ
Cの関係は?A
T
C=
AT
BBT
C•
ここでA
T
B=
A
R
B Ap
B0 1
=
I
3 Ap
B0 1
A
R
B0
0 1
つまり
A
T
C=
I
3 Ap
B0 1
A
R
B0
0 1
I
3 Bp
C0 1
B
R
C0
0 1
に注意する.
同次変換の積の解釈
1.
左から解釈する方法(a) Σ
AをΣ
Aに関してAp
B 並進(b)
それをその場でAR
B回転−→ Σ
B を得る(c) Σ
BをΣ
B に関してBp
C並進(d)
それをその場でBR
C回転−→ Σ
Cを得る2.
右から解釈する方法(a) Σ
AをΣ
Aに関してBR
C回転(b)
それをΣ
Aに関してBp
C並進−→ Σ
0B を得る(c) Σ
0BをΣ
Aに関してAR
B 回転(d)
それをΣ
Aに関してAp
B並進−→ Σ
Cを得る同次変換の積の例題,逆変換
•
クイズA
T
B=
√ 3/2 −1/2 0 2 1/2 √
3/2 0 1
0 0 1 0
0 0 0 1
,
BT
C=
1/ √
2 1/ √
2 0 1
−1/ √
2 1/ √
2 0 1
0 0 1 0
0 0 0 1
左から解釈する場合と右から解釈する場合の図を書き,同じ結果を得ることを確認せよ.
•
逆変換B
T
A= (
AT
B)
−1=
(
AR
B)
T−(
AR
B)
T Ap
B0 1
線形代数の応用
•
ロボットのキネマティクス•
ステレオ•
キャリブレーションPUMA ロボットのリンク構造
PUMA ロボットの同次変換行列 (0 → 1)
• Σ
0に対しΣ
1は並進なしでΣ
0のz
軸まわり の回転.0
T
1=
C
1−S
10 0 S
1C
10 0 0 0 1 0 0 0 0 1
ただし
C
1= cos(θ
1), S
1= sin(θ
1)
である.PUMA ロボットの同次変換行列 (1 → 2)
• Σ
1に対しΣ
2は...
– Σ
1をx
軸まわりに−π/2
回転.–
回転後のz
方向にl
b− l
d並進し,その場 でz
軸まわりにθ
2回転.1
T
2=
1 0 0 0 0 0 1 0 0 −1 0 0 0 0 0 1
1 0 0 0 0 1 0 0 0 0 1 l
b− l
d0 0 0 1
C
2−S
20 0 S
2C
20 0 0 0 1 0 0 0 0 1
=
C
2−S
20 0 0 0 1 l
b− l
d−S
2−C
20 0
0 0 0 1
•
次のように考えても同じ– Σ
1をy
方向にl
b− l
d並進し,その場でx
軸まわりに−π/2
回転.–
回転後のz
方向にθ
2回転.PUMA ロボットの同次変換行列 (2 → 3)
• Σ
2に対しΣ
3は...
– Σ
2をx
方向にl
c並進.–
その場でz
軸まわりにθ
3回転.2
T
3=
1 0 0 l
c0 1 0 0 0 0 1 0 0 0 0 1
C
3−S
30 0 S
3C
30 0 0 0 1 0 0 0 0 1
=
C
3−S
30 l
cS
3C
30 0 0 0 1 0 0 0 0 1
PUMA ロボットの同次変換行列 (3 → 4)
• Σ
3に対しΣ
4は...
– Σ
3をx
方向にl
e並進し,その場でx
軸 まわりに−π/2
回転.– z
軸方向にl
f並進し,その場でz
軸まわ りにθ
4回転.3
T
4=
1 0 0 l
e0 1 0 0 0 0 1 0 0 0 0 1
1 0 0 0 0 0 1 0 0 −1 0 0 0 0 0 1
1 0 0 0 0 1 0 0 0 0 1 l
f0 0 0 1
C
4−S
40 0 S
4C
40 0 0 0 1 0 0 0 0 1
=
C
4−S
40 l
e0 0 1 l
f−S
4−C
40 0
0 0 0 1
PUMA ロボットの同次変換行列
•
同様にして4
T
5=
C
5−S
50 0 0 0 −1 0 S
5C
50 0
0 0 0 1
5
T
6=
C
6−S
60 0 0 0 1 0
−S
6−C
60 0 0 0 0 1
ロボットキネマティクス ( 機構学 )
•
関節角度θ
から手先(
または手先に固定 されたツール)
の位置0r
と姿勢 0R
6 を 求めること•
一般的にはA
r =
AR
BBr +
Ap
Bを
A = 5, B = 6
から順に基準座標系に 向かって解いていく.•
同次変換行列の積で書くとコンパクト0
T
6=
0T
11T
2· · ·
5T
6インバースキネマティクス ( 逆機構学 )
•
手先の位置姿勢0T
6を実現する関節角度θ
を求めること•
非線形であり,解は一意ではない•
例–
右利き・左利き–
エルボーアップ・エルボーダウン透視射影変換
Image Plane
Y
X
Z
y
x
Object Coordinate System Camera
Coordinate System
Camera
f
cprel
•
幾何光学(
レンズのモデル) –
深さZ
,焦点距離f
x = f X
Z , y = f Y Z
•
透視投影変換s
x y 1
=
f 0 0 0 0 f 0 0 0 0 1 0
X Y Z 1
•
透視投影変換行列A =
f 0 0 0 0 f 0 0 0 0 1 0
– CCD
の 縦 横 の 解 像 度 の 違 い ,CCD
面のゆがみなどを考慮する とA
はさらに複雑になる.ビジョンシステム
World Coordinate System
Object Coordinate System Camera
Coordinate System
Image Plane
Camera
y
x f
Z
X
Y
•
対象物とカメラの関係(
CT
O)
–
対象物の座標系において表現Or
iを もつ点は,カメラ座標系では
C
r
i1
=
CT
O
O
r
i1
,
Cr
i=
X
iY
iZ
i
–
撮像面上の位置s
i
x
iy
i1
= A
CT
O
O
r
i1
= A(
WT
C)
−1WT
O
O
r
i1
キャリブレーション
World Coordinate System
Object Coordinate System Camera
Coordinate System
Image Plane
Camera
y
x f
Z
X
Y
•
正 確 に 測 定 さ れ た 対 象 位 置(
WT
O)
と物体形状(
Or
i)
に基 づいて,カメラで物体を計測し(x
i, y
i)
,カメラの内部パラメー タ(A)
および外部パラメータ(
WT
C)
を同定する問題.s
i
x
iy
i1
= A(
WT
C)
−1WT
O
O
r
i1
•
あとで詳しく説明する.透視射影変換
Image Plane
Y
X
Z
y
x
Object Coordinate System Camera
Coordinate System
Camera
f
cprel
•
幾何光学(
レンズのモデル) –
深さZ
,焦点距離f
x = f X
Z , y = f Y Z
•
透視投影変換s
x y 1
=
f 0 0 0 0 f 0 0 0 0 1 0
X Y Z 1
•
透視投影変換行列A =
f 0 0 0 0 f 0 0
ビジョンシステム
World Coordinate System
Object Coordinate System Camera
Coordinate System
Image Plane
Camera
y
x f
Z
X
Y
• 透視投影変換
s
x y 1
= A
X Y Z
1
• 対象物とカメラの関係(CTO)
– 対象物の座標系において表現Oriをもつ点のカ メラ座標系での位置
Cri 1
= CTO
Ori 1
, Cri =
Xi
Yi Zi
– 撮像面上の位置
si
xi
yi 1
= ACTO
Ori 1
= A(WTC)−1WTO
Ori 1
キャリブレーション
World Coordinate System
Object Coordinate System Camera
Coordinate System
Image Plane
Camera
y
x f
Z
X
Y
s
i
x
iy
i1
= A(
WT
C)
−1WT
O
O
r
i1
•
正確に測定された–
対象位置:
WT
O–
物体形状:
Or
i–
物体の画像: x
i, y
iただし
(i = 1, . . . , N )
に基づいて,カメラの–
内部パラメータ: A
–
外部パラメータ:
WT
Cビジョンシステムのキャリブレーション
World Coordinate System
Object Coordinate System Camera
Coordinate System
Image Plane
Camera
y
x f
Z
X
Y
s
i
x
iy
i1
= A(
WT
C)
−1WT
O
O
r
i1
= P
WT
O
O
r
i1
• P
のサイズは3 ×4
であり,自由 度は12
.ただし,P
0= αP
に 対しても上式は成立するため,本質的には
11
自由度.• 1
点の観測につき2
自由度の情 報が得られるため,6
点を観測 すればP
は決定可能.•
しかしノイズの影響などによ り,精度よく推定するためには 数十程度の点を計測する必要が あり,現在もまだアクティブな 研究対象である.キャリブレーションアルゴリズム
透視変換のモデル
:
s
i
x
iy
i1
= P
WT
O
O
r
i1
問題
: Find P ∈ R
3×4s.t.
X
i
°°
°°
°°
°°
°°
°°
°°
s
i
x
iy
i1
− P
X
iY
iZ
i1
°°
°°
°°
°°
°°
°°
°°
2
→ min
アルゴリズム
:
点i
に関して• P = [P
jk]
とおくと,最小化すべきベクトルの要素はs
ix
i− (P
11X
i+ P
12Y
i+ P
13Z
i+ P
14)
s y − (P X + P Y + P Z + P )
キャリブレーションアルゴリズム
• P
の要素を縦に並べたベクトルをP = [P
11, P
12, . . . , P
34]
T とし,パラメータs
i を消去する と,上式は·
X
iY
iZ
i1 0 0 0 0 −x
iX
i−x
iY
i−x
iZ
i−x
i ¸P
·
0 0 0 0 X
iY
iZ
i1 −y
iX
i−y
iY
i−y
iZ
i−y
i ¸P
となる.
• P
の自由度を用いてP
34= 1
となるように規格化する.P ˆ = [P
11, P
12, . . . , P
33]
T とおき,点i = 1, · · · , N
に関して前の式を連立すると最小化すべき式として
x
1y
1x
2y
2...
y
N
−
X
1Y
1Z
11 0 0 0 0 −x
1X
1−x
1Y
1−x
1Z
10 0 0 0 X
1Y
1Z
11 −y
1X
1−y
1Y
1−y
1Z
1X
2Y
2Z
21 0 0 0 0 −x
2X
2−x
2Y
2−x
2Z
20 0 0 0 X
2Y
2Z
21 −y
2X
2−y
2Y
2−y
2Z
2...
0 0 0 0 X
NY
NZ
N1 −y
NX
N−y
NY
N−y
NZ
N
P ˆ
を得る.
•
したがって,キャリブレーション問題は下記の最小2
乗問題となるmin x ky − M xk
2キャリブレーションの例
•
透視投影モデル:
s
i
x
iy
i1
= P
WT
O
O
r
i1
, P = A(
WT
C)
−1•
カメラ内部パラメータA =
f
xα c
x0 0 f
yc
y0 0 0 1 0
= [B 0]
•
カメラ外部パラメータ(
WT
C)
−1=
CT
W=
C
R
W Ct
W0 0 0 1