【机器人学】机器人旋转的数学魔法:Rodrigues公式全解析!

机器人学:Rodrigues 公式



0 引言

Rodrigues公式:描述三维空间旋转的数学工具,用旋转轴和旋转角(轴角)来计算旋转后的向量或构造旋转矩阵,避免欧拉角的万向锁问题。

在机器人控制中,我们经常需要计算:

  • 机械臂关节旋转后,末端执行器的位置(比如机器人拿杯子时手腕怎么转)。
  • 无人机/机器人的姿态变化(比如四旋翼从水平变成倾斜飞行)。

Rodrigues 公式的作用:告诉你“某个物体绕一根轴转一定角度后,它的新位置 / 朝向”


1 定义

Rodrigues 公式的两种等价形式:

  1. 向量形式

给定:旋转轴为单位向量 ω ^ \hat{\bm{\omega}} ω^,旋转角为 θ \theta θ,即计算绕单位向量 ω ^ \hat{\bm{\omega}} ω^ 旋转 θ \theta θ 后的向量 r ′ \bm{r}' r
r ′ = r cos ⁡ θ + ( 1 − cos ⁡ θ ) ( ω ^ ⋅ r ) ω ^ + sin ⁡ θ ( ω ^ × r ) \bm{r}' = \bm{r} \cos \theta + (1- \cos \theta)(\hat{\bm{\omega}} \cdot \bm{r})\hat{\bm{\omega}} + \sin \theta (\hat{\bm{\omega}} \times \bm{r}) r=rcosθ+(1cosθ)(ω^r)ω^+sinθ(ω^×r)
2. 矩阵形式

通常可用旋转矩阵 R \bm{R} R 表示: r ′ = R ⋅ r \bm{r}' = \bm{R}\cdot\bm{r} r=Rr

其中, R = e [ ω ^ ] θ = I + [ ω ^ ] + ( 1 − c o s θ ) [ ω ^ ] 2 \bm{R} =e^{[\hat{\bm{\omega}}]\theta}=\bm{I}+[\hat{\bm{\omega}}] + (1-cos\theta)[\hat{\bm{\omega}}]^2 R=e[ω^]θ=I+[ω^]+(1cosθ)[ω^]2

[ ω ^ ] [\hat{\bm{\omega}}] [ω^] 是单位向量 ω ^ \hat{\bm{\omega}} ω^ 对应的反对称矩阵)


2 推导

2.1 代数方法

需要证明: R = e [ ω ^ ] θ = I + [ ω ^ ] s i n θ + [ ω ^ ] 2 ( 1 − c o s θ ) \begin{align*} \bm{R} =e^{[\hat{\bm{\omega}}]\theta}=\bm{I}+[\hat{\bm{\omega}}]sin\theta + [\hat{\bm{\omega}}]^2(1-cos\theta)\end{align*} R=e[ω^]θ=I+[ω^]sinθ+[ω^]2(1cosθ)

前提 1:泰特公式

f ( x ) f(x) f(x) x = 0 x=0 x=0处的泰特展开:

f ( x ) = ∑ i = 0 ∞ f ( i ) ( 0 ) i ! x i = f ( 0 ) + f ′ ( 0 ) 1 ! x + f ′ ′ ( 0 ) 2 ! x 2 + f ′ ′ ′ ( 0 ) 3 ! x 3 + f ( 4 ) ( 0 ) 4 ! x 4 + . . . \begin{align*} f(x) & =\sum^{\infty}_{i=0}{\frac{f^{(i)}(0)}{i!}x^i}\\ &= f(0)+\frac{f'(0)}{1!}x+ \frac{f''(0)}{2!}x^2+ \frac{f'''(0)}{3!}x^3+ \frac{f^{(4)}(0)}{4!}x^4+... \end{align*} f(x)=i=0i!f(i)(0)xi=f(0)+1!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值