3.11.21PR運動の別解法                           2023-1-17

PRManip.h  PRMotion1( ),  PRSphMotion24( ),  PRCylMotion24( );

 

・円筒指がワークと接触してPR運動する解法を考える.

・「詳説ロボットの運動学 9.4.1 指の腹による物体操りの接触運動特性」の(a) PR接触運動条件は

 ワークと指野原の接触点Cにおける速度と回転速度をvwc[ ],  vfc[ ], ωwc[ ], ωfc[ ]とすると

      vfc[ ] = vwc[ ], (ωfc[ ], nc[ ]) = (ωwc[ ], nc[ ])

  であり,この4条件を満足する指の4関節の変位速度ν[ ]が確定する.

 微小時間dt後の関節角は

      dq[ ] = ν[ ]*dt,   q2[ ] = q1[ ] + dq[ ]

  この関節角から指のポーズが決まり,新しい接触点が決まる.

・この計算はC点の移動がdt時間の直線運動であり,dtを十分に小さい値にしなければ誤差が生じ,長い時間でその誤差が累積して正しい運動と異なってしまう.(非ホロノーム系の特徴)

 指とワークのPR接触運動では上記dt後に接触がわずかに離れる.

 

2PR運動

 

PR運動を以下のように変形する.dt後の状態

(1)  指とワークは接触する.or 指面とワーク面の最短距離D = 0

(2)  指とワークの転がり量は等しい.Sf = Sw

(3)  dt後の転がり軌跡sf[ ], sw[ ]の接触平面内の方向ベクトルは等しい.

(4)  指とワークの接触点における回転速度の法線方向成分は等しい. ωfcn = ωwcn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

これらを数式で表現すると以下のようになる.

・指の初期関節角q1[ ], 接触指(第4指)の関節位置J41[ ], 接触点位置rfc1[ ], 接触点までのリンク長Lf1, 指円筒回りの偏角φf1

      rfc1[ ] = J41[ ] + Lf1*efz1[ ] + af*(exf1[ ]*cos(φf1) + eyf1[ ]*sin(φf1) )

・ワークの初期位置rw1[ ], ワークの接触点位置rwc1[ ]

