【数学基础】刚体绕定轴选旋转矩阵推导(罗德里格斯公式)

参考资料

  • wiki百科罗德里格斯旋转公式;
  • 世界第一本具有完全交互式图形的线性代数书;
  • opencv相关函数
    有同学提了一个问题:下面这个公式是怎么推导出来的?
    在这里插入图片描述首先介绍旋转矩阵集合的概念:
    SO(n) = { R ∈ R n × n ∣ R R T , det ( R ) = 1 } \text{SO(n)}=\{R\in\mathbb{R}^{n×n}|RR^T,\text{det}(R)=1\} SO(n)={RRn×nRRT,det(R)=1}
    SO(n) \text{SO(n)} SO(n)表示特殊正交群(Special Orthogonal Group), SO(3) \text{SO(3)} SO(3)表示三维空间旋转矩阵。定义 k \pmb{\text{k}} kkk是一个单位方向向量, v \pmb{\text{v}} vvv表示一个在三维实数空间 R 3 \mathbb{R}^3 R3的一个方向向量, v \pmb{\text{v}} vvv绕着 k \pmb{\text{k}} kkk转了 θ \text{θ} θ角度,用罗德里格斯公式表达旋转之后的向量 v rot \pmb{\text{v}_{\text{rot}}} vrotvrotvrot,表示为:
    v rot = vcos ( θ ) + ( k × v ) sin ( θ ) + k ( k ⋅ v ) ( 1 − cos ( θ ) ) \pmb{\text{v}_{\text{rot}}}=\pmb{\text{v}}\text{cos}(θ)+(\pmb{\text{k}}×\pmb{\text{v}})\text{sin}(θ)+\pmb{\text{k}}(\pmb{\text{k}}·\pmb{\text{v}})(1-\text{cos}(θ)) vrotvrotvrot=vvvcos(θ)+(kkk×vvv)sin(θ)+kkk(kkkvvv)(1cos(θ))

上面的公式可以表示成三个元素加和的形式,我觉得光看下面两张图已经可以想明白是如何计算出结果的了,佩服大神的解算方法,甚是玄妙。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
罗德里格斯公式表示的是如何通过定角度将原始空间矢量旋转后的矢量值表达出来,下一步就是如何转换成旋转矩阵 R \pmb{\text{R}} RRR,遵循下列公式:
在这里插入图片描述在这里插入图片描述
如果想自己在三维空间进一步验证,我还画了一个3维图,如下图所示:

在这里插入图片描述
感兴趣的朋友可以加入星球下载源文件自己深入验证研究:

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hunter206206

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值