ロボットの運動学
ロボットの運動学
順運動学とは
順運動学とは
座標系の回転と並進
同次座標変換行列
Denavit-Hartenbergの表記法
多関節ロボットの順運動学
多関節ロボットの順運動学
レポート課題
&中間試験について
逆運動学とは
ヤコビアン行列
ロボットの運動学・動力学
(
)
P
θ
( )
θ
( )
θ
( )
θ
( )
Equation of motion ( ( ), ( ), ( ))
f θ
t
θ
t
θ
t
=
τ
( )
t
運動方程式
(微分方程式)姿勢
(関節角の組合せ)Posture ( )
θ
t
=
(
θ
1( )
t
θ
2( )
t
"
θ
N( )
t
)
(
)
Tip position ( )
p
t
=
x t
( )
y t
( )
z t
( )
姿勢
(関節角の組合せ)手先位置
(順)
運動
学
Kinematics
θ
⇒
p
姿勢
向
を求める(関節角)から手先位置・方
逆
運動
学
Inverse kinematics
p
⇒
θ
(目標とする)手先位置・方向
を 実現する姿勢
(関節角)を求める運動
(軌道)計画
(順)
動力
学
τ
( )
t
⇒
θ
( )
t
運動方程式
を解いてトルク
パタ ン運動
(軌道)計画
(順)
動力
学
Dynamics
逆
動力
学
( )
t
⇒
( )
t
τ
θ
運動方程式
を解いてトルク
パターン から姿勢変化
(時間変化
)を求める( )
t
⇒
( )
t
θ
τ
(目標とする)姿勢変化
を実現するシミュレーション
逆
動力
学
Inverse Dynamics
θ
( )
t
⇒
( )
τ
t
(目標とする)姿勢変化
を実現するトルク
パターン(時間関数
)を求める制御
ロボットの順運動学
順運動学とは,ロボットの各関節の変位量
が 与えられたとき,ロボットの手先の位置と方向
が基準座標系
基準座標系
から見てどのようになるかを求める 問題である. [1] 回転運動に伴う座標変換 座標変換O x y z
O x y z
[2] 並進運動を伴う座標変換 座標変換行列R
1 1 1O x y z
−
O x y z
−
2 2 2 [ ] 並進運動を伴う座標変換 同次座標変換行列T
1 2( )
z
T
30
θ
=
D 2 1y
2y
2 y 0 5( )
1
x
y
z
⎛ ⎞
⎜ ⎟
=
= ⎜ ⎟
⎜ ⎟
p
u
2( )
( ) z θ R 2 1z
z
1 2y
2x
2O
1 y 0 0.86 0.5 θ p [3] 多関節ロボットの座標変換( )
1
1
⎜ ⎟
⎜ ⎟
z
⎝ ⎠
x
O
2y
1y
θ 1 2 1x
1O
2O
1 x x2 [3] 多関節ロボットの座標変換 0 0 1 1 1( )
1 2( )
2( )
n nq
q
nq
n −=
T
T
T
"
T
1x
2x
θ例1
手先位置の計算
関節の回転角から手先位置を求める 1 1 2 1 2 1 1 2 1 2cos
cos(
)
sin
sin(
)
e ee
l
l
l
l
x
y
θ
θ θ
θ
θ θ
+
+
⎛
⎞ ⎛
⎞
=
⎜
⎟ ⎜
=
⎟
+
+
⎝
⎠
⎝
⎠
p
平面
2
リンクの場合
1sin
1 2sin(
1 2)
el
l
y
⎝
θ
+
θ θ
+
⎠
⎝
⎠
3 1 2 22
2.23
ex
⎛
⎞
⎛
⎞
× +
⎛
⎞
⎜
⎟
⎜
⎟
y
2 2 3 1 2 22.23
1.87
2
e ex
y
⎛
⎞
⎛
⎞
= ⎜
⎟
⎜
⎟
⎜
⎟
⎜
⎟ ⎜
× +
⎟
⎝
⎠
⎝
⎠ ⎝
⎠
意味を考えると2
y
e
p
1 3 2 22
ex
⎛
⎞
⎛ ⎞
⎛
⎞
×
⎜ ⎟
⎜
⎟
⎜
⎟
意味を考えると 21
l
=
230
θ
=
D 2 3 1 2 22
e ey
=
⎜
⎟
+ ⎜ ⎟
⎜
⎟
⎜
⎟ ⎜
×
⎟ ⎜ ⎟
⎝
⎠ ⎝
⎠ ⎝ ⎠
O
からp
移動p
からp
へ移動1
2
l
=
1 260
θ θ
+
=
Dcos(
)
l
θ θ
+
p
0
3 1 3 3 2 2 2 22
⎛
⎞
⎛
⎞
−
⎛ ⎞
=
⎜
⎜
⎟
⎟
+ ⎜
⎟
⎜ ⎟
⎜ ⎟
⎜
⎟
O
からp
0 へ移動p
0 からp
e
へ移動 12
l
=
130
θ
=
D 2cos(
1 2)
l
θ θ
+
1 1 3 1 2 2 2 22
=
⎜
⎜
⎟
⎟
+ ⎜
⎟
⎜ ⎟
⎜ ⎟
⎜
⎟
⎝
⎠
⎝
⎠
⎝ ⎠
30度の回転1
2
130
θ
x
1cos
1l
θ
O
例1
つづき
各関節の座標系から見たリンク先端位置座標を組合わせて基準座標系における手先位置を得る⎛
⎞
2
1y
2p
03
1
⎛
⎞
= ⎜ ⎟
⎝
⎠
p
座標系O
1-x
1y
1から 見たO
2の位置O
1x
1y
1からO
2x
2y
2への平行移動
2
30
D 2y
p
2 3 2 12
⎛ ⎞
= ⎜ ⎟
p
座標系O
2-x
2y
2からO
1-x
1y
1からO
2-x
2y
2への平行移動
(
)
3 2 3 1 1 2cos
sin
i
30
30
30
30
⎛
−
⎞
−
=
= ⎜
⎜
⎟
⎟
R
1
O
30
2
x
p
1p
2
⎜ ⎟
⎝ ⎠
12p
見たp
2の位置(
)
1 3 2 2sin
30
cos
30
⎜
⎜
⎟
⎟
⎝
⎠
R
2O
30
D 0p
座標系O
1-x
1y
1から見た座標系O
2-x
2y
2の回転
平行移動と回転を
変換 表す
( )
0( )
2=
T
u
=
R
p
p
u
1
2
x
130
1O
平行移動と回転を1つの変換で表す
( )
( )
1=
T
u
2=
0
1
1
u
3 2 −1 2 3 3 2⎛
3 1 2+⎞
2.23
⎛
⎞ ⎛
⎞
⎛
⎞
⎛
p
⎞
⎜
⎟ ⎜
⎟
⎜
⎟
1 2 3 2 1 0 0 1 1 3 2 1 1 1 23 2 11
2.23
1.87
1
1
+⎛
⎞
⎛
⎞
⎛
⎞
⎜
⎟ ⎜
⎟
⎜
⎟
⎜
⎟
=
⎜
⎟
⎜
⎟
=
⎜
⎟
⎜
⎟
⎜
⎟
⎜
⎟
⎜
⎟
⎝
⎠
=
⎝
⎠
⎝
⎠
⎝
⎠
⎝
⎠
p
u
i
θ
θ
⎛
⎛ ⎞
⎞
⎛ ⎞
座標系の回転
2次元の例
2y
1 2 1 2cos
sin
sin
cos
x
x
y
y
θ
θ
θ
θ
⎛
⎛ ⎞
⎛ ⎞
=
⎜ ⎟
⎜ ⎟
⎝ ⎠
⎟
−
⎠
⎝
⎞
⎜
⎠
⎝
2y
0 87
1
⎛
⎞
⎛ ⎞
1 2y
y
⎝ ⎠
⎝
⎠
⎝ ⎠
1p
θ
回転
p
2 1y
0
0.5
1
1 20.87
0.5
1
0
⎛
⎞
⇒
=
⎛ ⎞
= ⎜ ⎟
⎝
⎠
⎜
⎝
⎠
⎟
p
p
3
⎛ ⎞
⎛
⎞
30
θ
= °の場合
0.87
θ
p
3 2 3 1 2 2 1 22
3
1
2
0.87
0.5
1
0
1
−⎛ ⎞ ⎛
⎞
=
⎛ ⎞
⎜ ⎟
=
⎝
⎛
⎞
⎜
⎟
⎜ ⎟ ⎜
⎟
⎜ ⎟ ⎝
⎠
⎝ ⎠
⎝
⎠
⎠
p
2y
1x
x
2 2 2⎝
⎝ ⎠
2
⎝
⎠
⎝
⎠
⎠
2 10
1
=
⎛
⎞
⎛ ⎞
⎜ ⎟
⎝ ⎠
p
1y
p
3 2 3 1 2 2 1 2 1 3 2 1 20.5
0.87
0
1
=
⎛
⎜
−⎞
⎟
=
⎛
⎜
⎜
−⎟ ⎜
⎟ ⎝
⎞
=
⎛
−
⎞
⎟
⎠
⎝
⎠
⎝
⎠
⎛ ⎞
⎜ ⎟
⎝ ⎠
→
p
θ
2 2⎝
2⎠
⎝
⎠
1x
x
2 移動後の座標系で与えられた位置が基準座標系から見てどの位置になるか
を座標変換行列で計算する演習
座標系の回転
回転後の座標系で与えられた位置基準座標系から見てどの位置になるか
が 座標変換行列を 計算 なさy
1 2 1 3?
⎛ ⎞ = ⎜⎜ ⎟⎟ ⎝ ⎠ ⇒p
=p
30
θ
= °
の場合
座標変換行列を用いて計算しなさい 2y
0
p
p
2 ⎜⎝ 3⎟⎠p
1 3 2 − 12⎛
1
⎞
23 230
⎜
⎟
⎜
⎟
⎛
⎞ ⎛ ⎞
=
⎛
⎜
⎞
⎟
=
⎜
−
⎟ ⎜ ⎟
=
p
場合
1y
0
θp
?
3 1 2 2 3 1 2 23
2
1
=
⎜
⎝
⎠
⎟
⎜
⎝
⎜
⎠
⎟
⎟
=
⎜
⎝
+
⎟ ⎜ ⎟
⎠
=
⎝
⎠
p
2 ⎛ ⎞ 2x
1 2 2 0?
⎛ ⎞ = ⎜ ⎟ ⎝ ⎠ ⇒p
=p
45
θ
=
°
の場合
2y
1x
2 まず45
○回転の行列を求める 2 2 2 2cos 45
° −
sin 45
°
⎛
−
⎞
⎛
⎞
⎜
⎟
⎜
⎟ ⎜
=
⎟
1y
?
まず45
○回転の行列を求める 2 2 2 2 2 22
2
0
2
−⎛
×
⎞ ⎛
⎞
⎛
⎞
⎛ ⎞
−
2 2 22
sin 45
°
cos 45
°
⎜
⎟
⎜
⎟ ⎜
⎟
⎝
⎠ ⎝
⎠
θ
p
?
2 2 2 2 2 2 2 2 22
0
2
2
0
2
2
0
1
×
⎛
⎞ ⎛
⎞
=
=
⎜
⎜
⎟ ⎜
=
⎟
⎟ ⎝ ⎠
⎝
⎛
⎞
⎜
⎟
⎝
⎠
⎛
×
−
⎠
⎠
⎞
⎜ ⎟
⎝
p
1x
x
2p
?
座標変換行列
R
任意軸
転
⎛ ⎞ ⎛
x
cos
θ
−
sin
θ
0
⎞⎛ ⎞
x
z
軸周りに
θ回転
2 1 rx (1 C ) C r rx y(1 C ) r Sz r rx z(1 C ) r Sy 2 x ⎛ − θ + θ − θ − θ − θ + θ ⎞ x ⎛ ⎞ ⎜ ⎟⎛ ⎞ ⎜ ⎟ ⎜ ⎟任意軸
r
周りに
θ回転
1 2 1 2 1 2cos
sin
0
sin
cos
0
0
0
1
x
x
y
y
z
z
θ
θ
θ
θ
⎛ ⎞ ⎛
⎞⎛ ⎞
⎜ ⎟ ⎜
=
⎟⎜ ⎟
⎜ ⎟ ⎜
⎟⎜ ⎟
⎝ ⎠ ⎝
⎠⎝ ⎠
2 2 1 2 1 2 where (1 ) (1 ) (1 ) (1 ) (1 ) (1 ) cos , sin x y z y y z x x z y y z x z r r C r S r C C r r C r S r r C r S r r C r S r C C y y z z C S θ θ θ θ θ θ θ θ θ θ θ θ θ θ θ θ − + − + − − − − − + − + ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠ ⎝ ⎠⎝ ⎠ = =⇒
p
1=
R
z( )
θ
p
2 θ θ xr
⎛ ⎞
⎜ ⎟
z
1
0
x( )
θ
⎛ ⎞
=
⎜ ⎟
⇒
R
r
⎛ ⎞ ⎛
x
11
0
0
⎞⎛ ⎞
x
2⎜ ⎟ ⎜
⎟⎜ ⎟
x
軸周りに
θ回転
x y zr
r
⎛ ⎞
= ⎜ ⎟
⎜ ⎟
⎝ ⎠
r
θ
0
x( )
⎜ ⎟
⎝ ⎠
0
1
( )
θ
⎛ ⎞
=
⎜ ⎟
⇒
R
r
1 2 1 20 cos
sin
0 sin
cos
( )
y
y
z
z
θ
θ
θ
θ
θ
⎜ ⎟ ⎜
=
−
⎟⎜ ⎟
⎜ ⎟ ⎜
⎟⎜ ⎟
⎝ ⎠ ⎝
⎠⎝ ⎠
R
x
y
θ
1
0
y( )
θ
=
⎜ ⎟
⇒
⎝ ⎠
R
r
0
0
( )
θ
⎛ ⎞
=
⎜ ⎟
⇒
R
r
⇒
p
1=
R
x( )
θ
p
2y
軸周りに
θ回転
x
0
1
z( )
θ
=
⎜ ⎟
⇒
⎝ ⎠
R
r
1 2 1 2cos
0 sin
0
1
0
x
x
y
y
θ
θ
⎛ ⎞ ⎛
⎞⎛ ⎞
⎜ ⎟ ⎜
=
⎟⎜ ⎟
⎜ ⎟ ⎜
⎟⎜ ⎟
y
1sin
0 cos
2y
( )
z
θ
θ
z
θ
⇒
⎜ ⎟ ⎜
⎟⎜
⎝
−
⎟
⎝ ⎠ ⎝
⎠
⎠
=
1 2p
R
p
R
y だけsin
の符号が違うことに注意並進を伴う座標変換
y
1y
2y
1O
1
(3)
3.5
1
⎛ ⎞
0.5
2O
1
1
3
⎛ ⎞
= ⎜ ⎟
⎝ ⎠
0p
1x
θ
1p
1
0
⎛ ⎞
= ⎜ ⎟
⎝ ⎠
2p
2x
0.871.87
1 0.87 3 0.5 ⎛ ⎛ ⎞ ⎛ ⎞⎞ = + ⎜ ⎜ ⎟ ⎜ ⎟⎟ ⎝ ⎠ ⎝ ⎠ ⎝p
1 ⎠=
+
1
2
0
p
Rp
p
3 3 1 2 2 1 0 1 1 0.87 1 1.87 − ⎛ ⎞⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ 2x
3 0.5 ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 単純な掛算で表したい 3 2 1 2 0 0 0 1 0 3 0.5 3 3.5 0 0 0 0 0 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜+ = ⎟ ⎜ ⎟ ⎜+ = ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ 1p
p
(30)
R
p
(1つの変換行列)⎛ ⎞ ⎛
p
1R p
0⎞⎛ ⎞
p
2 0p
(30)
2R
zp
0
1
1
1
⎛ ⎞ ⎛
⎞⎛ ⎞
=
⎜ ⎟ ⎜
⎟⎜ ⎟
⎝ ⎠ ⎝
⎠⎝ ⎠
1 0 2p
p
p
同次座標変換行列
1 2 1 2 1 2 x x y y ⎛ ⎞ ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎛ ⎞ ⎜ ⎟ ⎛ ⎞ ⎜ ⎟ = ⎜ ⎟ = = ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟p
p
u
u
3 2 3 1 2 2 1 3 1 2 2 2 0 1 1 1 1.87 0 3 3.5 0 3 − ⎛ ⎞⎛ ⎞ ⎛ + ⎞ ⎛ ⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ + ⎟ ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟u
1 2 , 1 11
= ⎝⎜1
⎟⎠ = ⎜ ⎟z2
= ⎜⎝1
⎟⎠ = ⎜ ⎟z ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠u
u
=
2 2 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 ⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠u
同次座標変換
行列
T
2u
=
位置座標に形式的に1
を加える同次座標変換
行列
T
1y
O 3.5 1 (3) 1z
3 1 2 2 0 1 1 ⎛ − ⎞ ⎜ ⎟ ⎜ ⎟ 2y
1 O 2 O 1 3 0 ⎛ ⎞ = ⎜ ⎟⎜ ⎟ ⎝ ⎠ 0 p 3 1 2 2 0 3 0 0 1 0 0 0 0 1 1 2 ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠T
1x
0.5 θ 2 O 1 2 1 0 0 ⎛ ⎞ = ⎜ ⎟⎜ ⎟ ⎝ ⎠ p 1 1.87 3.5 0 ⎛ ⎞ = ⎜⎜ ⎟⎟ ⎝ ⎠ p 座標系O
2
-x
2
y
2
z
2
から 座標系O
1
-x
1
y
1
z
1
への ⎝ ⎠ 1 2x
0.87 1.87 ⎝ 0 ⎠ ⎝ ⎠0 座標系O
1
-x
1
y
1
z
1
への 同次座標変換行列多関節ロボットの座標変換
座標系
O
基準座標系
O
座標変換行列
0T
座標系
O
n-x
ny
nz
nから基準座標系
O
0-x
0y
0z
0への座標変換行列
0T
n 各関節間の座標変換行列の積 0 0 1 1 1( )
1 2( )
2( )
n nq
q
nq
n −=
T
T
T
"
T
0 0 ( 90) ( 90) ( 90) ( 90) int 90 1 0 0 0 0 cos sin 0 1 0 sin cos 0 0 0 1 x z l l θ − − − − − = =− ⎛ ⎞ ⎜ ⎟ = ⎜⎜ ⎟⎟ ⎝ ⎠T
0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 x l ⎝ ⎠ ⎛ ⎞ ⎜ ⎟ = ⎜ − ⎟ ⎜0 1 0 0 ⎟ 0 0 0 1l ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ 2 2 2 2 90 90 1 cos sin 0 0 1 0 0 0 0 cos sin 0 sin cos 0 0 z l θ θ θ θ = − − ⎛ ⎞⎛ ⎞ ⎜ ⎟⎜ ⎟ = ⎜ ⎟⎜ ⎟T
1 2 2 2 2 2 1 90 90 90 2 0 0 1 0 0 sin cos 0 0 0 1 0 0 0 1 cos sin 0 0 1 0 0 0 0 0 1 0 i z x z l l θ θ θ θ θ = = = − = ⎜⎜ ⎟⎜⎟⎜ ⎟⎟ ⎝ ⎠ ⎝ ⎠ ⎛ ⎞⎛ ⎞ ⎜ ⎟⎜ ⎟T
1 2 2 0 0 1 0 sin cos 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 = ⎜⎜ θ θ ⎟⎜⎟⎜ − l ⎟⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠ cosθ 0 sinθ 0 ⎛ ⎞ 1 2 2 2 2 cos 0 sin 0 sin 0 cos 0 0 1 0 0 0 0 1 l θ θ θ − θ ⎛ ⎞ ⎜ ⎟ = ⎜ ⎟ ⎜ ⎟ ⎝ ⎠多関節ロボットの座標変換
ー同次変換行列の別誘導法ー
前頁
1は次
よう 求める とも きる
2 2 cos 0 sin 0 1 0 0 0 0 cos sin 0 0 1 0 0 1T
θ θ⎛
⎜
90 − 90⎞
⎟
⎜
⎛
θ θ⎞
⎟
前頁の
1T
2は次のように求めることもできる
2 2 1 1 2 90 0 cos sin 0 0 1 0 0 12 0 sin cos sin 0 cos 0 0 0 0 1 0 0 0 1 0 i 0 1 0 0 0 90 90 90 90 y x z l
l
θ θ θ θ θ θ θ = = = −⎜
⎟
⎜
⎟
=
⎜
⎟
⎜
⎟
⎜
⎟⎜
⎟
⎝
⎠⎝
⎠
⎛
⎞
⎛
⎞
T
1 2 2 2 2 cos 0 sin 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 sin 0 cos 0 0 0 0 1 0 0 0 1l θ θ θ θ − −
⎛
⎞
⎛
⎞
⎜
⎟
⎜
⎟
=
⎜
⎟
⎜
⎟
⎜
⎟⎜
⎟
⎝
0 0 0 1⎠⎝
0 0 0 1⎠
⎝
⎠⎝
⎠
2 2 2 2 cos 0 sin 0 sin 0 cos 0 θ θ θ − θ⎛
⎞
⎜
⎟
= ⎜
⎟
1 0 1 0 0 0 0 l1
= ⎜
⎟
⎜
⎟
⎝
⎠
どんな順序で座標系の変換を行 たと考えるかで
どんな順序で座標系の変換を行ったと考えるかで
誘導は異なるが,結果は同じ
演習
極座標型ロボットの運動学
θ
x
2r
1z
ep
1. O
2-x
2y
2z
2からO
1-x
1y
1z
1への変換行手順
0z
2z
1x
h
d
. O
列21T
x
2y
2 2からO
1x
1y
1 1 の変換行 2 (y 方向へ d 平行移動+ y 軸 周りにφ回転),O
1-x
1y
1z
1からO
0-φ
y
2 1y
h
x
0y
0z
0へとするの変換行列0
T
1
(z
方 向へh
平行移動+z
軸周りにθ回転) 1. 座標系O
2-x
2y
2z
2から基準座標系 0x
0y
を求め,T
=
0T
11T
2 とする.2. T
にh=3
,θ
=30
,d=2
,φ
=270
,r=5
O
0-x
0y
0z
0への座標変換行列T
を 求めよ. 2 O0からO1への平行移動量h=3 z
0 を代入してT
を具体的に数値で表し,O
2-x
2y
2z
2から見た手先位置の座標(0 0 )
から作 たp
(0 0
r
1)
T 2. O0からO1への平行移動量h 3
,z
0 軸回転角θ
=30
°, O1からO2への 平行移動量d=2
,y
1軸回転角(0, 0, r)
から作ったp
2= (0 0
r
1)
T を掛けてp
e=
T p
2を得る.y
1φ
=270
°,r=5
のとき,O
0-x
0y
0z
0 から見たp
eの座標を求めよ.演習 極座標型ロボットの運動学 (解)
1 変換行列1T
0T
は それぞれ 1. 変換行列1T
2,
0T
1 は,それぞれcos
sin
0 0
sin
cos
0 0
0
0
0
1
1
hh
θ
θ
θ
−θ
⎛
⎞
⎜
⎟
= ⎜
⎟
T
cos 0 sin 0 0 1 0 i 0 0 1 2 d dφ
φ
φ
φ
⎛
⎞
⎜
⎟
= ⎜
⎟
T
0
0
1
1
1
0
0
0
z z hh
θ θ==⎜
⎜
⎝
⎟
⎟
⎠
sin 0 cos 0 2 0 0 0 1 y y d θ φ==⎜
⎜
⎝
−φ
φ
⎟
⎟
⎠
T
よって
⎛
cos cosθ
φ
−sinθ
cos sinθ
φ
−dsinθ
⎞
⎛
c sθ φ −sθ c sθ φ −d sθ⎞
⎜
⎟
0 1 1 2 c s c s s c s 0 c 0 0 0 1cos cos sin cos sin sin
cos sin cos sin sin cos
sin 0 cos 0 0 0 1 d h d d h θ φ θ θ φ θ φ θ θ θ φ θ φ φ
θ
φ
θ
θ
φ
θ
φ
θ
θ
θ
φ
θ
φ
φ
− −⎛
⎞
⎛
⎞
⎜
⎟
⎜
⎟
=
=
⎜
⎟
= ⎜
⎟
⎜
⎟ ⎜
⎟
⎝
⎠ ⎝
⎠
T T
T
0 0 0 1 0 0 0 1⎝
⎠ ⎝
⎠
2. T
にh=3
, θ=30
,d=2
, φ=270
,r=5
を代入すると よく行われる略記法 3 1 ⎛ ⎞θ
r
2z
2x
1z
ep
d
なのでp
2= (0 05
1)T を掛けて 3 1 2 2 3 1 2 2 0 1 0 3 1 0 0 3 − − − − ⎛ ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟=
T
φ
0z
2 2y
1x
1y
h
d
0 0 0 1 ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ 5 3 2 5 3 1 2 2 3 1 0 1 0 3 1 30
5.33
0
0 77
− − −⎛
− −⎞
⎛
⎞⎛ ⎞
⎛
⎞
⎜
⎟
⎜
⎟⎜ ⎟
⎜
−
−
⎟
T
φ
0x
0y
5 2 3 1 2 2 0 3 1 0 0 3 0 0 0 1 2 3 3 10
0.77
5
1
3
1
e − − +⎜
⎟
⎜
⎟⎜ ⎟
⎜
⎟
= ⎜
⎟
⎜
⎟⎜ ⎟
⎜
⎟
⎜ ⎟
⎜
⎟
⎜
⎟
⎜
⎟⎝ ⎠
⎝
⎠
⎝
⎠
⎝
⎠
=
=
p Tp
DH
法
法
-
Denavit-Hartenberg
g
の表記法
表
ー
4つの変数(
リンクパラ メータ
)で多リンク機構を系統的に表現
リンク座標系
∑ を ∑
から見た場合の
同 次
変換で記述する
リンク座標系
∑i を ∑i-
1から見た場合の
同 次
変換で記述する
リンクパラメータ
変換行列
リ ク
ラ
タ
(i)
x
i軸 に沿って
a
i-1だけ
並進
(ii)
x
軸回りに
α
だけ
回転
(
1 1)
TX
i−,
a
i−T
変換行列
(
)
RX
α
T
(ii)
x
i-1軸回りに
α
i-1だけ
回転
(iii)
z
i軸 に沿って
d
iだけ
並進
(
1 1)
RX
i−,
α
i−T
(
)
TZ d
i,
iT
(
Z
θ
)
T
(iv)
z
i軸回りに
θ
iだけ
回転
T
R(
Z
i,
θ
i)
長さ
a
i-1の線分は,
関節
i-1 の回転軸にも,
関節
i の回転軸にも直交する
DH法による変換行列
(
1 1)
1 T 1 0 0 0 1 0 0 0 0 1 0,
i i i aX
a
− − −⎡
⎤
⎢
⎥
=
⎢
⎥
T
(
)
1 1 1 1 1 1 R 1 0 0 0 0 cos sin 0 0 sin cos 0,
i i i i i iX
α
α
α
−α
α
− − − −⎡
⎤
⎢
⎥
=
⎢
⎥
T
0 0 1 0 0 0 0 1⎢
⎥
⎣
⎦
⎣
⎢
0 sin0 0α
i−1 cos0α
i−1 10⎥
⎦
(
)
⎡
⎢
1 0 0 00 1 0 0⎤
⎥
(
)
⎢
⎡
cossinθ
θ
i −cossinθ
θ
i 0 00 0⎤
⎥
(
)
T 0 1 0 00 0 1 0 0 0 1,
i i i dZ d
=
⎢
⎥
⎢
⎥
⎣
⎦
T
R(
)
sin0 cos0 1 00 0 0 0 0 1,
i i i iZ
θ
=
⎢
θ
θ
⎥
⎢
⎥
⎣
⎦
T
(
) (
) (
) (
)
1 1 1 R 1 1 T R 1 T1
0
0
0
0 0
1 0 0
1 0 0 0
,
,
,
,
i i i i i i i i i i i i iC
S
a
X
a
X
Z d
Z
θ θα
θ
− − − − −−
⎡
⎤
⎡
⎤
⎡
⎤
⎡
⎤
=
T T
T
T
T
1 1 1 1 10 0
0 0 0
0 1 0 0
0
0
0 1 0 0
0 0
0 0 1 0
0
0
0 0 1
0
0
1 0
0 0 0 1
0
0
0
1
0 0 0 1
0
0
0 1
i i i i i i i i i i
a
C
S
S
C
S
C
d
θ θ α α θ θ α α − − − − −−
⎡
⎤
⎡
⎤
⎡
⎤
⎡
⎤
⎢
⎥
⎢
⎥
⎢
⎥
⎢
⎥
=
⎢
⎥
⎢
⎥
⎢
⎥
⎢
⎥
⎣
0 0 0
⎦
⎣
0
0
0
1
⎦
⎣
0 0 0
⎦
⎣
0
0
0 1
⎦
⎣
⎦
⎣
⎦
⎣
⎦
⎣
⎦
1 1 1 1 10
i i i i i i i i i iC
S
a
C S
α θ θC C
−
α θ θS
αS d
α−⎡
⎤
⎢
−
−
⎥
⎢
1 1 1 1⎥
1 1 1 10
0
0
1
i i i i i i i i i i i i i iS S
αα−− θθS C
αα−− θθC
αα−−C d
αα−−= ⎢
⎥
⎢
⎥
⎣
⎦
ロボットの逆運動学
手先の位置・方向が与えられた時に, それを実現する各関節の変位量を求 める 1 1 2 1 2 1 1 2 1 2cos
cos(
)
sin
sin(
)
T Tx
l
l
y
l
l
θ
θ θ
θ
θ θ
=
+
+
=
+
+
演習
例1の設定の場合, める問題 1 1 2(
1 2)
Ty
2 2 2 2 1 22
1 2cos
2 T Tx
+
y
= + +
l
l
l l
θ
θ1,θ2はいくらか?演習
2 2 2 2 1 2 1 2 1 2cos (
T 2T)
x y l l l lθ
=
− + − −解は
唯一
ではない
右手系と左手系
( ,
x y
T T)
解は
唯
ではない
θ
2l
2θ
2l
1l
各関節角をどう変化させたら ワークを把持できるか? 1θ
1ヤコビアン行列
(Jacob行列 , Jacobian)
各関節の
回転
速度と
手先
速度の関係を表す行列
=
ω θ
v
並進速度に関するヤコビアン行列
J
(
J
J
)
v
J
θ
p
e
= f(
q
)
: 各関節の回転角度と手先位置の関係
並進速度に関するヤコビアン行列
(
)
L1 L2 L= J
J
J
ed
∂
d
d
=
p
=
f q
≡
=
v
J
q
J q
e( )
x
y
=
p
v
θ
J
L2 2θ
J
L Ldt
dt
dt
=
=
≡
=
∂q
v
J
J q
( )
2θ
L1 1θ
J
L=
J
θ
回転関節のみなら⇒e
p
:基準座標系上での手先位置
(e: end-effecter)θ
Lq
:ロボットの一般化座標
関節の回転角 (回転関節)θ
,
可変リンク長 (直動関節)d
1θ
(回転関節) (直動関節)回転速度に関するヤコビアン行列
AJ
ω = J q
A例題
ヤコビアン行列と手先速度
(1) ヤコビアン行列J
Lを求めよ
(2)
l
1=
2,
l
2=
1,
θ θ
1=
2=
30
Dの時の
J
Lを計算せよ
(2)
の時の
J
Lを計算せよ
(3) (2)の時
,
とすると
手先速度はいくらか
130
[deg sec]θ
=
θ
2= −
45
[deg sec] 12,
21,
1 230
l
l
θ θ
手先速度はいくらか
(1) 手先位置p の座標(x y)を
解法手順
y
ep
(1) 手先位置p
eの座標
(x,y)を
θ
1θ
2で表す.
x x θ θ ∂ ∂ ⎛ ⎞ ⎜ ∂ ∂ ⎟算
θ
2l
ep
1 2 1 2 L y y θ θ θ θ ⎜ ∂ ∂ ⎟ ⎜ ⎟ = ⎜ ∂ ∂ ⎟ ⎜ ∂ ∂ ⎟ ⎝ ⎠J
を計算する.
( )
に
を代入する
θ
2θ
1l
(2) J
Lに
を代入する
( )
30
[deg sec]45
(3)
J
Lに
θ
=
1 230
θ θ
=
=
Dx
1θ
( )
L( )
-45
を掛ける
例題
ヤコビアン行列と手先速度
(解答例)
(
)
(
)
1 1 2 1 2 1 1 2 1 2cos
cos
e
=
⎛ ⎞
⎜ ⎟
x
y
= ⎜
⎛
l
l
sin
θ
θ
+
+
l
l
sin
θ θ
θ θ
+
+
⎞
⎟
⎝ ⎠ ⎝
⎠
p
(1)
(
)
1 1 2 1 2y
⎝ ⎠ ⎝
⎠
(
)
(
)
1 2 1 1 2 1 2 2 1 2 Lsin
sin
sin
x x
l
l
l
θ θθ
θ θ
θ θ
∂ ∂ ⎛ ⎞ ⎛ ⎞ ⎜ ∂ ∂ ⎟ ⎜ ⎟ ⎜ ⎟ = = ⎜ ⎟ ⎜ ⎟−
−
+
−
+
J
(
)
(
)
1 2 1 1 2 1 2 2 1 2L y y
l
cos
l
cos
l
cos
θ θ
θ
θ θ
θ θ
⎜ ⎟ = = ⎜ ⎟ ⎜ ∂ ∂ ⎟ ⎜ ⎟ ⎜ ∂ ∂ ⎟ ⎝ ⎠ ⎝ ⎠+
+
+
J
3 3 1 2 2 3 3 1 2 2 2 21.87
0.87
− ⋅ − − − − −⎛
⎞ ⎛
⎞
⎜
⎟
⎜
⎟
⎛
⎞
⎜
⎟
⎜
−
−
⎟
J
(2)
L 2 2 1 1 2 2 2 3 1 1 2 2 2 2 3 2 22.23
0.5
⋅ + +⎛
⎞
⎜
⎟
=
⎜
⎟
=
⎜
⎟
⎜
⎟
⎝
⎠
⎜
⎟ ⎜
⎟
⎝
⎠ ⎝
⎠
J
(2)
L 3 3 1 2 2 1 1 17.0 44 5 60.3
0 78
[m sec]
180
π
π
π
− − − −⎛
⎞⎛
⎞
⎛
⎞
⎛
⎞
⎜
⎟⎜
⎟
=
=
⎜
⎟⎜
⎟
=
⎜
⎟
⎜
⎟
⎝
⎠ ⎝
⎠
⎜
⎟
⎜
⎟
−
J θ
v
(3)
1 1 3 2 2 44.5 4180
0.78
π
+⎜
⎜
−⎟
⎟
⎝
⎠ ⎝
⎠
⎜
⎟⎝ ⎠
⎠
⎝
ヤコビ行列と特異姿勢
1
⎛ ⎞
(4) 手先速度を
とするためには各関節をどのような
速度
で回転させればよいか?
1
0
⎛ ⎞
⎜ ⎟
⎝ ⎠
=
v
θ
速度
θ
で回転させればよいか?
3 3 1 2 2 L 3 1 2 2 1 1 11
1
1
40.25
− − − −⎛
⎞
⎛
⎞
⎛
⎞ ⎛ ⎞
⎛ ⎞
⎛
⎞
⎜
⎟
= ⎜
⎟
=
=
⎜
⎟ ⎜ ⎟
⎜ ⎟
⎜
⎟
⎜
⎟
⎜
⎟
⎜
⎟
=
=
θ J v
3 2 L 1 3 1 2 2 4 1 1 2 2 3 1 3 +0
2
⎜
− − −⎟
0
− − −1.12
⎜
⎟ ⎜ ⎟
⎜ ⎟
⎜
⎟
⎜
⎟
⎝ ⎠
⎜
⎟
⎝ ⎠
⎜
⎟
⎝
⎠
⎝
⎠
⎝
⎠
⎝
⎠
も
1が存在 な 場合
もし
1が存在しない場合は?
L −J
1 1 1 1 1 2 L2sin
sin
sin
sin
sin
180
θ
θ
θ
θ
θ
θ
=
D⇒
J
=
⎛
⎜
−
+
⎞ ⎛
⎟ ⎜
=
−
⎞
⎟
2 L
1 1 1 1 1