ロボティクスーその来し方行く末

知能システム論1(10)
ロボットの腕の制御
2008.6.24
講義内容
1.はじめに
2.ベクトルの基礎
3.運動学(Kinematics)
4.動力学(Dynamics)
5.ロボットの腕の制御(Control)
6.行列の演算と応用(Matrix)
7.軌道計算(Trajectory)
8.応用(Application)
関節位置制御による先端部軌道制御
T1  k p1 ( r1  1 )  kv11  A111
A111  kv11  k p1 (1   r1 )  0
Pr (t )
角度検出器
r1
Pr (t )
座
標
変
換
モータ
関節サーボ系
k p1
-
T1 関節1
-
k v1
 rn
座標変換:逆運動学
d
dt
1
z0
T1  A111
T1  A11
x0
1 
 
... A1n  :   N1
n 
 
y0
動力学
サーボシステム
角度目標値 θr
+
K
ー
慣性モーメント I
モータトルク
T
角度検出器 θ
i  K1 ( r   )
θr
T  Kti
T  K t K1 ( r   )
K
1
Is 2
T  K ( r   )
T  I
I  K (   r )  0
   r  C1 sin
K
K
t  C2 cos
t
I
I
K
2
K
s
 ( s) 
 r ( s)  2
 r ( s)
K
s

K
1 2
s
θ
I  K (  1)  0の解
K
  1 cos
t
I

1
r
時間t
サーボ系の応答
A111  kv11  k p1 (1   r1 )  0
ダンピング(粘性)項の付加
応答
1  c1e t  c2e   t   r1
1
kv21  4 A11k p1  0
,  
 kv1  kv21  4 A11k p1
2 A11
臨界減衰
kv21  4 A11k p1  0
kv21  4 A11k p1  0
r1
時間t
サーボ系
直流モータの原理
T
F
N
i
B
r
+V
コミュータ
V:電圧
i: 電流
r:抵抗
B:磁界の強さ
F:力
T:トルク
S
GND
F∝B・i
T∝i
T=Kt・i
Kt:トルク定数
位置検出器(ポテンショメータ)
L
S
+V
摺動子
θ
GND
Vs
Vs=V・S/L
S/L=Vs/V
GND
+V
Vs
位置検出器(エンコーダ)
フォトセンサ
LED
フォトセンサ信号
A
B
パルスカウンタ
回転角度
A相
(0→1)&(not(B)), (1→0)&(B) アップカウント
(0→1)&(B)), (1→0)&(not(B)) ダウンカウント
B相
タコジェネレータの原理
ω
Velocity
S
V:電圧
B:磁界の強さ
Velocity:速度
ω:回転速度
B
+V
N
GND
V∝B・Velocity
V∝ω
V=Kg・ω
Kg:発電定数
制御誤差
A111  A122  ..  A1nn  N1  kv11  k p1 (1   r1 )  0の定常解
1
1   r1 
( A122  ..  A1nn  N1 )
k p1
1
kv21  4 A11k p1  0
臨界減衰
kv21  4 A11k p1  0
r1
kv21  4 A11k p1  0
時間t
知能システム論1(11)
ロボットの腕の軌道計算
2007.6.24
講義内容
1.はじめに
2.ベクトルの基礎
3.運動学(Kinematics)
4.動力学(Dynamics)
5.ロボットの腕の制御(Control)
6.軌道計算(Trajectory)
7.行列の演算と応用(Matrix)
8.応用(Application)
関節位置制御による先端部軌道制御
T1  k p1 ( r1  1 )  kv11  A111
A111  kv11  k p1 (1   r1 )  0
Pr (t )
角度検出器
r1
Pr (t )
座
標
変
換
モータ
関節サーボ系
k p1
-
T1 関節1
-
k v1
 rn
座標変換:逆運動学
d
dt
1
z0
T1  A111
T1  A11
x0
1 
 
... A1n  :   N1
n 
 
y0
動力学
逆運動学(Inverse Kinematics)
Pが与えられθ1,θ2,θ3を求める。
P  F (1 , 2 , 3 ) を解く。
θ3
P3
P  l1z1  l2 z2  l3 z3
1 : P  x0  (l1z1  l2 z2  l3 z3 )  x0
 l2 s2c1  l3 ( s2c3  s3c2 )c1
