Rigid-Body Motion(旋转变换\Screw motion\Spatial velocities\Force)
SE(3)是一个4X4的矩阵.它具有的性质如下:
-
两个SE(3)的乘积仍是一个SE(3)
-
SE(3)的逆: $$T{-1}=\begin{bmatrix}RT&-R^Tp\0&1\end{bmatrix}$$
-
\(T=(R,p)\in R^3, x,y\in R^3\),则有:
- \(||Tx-Ty||=||x-y||,||.||\)指标准欧式距离,如\(||x||=\sqrt{x^Tx}\)
- \(<Tx-Ty,Ty-Tz>=<x-y,y-z>\),\(<.>\)指内积,如\(<x,y>=x^Ty\)
上述性质中,T是某一点的一个transformation,如T将一点x转换至Tx.3中第一个性质保持距离不变,第二个性质保持角度不变.
在上图中,有$$R_{ab}R_{bc}=R_{ac}$$ $$\vec u+\vec v=\vec w \qquad u_a=\vec u \qquad v_b=\vec v$$
现在直接将\(\vec u\)与\(\vec v\)想加是没有意义的,因为他们是基于不同的坐标系的.所以:
因此:
- \(T_{aa}=I\qquad T_{ab}^{-1}=T_{ab}\)
Screw Motion##
这是在Exponential Coordinate下同时表示旋转和平移的一种表示.
给定\(w,v\in R^3\):
S被称为twist,定义\([S]\in R^{4X4}\)是如下的矩阵:
根据以上的定义,我们需要推到出\(e^{[S]\theta}\).
现在给定一个旋转和平移的transform,如何求得对应在Exponential Coordinate下的\(e^{[S]\theta}\)?
以下给出算法:
已知\((R,p)\in SE(3)\),求\(e^{[S]\theta}\):
- 如果\(R=I\),那么\(w=0, v=p/||p||, \theta=||p||\)
- 如果\(tr R=-1\),那么\(\theta=\pi , [w]=logR\)
- 否则:
其中,\(G^{-1}(\theta)=\frac{1}{\theta}I+\frac{1}{2}[w]+(\frac{1}{\theta}-\frac{1}{2}cot\frac{\theta}{2})[w]^2\)
给定\(S=(w,v)\in R^6,S'=(w',v')\in R^6,T=(R,p)\in SE(3)\),Adjoint map \(S'=Ad_T(S)\)定义:
\([Ad_T]\)是个6X6矩阵.
使用以上的定义,我们可以有:
还可以这样表示:
性质:
- \(Ad_{T_1}(Ad_{T_2}(S))=Ad_{T_1T_2}(S)\)
- \(Ad_T^{-1}=Ad_{T^{-1}}\)
- \(Ad_{T^{-1}}(Ad_T(S))=Ad_{T^{-1}T}(S)=Ad_I(S)=S\)
假定\(S_a=(w_a,v_a)\)是在a坐标系下的screw motion,\(S_b=(w_b,v_b)\)是在b坐标系下的screw motion,则:
Spatial Velocities##
\(\dot RR^{-1}\)或者\(R^{-1}\dot R会得到角速度向量. 类似的我们可以得到:\)
S表示固定参参考系,B表示移动参考系(body coordinate),\(T_{sb}\in SE(3)\):
所以有:
以上称之为移动参考系中的Spatial Velocity.
以上称之为固定参考系中的Spatial Velocity.
\(V_s\)和\(V_b\)关系如下:
Spacial Force##
假设一个力f作用在刚体的一点p上.给定一个a参考系,\(f_a \in R^3\)是在a坐标系下的f的表示,产生力矩\(m_a\):
其中\(r_a\in R^3\)表示坐标系a中原点到p的向量,将力\(f_a\)和力矩\(m_a\)形成\(F_a=(m_a,f_a)\),这个称之为在a坐标系下的Spatial Force.
现在确定两个坐标系a与b中Spatial Force: \(F_a={m_a,f_a}\)与\(F_b={m_b,f_b}\)的关系:
\(T_{ab}=\begin{bmatrix}R_{ab} & p_{ab} \\ 0 & 1\end{bmatrix}\)
在上图中,显然$$f_b=R_{ba}f_a$$
\(r_b=R_{ba}(r_a-p_{ab})\),这是因为\(r_a-p_{ab}\)是在a坐标系中表示的,转换到b坐标系下需要诚意R_{ba},注意与之前的在同一个坐标系中表示旋转的向量点的不同:
力矩\(m_b=r_b\times f_b\)就可以写成:
因为\([p_{ab}]^T=-[p_{ab}]\),所以:
或者可以表示如下: