ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Modern Robotics: Mechanics, Planning, and Control のTwist

教科書から分かったところだけをまとめています。

教科書はこの本です。今回はTwist。 www.amazon.co.jp

Twist

教科書で最初に出てくるのは56ページ目。教科書によるとtwistは角速度と普通の速度の組み合わせを表しています。

Example 3.23からTwistを求めてみます。 車の回転の問題です。車の前輪が傾いているので、ある点を中心にグルグル回ります。回転の中心がr、回転の角速度がωとします。{s}から見たrの座標が(2,-1,0)、前輪がエンドエフェクタに相当してその座標系{b}からみたrの座標は(2, 1.4, 0)です。ωは2 rad/s とします。ここまでが与えられた値です。

f:id:natsutan:20211208205206p:plain
Figure 3.18

まず座標系{s}と{b}の関係を求めます。{s}からみた{b}の座標は(4,0.4,0)、{s}と{b}の座標軸を比べながら、前回の記事を見ながらまとめると、

natsutan.hatenablog.com

T_{sb} =  \begin{bmatrix} -1 & 0 & 0 & 4 \\ 0 & 1 & 0 & 0.4 \\ 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & 1  \end{bmatrix} 

Twistは、(ωx, ωy, ωz, vx, vy, vz).Tです。教科書によっては並びが違ったり、ωがベクトル表示になって文字数が減ったりしますが、Twistは必ず1x6の行列になります。ωは2 rad/sと与えられているので、角速度ωを使ってリニアな速度vを求めます。vとωは回転の中心rを使って、この関係があります。

v =  \dot p - \omega \times p = \dot p + \omega \times (-p) = \dot p + p \times \omega  

ここでdotのついたpはpの時間微分なので、pが動かない場合は0でよいはず。つまり、ωとpの外積でvが求められます。

Νs

本当はν(ニュー)だけど、vと見分けがつかないので大文字で。 {s}座標系のr、raは(2,-1,0)です。ωは右手系なので(0, 0, 2)です。

v_s = (2, -1, 0) \times (0, 0, 2) = (-2, -4, 0)
\nu_s = (0, 0, 2, -2 ,-4, 0)^T

Nb

{b}座標系でのr、rbは(2, 1.4, 0)、ωは右手系なので(0, 0, -2)です。

 v_b = (2, 1.4, 0) \times (0, 0, -2) = (2.8, 4, 0)
 \nu_b = (0, 0, -2, 2.8 ,4, 0)^T

Twistの行列表現

Twistは1x6の行列ですが、回転行列っぽい表現が使われることもあります。Twist Nsと区別するために[Ns]と表現されます(本当はν)。 関係式がこの3つ。

 \nu_s =  \begin{bmatrix} \omega_s \\ v_s  \end{bmatrix} \in \mathbb{R}^6  

 [\nu_s]  =  \begin{bmatrix}  [\omega_s] & v_s \\ 0 & 0  \end{bmatrix}  

 [\hat \omega ]  =  \begin{bmatrix}  0 & -\hat \omega_3 &  \hat \omega_2 \\  \hat \omega_3 & 0 & - \hat \omega_1  \\  -\hat \omega_2  & \hat \omega_1 & 0 \end{bmatrix}  

これを使うとNsはこうなります。右下が0な所が回転行列と違います。


 [\nu_s ]  =  \begin{bmatrix}  0 & -2 &  0 & -2 \\  2 & 0 & 0 & 4  \\  0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0  \end{bmatrix}