リンク3
リンク2
l3
l2
 (l2 s2  l3s2c3  l3s3c2 )c1 P
θ2
Z2
P  y0  (l2 s2  l3s2 c3  l3s3c2 ) s1
P  y0
1  tan (
)
P  x0
P2
X2
1
X0
l1
Y2
Z0,Z1 リンク1
Y1
P1
θ1
X1
Y0
s1 P  y0
1 P  y0
tan 1  
 1  tan (
)
c1 P  x0
P  x0
3 : P  l1z1  l2 z2  l3 z3
(l2 s2  l3s2c3  l3s3c2 )  0 のとき
P  l1 z1  (l2 z2  l3 z3 )  (l2 z2  l3 z3 )  l22  l32  2l2l3 ( z2  z3 )
2
1
2
 3  cos (
{ P  l1 z1  l22  l32 })
2l3l2
1
c3
 2 : P  z0  (l1z1  l2 z2  l3 z3 )  z0  l1  (l2 z2  l3 ( s3 x2  c3 z2 ))  z0
 l1  {l3s3 (c2 x1  s2 z1 )  (l2  l3c3 )( s2 x1  c2 z1 )}  z0
P  z0  l1  {( l3s3c2  (l2  l3c3 ) s2 ) x1  ( l3s3s2  (l2  l3c3 )c2 ) z1}  z0
 l3s3s2  (l3c3  l2 )c2  A sin(    2 )
但し
A  (l3s3 )2  (l3c3  l2 )2 , tan   (l3c3  l2 ) (l3s3 )
 2   sin 1 (( P  z0  l1 ) A)  tan 1 (l3c3  l2 ) (l3s3 )
 180   2  180 の範囲で妥当な解を求める。
軌道の計算
x
z
時間t
y
x
t
y
z
滑らかな軌道の設計
位置と速度・加速度の連続性
t
3次スプライン補間
yj
(t , y )
y j 1
tj
折れ線軌道
y  Ay j  By j 1
A
t j 1  t
t j 1  t j
t j 1
位置の連続性
   (1)
, B  1 A 
t tj
t j 1 t j
1
A
tj
B
t j 1
t
加速度の折れ線表現
y j
(t , y)
y j 1
tj
t j 1
t  t jのときの加速度 y jが与えられるとき、
加速度の連続性
y  Ay j  By j 1
A
t j 1  t
t j 1  t j
   (2)
, B  1 A 
t tj
t j 1 t j
折れ線軌道
1
A
tj
B
t j 1
t
y
位置と加速度が連続な軌道
yj
y j 1
tj
t
t j 1
1
1
y  Ay j  By j 1  ( A3  A)(t j 1  t j ) 2 y j  ( B 3  B)(t j 1  t j ) 2 y j 1    (3)
6
6
t  t jの時、 A  1, B  0
y  yj
t  t j 1の時、 A  0, B  1
y  y j 1
A 
y j 1  y j
1
1
, B 
t j 1  t j
t j 1  t j
3 A2  1
3B 2  1
y 

(t j 1  t j ) y j 
(t j 1  t j ) y j 1          (4)
t j 1  t j
6
6
y  Ay j  By j 1
t  t jの時、 A  1, B  0
t  t j 1の時、 A  0, B  1
y  y j
y  y j 1
y j 1
y j
tj
t j 1
(3)式の導出
y  Ay j  By j 1を積分する。
A2
B2
y  
(t j 1  t j ) y j  
(t j 1  t j ) y j 1  C
2
2
1
1
y  ( A3 )(t j 1  t j ) 2 y j  ( B 3 )(t j 1  t j ) 2 y j 1  Ct  D
6
6
1 3
1 3
2
y  ( A )(t j 1  t j ) y j  ( B )(t j 1  t j ) 2 y j 1  C ((t j 1  t j ) B  t j )  D
6
6
次の条件からC,Dを 決める。
t  t jの時、 A  1, B  0
t  t j 1の時、 A  0, B  1
y  yj
y  y j 1
1
1
2
y j  (t j 1  t j ) y j  Ct j  D,
y j 1  (t j 1  t j ) 2 y j 1  Ct j 1  D
6
6
1
y j 1  y j  (t j 1  t j ) 2 ( y j 1  y j )  C (t j 1  t j ) 続く
6
(3)式の導出
C
y j 1  y j
1
 (t j 1  t j )( y j 1  y j )
t j 1  t j 6
1
D  y j  (t j 1  t j ) 2 y j  Ct j
6
y j 1  y j 1
1
2
 y j  (t j 1  t j ) y j  (
 (t j 1  t j )( y j 1  y j ) )t j
6
t j 1  t j 6
1 3
1 3
2


y  ( A )(t j 1  t j ) y j  ( B )(t j 1  t j ) 2 y j 1
6
6
y j 1  y j 1
(
 (t j 1  t j )( y j 1  y j ))(( t j 1  t j ) B  t j )
t j 1  t j 6
y j 1  y j 1
1
2
 y j  (t j 1  t j ) y j  (
 (t j 1  t j )( y j 1  y j ) )t j
6
t j 1  t j 6
続く
1
1
y  ( A3 )(t j 1  t j ) 2 y j  ( B 3 )(t j 1  t j ) 2 y j 1
6
6
y j 1  y j
1
1
 ( y j 1  y j ) B 
t j  (t j 1  t j ) 2 ( y j 1  y j ) B  (t j 1  t j )( y j 1  y j )t j
t j 1  t j
6
6
y j 1  y j
1
1
2


 y j  (t j 1  t j ) y j 
t j  (t j 1  t j )( y j 1  y j )t j
6
t j 1  t j
6
1
1
 ( A3 )(t j 1  t j ) 2 y j  ( B 3 )(t j 1  t j ) 2 y j 1
6
6
1
1
 y j 1 B  y j (1  B)  (t j 1  t j ) 2 y j 1 B  (t j 1  t j ) 2 y j (1  B )
6
6
1
1
 ( A3 )(t j 1  t j ) 2 y j  ( B 3 )(t j 1  t j ) 2 y j 1
6
6
1
1
 y j 1 B  y j A  (t j 1  t j ) 2 y j 1 B  (t j 1  t j ) 2 y j A
6
6
1 3
1 3
2
 Ay j  By j 1  ( A  A)(t j 1  t j ) y j  ( B  B)(t j 1  t j ) 2 y j 1
6
6
速度の連続性
速度の式 (4)を用いて連続条件を与 える。
y j 1  y j
3 A2  1
3B 2  1
y 

(t j 1  t j ) y j 
(t j 1  t j ) y j 1
t j 1  t j
6
6


区間 t j 1 t j の t  t jの時の速度、
y j  y j 1
t j  t j 1

区間 x j
y j 1  y j

1
2
(t j  t j 1 ) y j 1  (t j  t j 1 ) y j
6
6

x j 1 の t  t jの時の速度、
2
1
 (t j 1  t j ) y j  (t j 1  t j ) y j 1
t j 1  t j 6
6
2つの区間の境界点で速度が等しい
y j 1  y j
t j 1  t j

y j  y j 1
t j  t j 1

t j  t j 1
6
y j 1 
t j 1  t j 1
3
y j 
y j ( j  1 ~ n )に関する n  2個の1次方程式
2個のパラメータを境界 条件に使える。
通常y1 , y nの境界条件を与える。
t j 1  t j
6
y j 1
練習問題
右図の3点が与えられた時、
始点終点の速度0の条件で
3次スプライン補間を求めよ。
1
2
1
y1  y2  y3
6
3
6
2
1
0  1  y1  y2
6
6
1
2
0  y2  y3
6
6
y
t1  0, t2  1, t3  2
y1  0, y2  1, y3  1
1
1 
t
1
2
練習問題
y
右図の3点が与えられた時、
始点終点の速度0の条件で
3次スプライン補間を求めよ。
x1  0, x2  1, x3  2
y1  0, y2  1, y3  1
1
1
2
1
9
y1  y2  y3
y1  ,
6
3
6
2
2
1
y2  3,
0  1  y1  y2
6
6
3
y3 
1
2
2
0  y2  y3
6
6
1
9 1
y  B  ( A3  A)  ( B 3  B )( 3)
6
2 6
1 
t
1
2
1
1
3
y  1  ( A3  A)( 3)  ( B 3  B )
6
6
2
A  1, B  0
A  0.8, B  0.2
0
0.08
1
1.096
A  0.6, B  0.4
A  0.4, B  0.6
0.27
0.54
1.108
1.072
A  0.2, B  0.8
A  0, B  1
0.80
1
1.024
1