罗德里格斯公式(旋转矩阵)推导

文章目录

      • 1. 推导
      • 2. 性质
      • 3. 参考

1. 推导

在这里插入图片描述

r r r为旋转轴, θ \theta θ为旋转角度。
先将旋转轴单位化
u = r ∣ ∣ r ∣ ∣ u=\frac{r}{||r||} u=∣∣r∣∣r
旋转可以被分为垂直和旋转两个方向,
我们求沿轴方向的分量其实就是在求 p p p向量在 u u u方向上的投影。

引用投影矩阵
P = A ( A ⊤ A ) − 1 A ⊤ P u = u ( u ⊤ u ) − 1 u ⊤ u ⊤ u = I P u = u u ⊤ P=A(A^{\top}A)^{-1}A^{\top}\\ P_u=u(u^{\top}u)^{-1}u^{\top}\\ u^{\top}u=I\\ P_u=uu^{\top} P=A(AA)1APu=u(uu)1uuu=IPu=uu
其实也可以直接以向量的方式思考
u ⊤ p = u ∗ p = ∣ ∣ u ∣ ∣ ∣ ∣ p ∣ ∣ cos ⁡ α u^{\top}p =u *p=||u|| \ ||p|| \cos \alpha up=up=∣∣u∣∣ ∣∣p∣∣cosα
还需要除 ∣ ∣ u ∣ ∣ ||u|| ∣∣u∣∣
∣ ∣ u ∣ ∣ = u ⊤ u u ⊤ p u ⊤ u ||u||=u^{\top}u \\ \frac{u^{\top}p}{u^{\top}u} ∣∣u∣∣=uuuuup
最后将值转换为向量
u u ⊤ p u ⊤ u = u u ⊤ p u\frac{u^{\top}p}{u^{\top}u}=uu^{\top}p uuuup=uup
a a a p p p在旋转轴 r r r上的分量
a = p ∥ = u u ⊤ p a=p_{\parallel}=uu^{\top}p a=p=uup
b b b p p p垂直旋转轴 r r r的分量
b = p ⊥ = p − a = p − u u ⊤ p b=p_{\perp}=p-a=p-uu^{\top}p b=p=pa=puup
c = u × p c=u \times p c=u×p,则 ∣ ∣ c ∣ ∣ = ∣ ∣ p ∣ ∣ ||c|| = ||p|| ∣∣c∣∣=∣∣p∣∣

b b b旋转 θ \theta θ后得到 b ′ b' b

b ′ = b cos ⁡ θ + c sin ⁡ θ b ′ = ( p − u u ⊤ p ) cos ⁡ θ + u × p sin ⁡ θ b'=b\cos \theta+c \sin \theta\\ b'=(p-uu^{\top}p) \cos \theta + u\times p \sin \theta b=bcosθ+csinθb=(puup)cosθ+u×psinθ

旋转后的 p ′ p' p
p ′ = a + b ′ = u u ⊤ p + ( p − u u ⊤ p ) cos ⁡ θ + u × p sin ⁡ θ p'=a+b'=uu^{\top}p+(p-uu^{\top}p) \cos \theta + u\times p \sin \theta p=a+b=uup+(puup)cosθ+u×psinθ
合并后得到
p ′ = ( I cos ⁡ θ + ( 1 − cos ⁡ θ ) u u ⊤ + u × sin ⁡ θ ) p p'=(I \cos \theta+(1-\cos \theta)uu^{\top}+u_{\times}\sin \theta)p p=(Icosθ+(1cosθ)uu+u×sinθ)p
其中 u × u_{\times} u×为叉乘矩阵
形式为
[ 0 z − y − z 0 x y − x 0 ] \begin{bmatrix} 0 & z & -y \\ -z & 0 & x \\ y & -x & 0 \end{bmatrix} 0zyz0xyx0
所以旋转矩阵为
R = I cos ⁡ θ + ( 1 − cos ⁡ θ ) u u ⊤ + u × sin ⁡ θ R=I\cos \theta+(1-\cos \theta)uu^{\top}+u_{\times} \sin \theta R=Icosθ+(1cosθ)uu+u×sinθ

