罗德里格斯旋转公式证明-简洁

罗德里格斯旋转公式证明。

设旋转向量为 ( n , θ ) (n, \theta) (n,θ),设其对应的旋转矩阵为 R R R

如何证明?
R = c o s θ I + n ∧ s i n θ + ( 1 − c o s θ ) n n T R=cos\theta I + n^{\wedge}sin\theta+(1-cos\theta)nn^{T} R=cosθI+nsinθ+(1cosθ)nnT
证明过程如下:

如图所示,设旋转向量为 A ^ \hat{A} A^,记为 n n n,设三维中的点 r r r n n n旋转 θ \theta θ后得到 r ′ r^{'} r,其中 n n n为单位方向向量,向量 n n n的起点为坐标原点。

image

r 3 r_3 r3为r在 n n n上的投影,则
r 3 = ( r ⋅ n ) n (1) r_3=(r\cdot n)n \tag{1} r3=(rn)n(1)
r 1 r_1 r1为r减去r在 n n n上面的分量 r 3 r_3 r3,则
r 1 = r − r 3 (2) r_1=r-r_3 \tag{2} r1=rr3(2)
r 2 r_2 r2 n n n r 1 r_1 r1的叉乘结果向量,则
r 2 = n × r 1 (3) r_2 = n\times r_1 \tag{3} r2=n×r1(3)
因此, r 1 , r 2 , r 3 r_1,r_2,r_3 r1r2r3构成了两两垂直的坐标系,但是模长不等于1, r 1 r_1 r1 r 2 r_2 r2模长相等。

由上图所示, r ′ r^{'} r r 1 和 r 2 r_1和r_2 r1r2所在的平面上的投影为 r ′ − r 3 r^{'}-r_3 rr3,则将其用 r 1 和 r 2 r_1和r_2 r1r2表示有
r ′ − r 3 = r 1 c o s θ + r 2 s i n θ r^{'}-r_3=r_1cos\theta+r_2sin\theta rr3=r1cosθ+r2sinθ
则,
r ′ = r 1 c o s θ + r 2 s i n θ + r 3 (4) r^{'}=r_1cos\theta+r_2sin\theta+r_3 \tag{4} r=r1cosθ+r2sinθ+r3(4)
综上所述,将(1)(2)(3)代入(4)式,则
r ′ = ( r − r 3 ) c o s θ + ( n × r 1 ) s i n θ + r 3 = r c o s θ + ( n × r 1 ) s i n θ + ( 1 − c o s θ ) r 3 = r c o s θ + ( n × ( r − r 3 ) ) s i n θ + ( 1 − c o s θ ) r 3 = r c o s θ + ( n × r − n × r 3 ) s i n θ + ( 1 − c o s θ ) r 3 ( 由于 n × r 3 = 0 ) = r c o s θ + n × r s i n θ + ( 1 − c o s θ ) r 3 = r c o s θ + n ∧ s i n θ ⋅ r + ( 1 − c o s θ ) ( r ⋅ n ) n = I c o s θ ⋅ r + n ∧ s i n θ ⋅ r + ( 1 − c o s θ ) n n T ⋅ r (5) \begin{aligned} r^{'} &=(r-r_3)cos\theta+(n\times r_1) sin\theta+r_3 \\ &=rcos\theta+(n\times r_1)sin\theta+(1-cos\theta)r_3 \\ &=rcos\theta+(n\times(r-r_3))sin\theta+(1-cos\theta)r_3 \\ &=rcos\theta+(n\times r-n\times r_3)sin\theta+(1-cos\theta)r_3 \space \space(由于n\times r_3 =0)\\ &=rcos\theta+n\times r sin\theta+(1-cos\theta)r_3 \\ &=rcos\theta+n^{\wedge}sin\theta \cdot r+(1-cos\theta)(r\cdot n)n \\ &=Icos\theta\cdot r+n^{\wedge}sin\theta\cdot r+(1-cos\theta) nn^{T}\cdot r \end{aligned} \tag{5} r=(rr3)cosθ+(n×r1)sinθ+r3=rcosθ+(n×r1)sinθ+(1cosθ)r3=rcosθ+(n×(rr3))sinθ+(1cosθ)r3=rcosθ+(n×rn×r3)sinθ+(1cosθ)r3  (由于n×r3=0)=rcosθ+n×rsinθ+(1cosθ)r3=rcosθ+nsinθr+(1cosθ)(rn)n=Icosθr+nsinθr+(1cosθ)nnTr(5)
设旋转矩阵为R,则 r ′ = R ⋅ r r^{'}=R\cdot r r=Rr,由公式(5)可知
R = I c o s θ + n ∧ s i n θ + ( 1 − c o s θ ) n n T R=Icos\theta+n^{\wedge}sin\theta+(1-cos\theta)nn^{T} R=Icosθ+nsinθ+(1cosθ)nnT
证明完毕。

参考链接:

1、https://wuli.wiki/online/RotA.html

2、https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula

3、https://sites.cs.ucsb.edu/~lingqi/teaching/resources/GAMES101_Lecture_04_supp.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RDD与Java实战:学生列表,先按性别降序,再按年龄降序排列

文章目录 Scala RDD 实现Java 实现实战总结 在本实战任务中,我们的目标是对学生列表进行排序,排序规则是先按性别降序排列,再按年龄降序排列。我们提供了两种实现方式:使用Scala的RDD(弹性分布式数据集)和…

Python 二叉数的实例化及遍历

首先创建一个这样的二叉树,作为我们今天的实例。实例代码在下方。 #创建1个树类型 class TreeNode:def __init__(self,val,leftNone,rightNone):self.valvalself.leftleftself.rightright #实例化类 node1TreeNode(5) node2TreeNode(6) node3TreeNode(7) node4Tre…

Mybatis项目创建 + 规范

文章目录 一、相关概念Mybatis1.1 什么是Mybatis1.1 如何实现简化JDBC 二、如何创建 Mybatis 项目2.1 创建SpringBoot项目 加载依赖2.2 准备数据库 以及 对象的映射2.3 配置数据库连接池2.4 使用Mybatis操作数据库2.5 单元测试 三、其他3.1 数据库与Java对象的映射规则 ---- 结…

为什么GD32F303代码运行在flash比sram更快?

我们知道一般MCU的flash有等待周期,随主频提升需要插入flash读取的等待周期,以stm32f103为例,主频在72M时需要插入2个等待周期,故而代码效率无法达到最大时钟频率。 所以STM32F103将代码加载到sram运行速度更快。 但使用GD32F30…

复习kafka

Kafka 介绍 Kafka 是一种分布式的,基于发布/订阅的消息系统。它最初由 LinkedIn 开发,并于 2011 年开源。Kafka 的设计目标是提供一种高效、可靠的消息传输机制,能够处理大量的实时数据。 Kafka 基本概念 Producer:生产者&#xf…

Spring Boot 官方不再支持 Spring Boot 的 2.x 版本!新idea如何创建java8项目

idea现在只能创建最少jdk17 使用 IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时,没有 Java 8 的选项了,只剩下了 > 17 的版本 是因为 Spring Boot 官方不再支持 Spring Boot 的 2.x 版本了,之后全力维护 3.x;而 …

ArcGIS属性域和子类型

01 属性域 道路的车道数值是小于10的。在编辑道路的此属性时,为了限制其值在10以内,可以使用属性域。当输入数据超过10时,就会限制输入。 限制输入这个功能是Pro特有的,在ArcMap中输入超出限制的值也是合法的,需要手动…

【NOIP提高组】进制转换

【NOIP提高组】进制转换 💖The Begin💖点点关注,收藏不迷路💖 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以 10 为底数的幂…

Mac硬件设备系统环境的升级/更新 macOS

Mac硬件设备上进行系统环境的升级/更新macOS 1.大版本(升级)判断(比如:我买的这台电脑设备最高支持Monterey) 点击进入对应的大版本描述说明页查看相关的兼容性描述,根据描述确定当前的电脑设备最高可采用哪个大版本系统(Sonoma/Ventura/Monterey/Big Su…

构建高效便捷的家政平台系统——打造优质家政服务的关键

随着人们生活节奏的加快和工作压力的增大,家政服务的需求日益增长。为了满足这一需求,家政平台系统应运而生。本文将探讨家政平台系统的整体架构,以实现高效便捷的家政服务,打造优质家政体验。 ### 1. 家政平台系统背景 随着现代…

PKG系统安装包及IPSW固件下载(MacOS 11-14)11.7.10/12.7.1/13.6.

MacOS 14 Sonoma,为提高生产力和创造力带来了全新的功能,有了更多使用小部件和令人惊叹的新屏幕保护程序进行个性化设置的方法,对Safari浏览器和视频会议进行了重大更新,以及优化的游戏体验——Mac体验比以往任何时候都更好。 下载…

C++中的类

一,类的定义 class classname {//类体由成员函数和成员变量组成}; class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分 号不能省略。 类的两种定义方式: 声明和定义全部放在类体中…

从集合论到位运算

前言 本文将扫清位运算的迷雾,在集合论与位运算之间建立一座桥梁。 在高中,我们学了集合论(set theory)的相关知识。例如,包含若干整数的集合 S{0,2,3}。在编程中,通常用哈希表(hash table&…

自然资源-农村土地流转知识全解

自然资源-农村土地流转知识全解 随着农村经济的发展和城市化进程的加快,农村土地面临着多方面的压力,如人口增长、城市扩张、环境恶化等。这些压力导致了农村土地利用率低、经济效益差、农民收入水平低、农村社会经济不发达等问题。因此,改变…

计算机网络学习2

文章目录 信道复用技术 第三章数据链路层概述数据链路层的三个重要问题封装成帧和透明传输差错检测可靠传输的相关基本概念可靠传输的实现机制停止等待协议回退N帧协议选择重传协议 点对点协议PPP共享式以太网网络适配器和MAC地址CSMA_CD协议的基本原理共享式以太网的争用期共享…

备战十一届大唐杯国赛预选赛

这次省赛带了太多个省一了,具体可看下面的图片,只放了一部分。目前根据可靠消息,应该还有个预选赛和去年一样,就是还会考一次仿真。如果说通过了就是国二起步然后去北方工业争夺国一国二,没过的话就是国三。 每…

<MySQL> 表的增删改查 - 基本查询

目录 前言: 一、表的插入 (一)指定列插入和多行插入 (二)全列插入 (三)插入选择更新 (四)替换数据 二、表中的数据查询 (一)select查询语…

【SQL学习进阶】从入门到高级应用【三范式】

文章目录 什么是数据库设计三范式三范式一对多怎么设计多对多怎么设计一对一怎么设计最终的设计 🌈你好呀!我是 山顶风景独好 💕欢迎来到我的博客,很高兴能够在这里和您见面! 💕希望您在这里可以感受到一份…

sql注入-布尔盲注

布尔盲注(Boolean Blind SQL Injection)是一种SQL注入攻击技术,用于在无法直接获得查询结果的情况下推断数据库信息;它通过发送不同的SQL查询来观察应用程序的响应,进而判断查询的真假,并逐步推断出有用的信…

低代码选型要注意什么问题?

低代码选型时,确实需要从多个角度综合考虑,以下是根据您给出的角度进行的分析和建议: 公司的人才资源: 评估团队中是否有具备编程能力的开发人员,以确保能够充分利用低代码平台的高级功能和进行必要的定制开发。考察实…