《Modern Robotics》阅读笔记3——刚体的运动(三)

《Modern Robotics》阅读笔记3——刚体的运动(三)

这篇文章主要讨论了角速度和旋转矩阵的表示方法。

1. 角速度定义

在这里插入图片描述

这幅图的左图中,坐标系 { x ^ , y ^ , z ^ } \{\hat{x},\hat{y},\hat{z}\} {x^,y^,z^}绕着 ω ^ \hat{\omega} ω^旋转,经过 Δ t \Delta{t} Δt的时间,旋转了 Δ θ \Delta{\theta} Δθ的角度。
假设 Δ t \Delta{t} Δt无限逼近于0,我们定义 θ ˙ = Δ θ Δ t \dot{\theta}=\frac{\Delta{\theta}}{\Delta{t}} θ˙=ΔtΔθ为旋转的速率,结合旋转的方向 ω ^ \hat{\omega} ω^,我们就可以定义角速度为:
ω = ω ^ θ ˙ \omega = \hat{\omega}\dot{\theta} ω=ω^θ˙

这幅图的右图,我们可以得到 x ^ , y ^ , z ^ \hat{x},\hat{y},\hat{z} x^,y^,z^轴方向上的角速度:
x ^ ˙ = ω × x ^ y ^ ˙ = ω × y ^ z ^ ˙ = ω × z ^ \begin{matrix} \dot{\hat{x}} = \omega \times \hat{x} \\ \\ \dot{\hat{y}} = \omega \times \hat{y} \\ \\ \dot{\hat{z}} = \omega \times \hat{z} \end{matrix} x^˙=ω×x^y^˙=ω×y^z^˙=ω×z^

2. 角速度与旋转矩阵的关系

到目前为止,我们并没有指定 ω ^ \hat{\omega} ω^向量是在哪个坐标系下表示的,接下来我们要在具体的坐标系表示下讨论这件事了。

假设我们有一个固定坐标系{s}和一个体坐标系{b},旋转矩阵 R ( t ) R(t) R(t)表示{b}系在{s}系下的姿态(这里主要是强调旋转矩阵是变化的),旋转方向 ω ^ \hat{\omega} ω^在{s}系下的表示为 ω ^ s \hat{\omega}_s ω^s
其中, R ( t ) = R s b ( t ) = [ r 1 ( t ) , r 2 ( t ) , r 3 ( t ) ] R(t)=R_{sb}(t)=[r_1(t),r_2(t),r_3(t)] R(t)=Rsb(t)=[r1(t),r2(t),r3(t)] r 1 ( t ) r_1(t) r1(t)代表{b}系的x轴在{s}系下的表示, r 2 ( t ) , r 3 ( t ) r_2(t),r_3(t) r2(t),r3(t)分别代表y和z轴。

因为 ω s \omega_s ωs r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3都是{s}系下表示的向量,于是根据上面的公式:
r 1 ˙ = ω s × r 1 r 2 ˙ = ω s × r 2 r 3 ˙ = ω s × r 3 \begin{matrix} \dot{r_1} = \omega_s \times r_1 \\ \\ \dot{r_2} = \omega_s \times r_2 \\ \\ \dot{r_3} = \omega_s \times r_3 \end{matrix} r1˙=ωs×r1r2˙=ωs×r2r3˙=ωs×r3
所以,旋转矩阵的微分形式就可以表达为:
R ˙ = [ ω s × r 1 ∣ ω s × r 2 ∣ ω s × r 3 ] = ω s × R = [ ω s ] R \dot{R}=[ \omega_s \times r_1 | \omega_s \times r_2 | \omega_s \times r_3 ]=\omega_s \times R=[\omega_s]R R˙=[ωs×r1ωs×r2ωs×r3]=ωs×R=[ωs]R

注:
为了消除这里的叉乘运算,我们可以引入一个新的概念。我们定义 [ ω s ] [\omega_s] [ωs]为向量 ω s ∈ R 3 \omega_s \in \mathbb{R^3} ωsR3 3 × 3 的 反 对 称 矩 阵 , 则 有 3\times 3的反对称矩阵,则有 3×3 ω × R = [ ω s ] R \omega \times R = [\omega_s]R ω×R=[ωs]R成立。
ω = [ ω 1 , ω 2 , ω 3 ] \omega=[\omega_1,\omega_2,\omega_3] ω=[ω1,ω2,ω3]时,
[ ω ] = [ 0 − ω 3 ω 2 ω 3 0 − ω 1 − ω 2 ω 1 0 ] [\omega]=\left[ \begin{matrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{matrix} \right] [ω]=0ω3ω2ω30ω1ω2ω10

回到正题
所以,很显然:
[ ω s ] = R ˙ R − 1 [\omega_s]=\dot{R}R^{-1} [ωs]=R˙R1

现在我们得到了,旋转矩阵 R R R和角速度 [ ω s ] [\omega_s] [ωs]的关系。那么,如何求 ω b \omega_b ωb R R R的关系呢?

因为 R ∈ S O ( 3 ) R\in SO(3) RSO(3),有如下关系式成立(读者可以自己证明):
R [ ω ] R T = [ R ω ] R[\omega]R^T=[R\omega] R[ω]RT=[Rω]

因为 ω b = R s b T ω s = R T ω s \omega_b=R_{sb}^{T}\omega_s=R^T\omega_s ωb=RsbTωs=RTωs,所以:
[ ω b ] = [ R T ω s ] = R T [ ω s ] R = R T ( R ˙ R T ) R = R T R ˙ = R − 1 R ˙ \begin{aligned}\left[\omega_{b}\right] &=[R^{T} \omega_{s}] \\ &=R^{T}\left[\omega_{s}\right] R \\ &=R^{T}(\dot{R} R^{T}) R \\ &=R^{T} \dot{R}=R^{-1} \dot{R} \end{aligned} [ωb]=[RTωs]=RT[ωs]R=RT(R˙RT)R=RTR˙=R1R˙

于是,我们就得到了 ω b \omega_b ωb R R R的关系。

3. 对于角速度的理解

上文中提到的 ω b \omega_b ωb,不能理解为当前的运动相对于体坐标系{b}的角速度。而应该理解为,当前运动相对于一个与体坐标系{b}完全对齐的静止坐标系的角速度。

另外,值得注意, ω s \omega_s ωs完全不取决于{b}系如何选择, ω b \omega_b ωb也完全不取决于{s}系如何选择。

本篇文章结束。

注:为了更好的阅读体验,避免文章过长,原本一章的内容被拆分成了多篇文章。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值