2. 性质

t r a c e ( R ) = 2 cos ⁡ θ + 1 R − R ⊤ = 2 u × sin ⁡ θ \begin{align} trace(R)=2 \cos \theta+1\\ R-R^{\top}=2u_{\times} \sin \theta \end{align} trace(R)=2cosθ+1RR=2u×sinθ
性质一的证明,所有旋转矩阵都相似,构成一个正交群。
相似矩阵有性质
A = C − 1 B C A=C^{-1}BC A=C1BC
所以所有旋转矩阵有相同的迹。
取其中一个旋转矩阵
[ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] \begin{bmatrix} \cos \theta & -\sin \theta & 0\\ \sin \theta & \cos \theta &0\\ 0 & 0 & 1 \end{bmatrix} cosθsinθ0sinθcosθ0001
所以
t r ( R ) = 2 cos ⁡ θ + 1 tr(R)=2 \cos \theta+1 tr(R)=2cosθ+1

3. 参考

michigan_state_university
duke
math_stackchange

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

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

相关文章

将本地项目上传到 gitee 仓库

1、创建 gitee 仓库 到 gitee 官网,新建仓库 配置新建仓库 完成仓库的创建 项目上传到仓库 上传项目需要安装git git官方下载地址:git下载地址 安装完成,前往本地项目所在文件夹,右击选择 Git Bash Here 刚下载完成需要配置G…

Python筑基之旅-运算符

目录 一、运算符 1、了解定义 2、理解意义 2-1、基本数据处理 2-2、条件判断 2-3、逻辑操作 2-4、赋值和更新 2-5、位操作 2-6、提高代码可读性 2-7、解决实际问题 2-8、学习其他编程语言的基础 3、探索方法 3-1、理解概念 3-2、练习基本运算 3-3、掌握优先级 …

WIFI国家码设置的影响

记录下工作中关于国家码设置对WIFI的影响,以SKYLAB的SKW99和SDZ202模组为例进行说明。对应到日常,就是我们经常提及手机是“美版”“港版”等,它们的wifi国家码是不同的,各版本在wifi使用中遇到的各种情况与下面所述是吻合的。 现…

信息系统项目管理师0131:输出(8项目整合管理—8.7监控项目工作—8.7.3输出)

点击查看专栏目录 文章目录 8.7.3 输出8.7.3 输出 工作绩效报告工作绩效信息可以用实体或电子形式加以合并、记录和分发。基于工作绩效信息,以实体或电子形式编制形成工作绩效报告,以制定决策、采取行动或引起关注。根据项目沟通管理计划,通过沟通过程向项目干系人发送工作绩…

车道线识别与预警系统LDWS(代码+教程)

车道线识别与预警系统(Lane Departure Warning System, LDWS)作为智能交通系统中的重要组成部分,旨在通过先进的图像处理和计算机视觉技术,实时监测车辆行驶过程中的车道位置,预防因驾驶员疏忽或疲劳导致的车道偏离事故…

网络工程师---第三十八天

ISIS: ISIS含义:中间系统到中间系统IS-IS。 ISIS特点:①内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部; ②IS-IS也是一种链路状态协议,使用最短路径优先SPF算法进…

【Linux】为 VMware 的 Linux 系统(CentOS 7)设置静态IP地址

文章目录 准备工作查看 子网掩码 和 网关IP确认准备设置的虚拟机端口没有被占用 调整设置编辑配置文件配置文件说明 完成配置,准备测试使用命令终端连接服务器 我是一名立志把细节说清楚的博主,欢迎【关注】🎉 ~ 原创不易, 如果有…

一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!

大家好,我是电商小V 现在入驻抖音小店的有很多新手,新手最关心的就是一个人应该如何操作抖音小店,操作抖音小店需要做好哪几步呢?关于这个问题咱们就来详细的讲解一下, 第一点:开店 开店是做店的第一步&…