球面の場合:接触点のparameter αw1, βw1

    rwc1[ ] = rw1[ ] + aw*(cos(αw1)*sin((βw1) + sin(αw1)*sin(βw1) + cos(βw1) )

円筒面の場合:接触点のparameter Lf1, φf1

    rwc1[ ] = rw1[ ] + Lw1*ezw1[ ] + aw*(exw1[ ]*cos(φw1) + eyw1[ ]*sin(φw1) )

・ワークの代表点の速度vw[ ], 代表点回りの回転速度ωw[ ]

dt後のワークの位置rw2[ ], 接触点の移動先rwc3[ ]

    rw2[ ] = rw1[ ] * vw[ ]*dt

    rwc3[ ] = rw2[ ] + ωw[ ]×(rwc1[ ] – rw1[ ])

dt後の指の関節変位の増分dq[ ], 関節角q2[ ], 折衝\句点の移動先rfc3[ ]

 q2[ ]を与えると指の諸元が決まる.

     q2[ ] = q1[ ] + dq[ ]

     rfc3[ ] = J42[ ] + Lf1*ezf2[ ] * af*(exf2[ ]*cos(φf1) + eyf2[ ]*sin(φf1))

dt後の指-ワーク間の最近点Cf2, Cw2位置rfc2[ ], rwc2[ ], そのときの指parameter Lf2, φf2

      rfc2[ ] = J42[ ] + Lf2*ezf2[ ] + af*(exf2[ ]*cos(φf2) + eyf2[ ]*sin(φf2))

球面の場合のparameter αw2, βw2

    rwc2[ ] = rw2[ ] + aw*(cos(αw2)*sin((βw2) + sin(αw2)*sin(βw2) + cos(βw2) )

円筒面の場合のparameter  Lw2, φw2

    rwc2[ ] = rw2[ ] + Lw2*ezw2[ ] + aw*(exw2[ ]*cos(φw2) + eyw2[ ]*sin(φw2) )

・第2PR運動の誤差は上記の諸元から求められる.

(1)  -ワーク間の最短距離D

D = abs(rfc2[ ] – rwc2[ ])

(2)  指・ワークの転がり量の差 dS

sf[ ] = rfc2[ ] – rfc3[ ],   Sf = abs(sf[ ])

sw[ ] = rwc2[ ] – rwc3[ ] Sw = abs(sw[ ])

dS = Sf – Sw

(3)  指・ワークの接平面内の転がりベクトルesf[ ], ews[ ]のなす角dθ

接平面内のベクトルexs[ ], eys[ ]exs[ ] = ezf2[ ],  eys[ ] = exf2[ ]とする.

efs[x] = (sf[ ], exs[ ]),    sfs[y] = (sf[ ], eys[ ]),   θf = atan2(efs[y], efs[x])

ews[x] = (sw[ ], exs[ ]),  sws[y] = (sw[ ], eys[ ]),  θw = atan2(ews[y], ews[x])

dθ = θf – θw

(4)  接触点C2における指とワークの回転速度の法線方向nc2[ ]成分ωfn, ωwn

関節速度 ν[ ] = dq[ ] / dt,関節軸ベクトル AX[ ]

ωf[ ] = AX[1]*ν[1] + AX[2]*ν[2] + AX[3]*ν[3] + AX[4]*ν[4]

ωfn = (ωf[ ], nc2[ ])

  AXN[ ] = (AX[ ],nc2[ ])と置くと

ωfn = AXN[1]*ν[1] + AXN[2]*ν[2] + AXN[3]*ν[3] + AXN[4]*ν[4]

ωwn = (ωw[ ], nc2[ ])

dωn = ωfnωwn

・誤差 ERR[ ] = (D, dS, dθ, dωn)0とするdq[ ]Newton法によって求める.

   ERR[ ] = JB4[ ][ ] * dq[ ]

     dq[ ] = IJB4[ ][ ]*ERR[ ]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PR運動で速度条件を満足し(第1PR運動),ワークが静止し指だけがワーク上を転がる第2PR運動を付け加える.

・第2PR運動の条件:

 第1PR運動によるdt後のC点の移動先を指・ワーク上でCf3, Cw3とする.

   dt後に静止ワーク上を指が転がり接触する点をC2とすると転がり条件は

   転がり線  sf = C2 – Cf3,  sw = C2 – Cw3

  C2点の接平面の座標軸 (exc, eyc)

(1)  指・ワークの間隔             D = 0

dq[ ] = ν[ ]*dt,  q2[ ] = q1[ ] + dq[ ]

D = |rfc2[ ] – rwc2[ ]|

rfc2[ ], rwc2[ ] : dt後の指上の最近点

(2)  新しい接触点C2に到る転がり量は指上とワーク上で等しい.

sf[ ] = rfc2[ ]- rfc3[ ],  sw[ ] = rwc3[ ] – rwc[ ]

Sf = |sf[ ]|,  Sw = |sw[ ]|,  Sf = Sw

rfc3[ ] : 転がり後の指上C点の移動先C3

rfc2[ ] : 転がり後の指上の新しい接点C2

(3)  転がり線のベクトルのなす角  dv=inpro(sf, exc) – inpro(sw, exc),  dth = asin(dv) = 0

(4)  C2点の法線方向の成分は(ωf2, nc[ ]) = 0

この4条件を満足する関節速度ν2[ ], またはdq2[ ] = ν2[ ]*dtを求めることができる.

 

PR運動を定式化すると以下のようになる.

・第1PR運動

  ワークのC点の速度:

vwc[ ] = vw[ ] + ωw[ ]×(aw*nc[ ])

    nc[ ] : C点の法線ベクトル

 指上C点の速度:

vfc1[ ] = ΣLC[k][ ]*ν1[k] = vwc[ ]               (1-1)

  指の回転速度:

  ωf1[ ] = ΣAX[k][ ]*ν1[k]                        (1-2)

(ωf1[ ], nc[ ]) = ΣAXN[k]*ν1[k] = (ωw[ ], nc[ ])   (1-3)

       AX[k]k関節軸の方向ベクトル

    LC[k] = AX[k][ ]×LCJ[k][ ]k関節から見たC点の位置ベクトル

この4条件からν1[1,2,3,4]が得られる.

  dt後の指上Cf1点位置:rfc11[ ] = rfc1[ ] + vfc[ ]*dt

  dt後のワーク上Cw1点位置:rwc11[ ] = rwc[ ] + vwc[ ]*dt

  dt後の関節角:dq1[ ] = ν1[ ]*dt,  q11[ ] = q1[ ] + dq1[ ]    (1-4)

  条件(1-1), (1-3)を満たすν1[ ], dq1[ ]は線形演算で求められる.

・第2PR運動

指の相対回転速度::ωf2[ ]

       ωf2[ ] = ΣAX[k][ ]*ν2[k]

       (ωf2[ ], nc[ ]) = 0 ΣAXN[k]*ν2[ ]=0 ΣAXN[k]*dq2[ ] = 0    (2-1)

dt後の指-ワーク最近点, ,間隔:

dq2[ ] = ν2[ ]*dt, q2[ ] = q11[ ] + dq2[ ]                           (2-2)

q2[ ]のときの指-ワーク間の最近点と間隔

  rfc2[ ] = Ffr(q2[ ]), rwc2[ ] = Fwr(q2[ ])

(1)    D = abs(rfc2[ ] – rwc2[ ]) 0                                    (2-3)

指上とワーク上の転がり量

q2[ ]のときの指上, ワーク上C点の移動先C3:

  rfc3[ ] = Ffc(q2[ ]),  rwc3[ ] = rwc11[ ]

 指上,ワーク上の転がり

   sf[ ] = rfc2[ ] – rfc3[ ],  Sf = abs(sf[ ])

   sw[ ] = rwc2[ ] – rwc3[ ],  Sw = abs(sw[ ])

移動量の差

(2)   dS = Sf – Sw 0                                               (2-4)

  追加PR運動の3条件(2-1), (2-3), (2-4)を満たすdq2[1,2,3,4]は1つの任意性がある.