能找伴侣的相亲婚恋平台有哪些?6款值得信赖的恋爱交友软件体验测评

在这个超快节奏的社会里,好多人都忙着搞事业和搞钱,却把终身大事给忽略了。但是随着年龄越来越大,来自长辈和社会的压力也越来越大,因此网络上的相亲交友软件,就成了大多数单身贵族的脱单首选了。下面就来给大家讲讲我…

子线程无法访问父线程中通过ThreadLocal设置的变量

引出结论 学习过ThreadLocal的童鞋都知道,在子线程中,是无法访问父线程通过ThreadLocal设置的变量的。 package thread;/*** author heyunlin* version 1.0*/ public class ThreadLocalExample {public static void main(String[] args) throws Interr…

21.Happens-Before原则

文章目录 Happens-Before原则1.Happens-Before规则介绍2.规格介绍2.1.顺序性规则(as-if-serial)2.2.volatile规则2.3.传递性规则2.4.监视锁规则2.5.start规则2.6.join()规则 Happens-Before原则 JVM内存屏障指令对Java开发工程师是透明的,是JMM对JVM实现的一种规范和…

SpringBoot使用rsa-encrypt-body-spring-boot实现接口加解密

废话不多说&#xff0c;直接上代码 引入依赖 <dependency><groupId>cn.shuibo</groupId><artifactId>rsa-encrypt-body-spring-boot</artifactId><version>1.0.1.RELEASE</version> </dependency>配置文件 rsa:encrypt:# 是…

Leetcode 剑指 Offer II 079.子集

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返…

系统升级中,请稍后...Time: 2024-05-26 10:59:46 Code:OE.20001

没错&#xff01;你能看到“系统升级中&#xff0c;请稍后…Time: 2024-05-26 10:59:46 Code:OE.20001”这个提示你找到这里就对了&#xff01;以上提示是婚恋交由系统奥壹的oelove的报错内容&#xff01;为什么报错&#xff1f;那说明你不是商业用户&#xff0c;默认程序是需要…

【spring】@PathVariable注解学习

PathVariable介绍 PathVariable是Spring框架中的一个注解&#xff0c;主要用于处理RESTful风格URL中的路径变量。在RESTful接口设计中&#xff0c;我们经常将资源的ID或者其他标识信息直接放在URL路径中&#xff0c;而不是作为查询参数。PathVariable注解使得控制器方法能够轻…

FreeRTOS_同步互斥与通信_队列集_学习笔记

FreeRTOS_同步互斥与通信_环形buffer、队列_学习笔记 5.5 队列集 要支持多个输入设备时&#xff0c;我们需要实现一个“InputTask”&#xff0c;它读取各个设备的队列&#xff0c;得到数据后再分别转换为游戏的控制键。 InputTask如何及时读取到多个队列的数据&#xff1f;要…

C#的奇技淫巧:利用WinRM来远程操控其他服务器上的进程

前言&#xff1a;有时候远程服务器的进程你想偷偷去围观一下有哪些&#xff0c;或者对一些比较调皮的进程进行封杀&#xff0c;或者对一些自己研发的服务进行远程手动启动或者重启等&#xff0c;又不想打开远程桌面&#xff0c;只想悄咪咪地执行&#xff0c;那也许下面的文章会…

如何使用pycrypt加密工具测试反病毒产品的检测性能

关于pycrypt pycrypt是一款基于Python 3语言开发的加密工具&#xff0c;广大研究人员可以使用该工具来尝试绕过任意类型的反病毒产品&#xff0c;以检测目标反病毒产品的安全性能。 功能介绍 1、目前已知反病毒产品检测率为0/40&#xff1b; 2、支持绕过任意EDR解决方案&#…

中间件-------RabbitMQ

同步和异步 异步调用 MQ MQ优势&#xff1a;①服务解耦 ②异步调用 ③流量削峰 结构 消息模型 RabbitMQ入门案例&#xff0c;实现消息发送和消息接收 生产者&#xff1a; public class PublisherTest {Testpublic void testSendMessage() throws IOException, TimeoutExce…