罗德里格斯公式推导

2023-05-16

罗德里格斯公式推导

第一部分

请添加图片描述

向量 v = ( v x , v y , v z ) T v=(v_{x},v_{y},v_{z})^{T} v=(vx,vy,vz)T单位方向矢量 n = ( n x , n y , n z ) T n=(n_{x},n_{y},n_{z})^{T} n=(nx,ny,nz)T 转过角度 θ \theta θ 得到向量 v r o t v_{rot} vrot .
v ∣ ∣ = ( v ⋅ n ) n w = ( n × v ) v ⊥ = v − v ∣ ∣ = v − ( v ⋅ n ) n v ⊥ = − n × w = − n × ( n × v ) v ∣ ∣ = v + n × ( n × v ) v_{||}=(v \cdot n)n\\ w= (n\times v)\\ v_{\perp}=v-v_{||}=v-(v \cdot n)n\\ v_{\perp}=-n\times w = -n\times (n\times v)\\ v_{||}=v+n\times (n\times v) v∣∣=(vn)nw=(n×v)v=vv∣∣=v(vn)nv=n×w=n×(n×v)v∣∣=v+n×(n×v)

n × v   =   ∣ i j k n x n y n z v x v y v z ∣ =   [ 0 − n z n y n z 0 − n x − n y n x 0 ] [ v x v y v z ]   =   N v   =   n × v n\times v\ =\ \left|\begin{array}{ccc}\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\ n_x & n_y & n_z \\ v_x & v_y & v_z \end{array}\right| = \ \left[\begin{array}{ccc} 0 & -n_z & n_y \\ n_z & 0 & -n_x \\ -n_y & n_x & 0 \end{array}\right] \left[\begin{array}{c}v_x \\ v_y \\ v_z \end{array}\right]\ = \ Nv\ =\ n^{\times}v n×v =  inxvxjnyvyknzvz =  0nznynz0nxnynx0 vxvyvz  = Nv = n×v

v r o t = v ∣ ∣ + v ⊥ cos ⁡ θ + w sin ⁡ θ = v + n × ( n × v ) − n × ( n × v ) cos ⁡ θ + ( n × v ) sin ⁡ θ = v + ( 1 − cos ⁡ θ ) N 2 v + N v sin ⁡ θ = [ I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ ] v = R v \begin{aligned} v_{rot}&=v_{||}+v_{\perp}\cos \theta +w\sin \theta \\ &=v+n\times (n\times v) -n\times (n\times v)\cos \theta +(n\times v)\sin \theta \\ &=v+(1-\cos \theta )N^{2}v+Nv\sin \theta \\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v \\ &= Rv \end{aligned} vrot=v∣∣+vcosθ+wsinθ=v+n×(n×v)n×(n×v)cosθ+(n×v)sinθ=v+(1cosθ)N2v+Nvsinθ=[I+(1cosθ)N2+Nsinθ]v=Rv

其中
N 2 = N ⋅ N = [ − n y 2 − n z 2 n x n y n x n z n x n y − n x 2 − n z 2 n y n z n x n z n y n z − n x 2 − n y 2 ] = [ n x 2 − 1 n x n y n x n z n x n y n y 2 − 1 n y n z n x n z n y n z n z 2 − 1 ] = n ⋅ n T − I \begin{aligned} N^{2}=N\cdot N &=\left[\begin{array}{ccc} -n_{y}^{2}-n_{z}^{2} & n_{x}n_{y} & n_{x}n_{z} \\ n_{x}n_{y} & -n_{x}^{2}-n_{z}^{2} & n_{y}n_{z} \\ n_{x}n_{z} & n_{y}n_{z} & -n_{x}^{2}-n_{y}^{2} \end{array}\right]\\ &=\left[\begin{array}{ccc} n_{x}^{2}-1 & n_{x}n_{y} & n_{x}n_{z} \\ n_{x}n_{y} & n_{y}^{2}-1 & n_{y}n_{z} \\ n_{x}n_{z} & n_{y}n_{z} & n_{z}^{2}-1 \end{array}\right]\\ &= n \cdot n^{T} - I \end{aligned} N2=NN= ny2nz2nxnynxnznxnynx2nz2nynznxnznynznx2ny2 = nx21nxnynxnznxnyny21nynznxnznynznz21 =nnTI
所以
R = I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ = I + ( 1 − cos ⁡ θ ) ( n ⋅ n T − I ) + N sin ⁡ θ = I cos ⁡ θ + ( 1 − cos ⁡ θ ) n ⋅ n T + N sin ⁡ θ \begin{aligned} R&=I+(1-\cos \theta )N^{2}+N\sin \theta \\ &=I+(1-\cos \theta )(n\cdot n^{T}-I)+N\sin \theta \\ &=I\cos \theta +(1-\cos \theta )n\cdot n^{T}+N\sin \theta \end{aligned} R=I+(1cosθ)N2+Nsinθ=I+(1cosθ)(nnTI)+Nsinθ=Icosθ+(1cosθ)nnT+Nsinθ

第二部分

以上是向量 v = ( v x , v y , v z ) T v=(v_{x},v_{y},v_{z})^{T} v=(vx,vy,vz)T单位方向矢量 n = ( n x , n y , n z ) T n=(n_{x},n_{y},n_{z})^{T} n=(nx,ny,nz)T 共面。如果二者不共面,如下图 v 3 v_3 v3 ,可以将 v 3 v_3 v3平移,使 v 3 v_3 v3 n n n 共面再用上面公式.

或者使用 n n n 共面的 v v v v 2 v_2 v2 构造 v 3 v_3 v3 ,即 v 3 = v − v 2 v_3=v-v_2 v3=vv2 .
请添加图片描述

这里 v v v v 2 v_2 v2 满足
v r o t = [ I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ ] v v 2 r o t = [ I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ ] v 2 \begin{aligned} v_{rot}&=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v \\ v_{2rot}&=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v_{2} \end{aligned} vrotv2rot=[I+(1cosθ)N2+Nsinθ]v=[I+(1cosθ)N2+Nsinθ]v2
所以向量 v 3 v_3 v3单位方向矢量 n = ( n x , n y , n z ) T n=(n_{x},n_{y},n_{z})^{T} n=(nx,ny,nz)T 转过角度 θ \theta θ 得到向量 v 3 r o t v_{3rot} v3rot 的公式如下:
v 3 r o t = v r o t − v 2 r o t = [ I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ ] ( v − v 2 ) = [ I + ( 1 − cos ⁡ θ ) N 2 + N sin ⁡ θ ] v 3 \begin{aligned} v_{3rot}&=v_{rot}-v_{2rot}\\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ](v-v_2)\\ &=[I+(1-\cos \theta )N^{2}+N\sin \theta ]v_3 \end{aligned} v3rot=vrotv2rot=[I+(1cosθ)N2+Nsinθ](vv2)=[I+(1cosθ)N2+Nsinθ]v3
由上可知:即使 v 3 v_3 v3 n n n 不共面,仍然满足罗德里格斯公式,因为这个空间是线性的.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

罗德里格斯公式推导 的相关文章

  • Ubuntu 基本使用和Bash编程基础

    Ubuntu基本使用 sudo 申请权限 linux 包管理工具 yum apt apt install XXX apt remove XXX apt autoremove XXX 常用指令 cd 进入目录 ls 查看文件 以点为开头的文件
  • CentOS7如何操作防火墙

    CentOS7中如何操作防火墙 查看防火墙状态 xff1a 命令 xff1a systemctl status firewalld service test 64 test1 systemctl status firewalld servi
  • ROS进二阶学习笔记(1) TF 学习笔记1:TF介绍 + tf工具

    ROS进二阶学习笔记 xff08 1 xff09 TF 学习笔记1 TF介绍 43 tf工具 Ref http wiki ros org tf Tutorials Learning tf gt gt Ref http wiki ros or
  • RGB颜色对照表

    修改字体颜色 xff0c 大小使用示例如下 xff1a lt font color 61 FFB6C1 size 61 5 face 61 34 隶书 34 gt color 61 FFB6C1 size 61 72 face 61 34
  • 顿悟系列-JS对象键值修改,删除

    在Angular开发中 xff0c 遇到了JS对象键值对的知识实际运用 xff0c 不常见 xff0c 但实用 假设我们需要把 var a 61 a 34 张三 34 b 34 24 34 c 34 帅哥 34 a这个对象的键值全部改变自己
  • OVN简介

    作者简介 xff1a 郑敏先 xff0c 就职于诺云系统 xff08 上海 xff09 有限公司 工作地点为南京的诺云研发中心 担任解决方案工程师 本人博客为 xff1a http blog csdn net zhengmx100 一 为什
  • Windows 实现 读取 HDFS 上 文件内容

    前几天一直在搞HDFS文件的下载与上传 xff0c 但是在集群内部可以 xff0c 在集群外部却出现了错误 xff0c 照说 xff0c HDFS的保密协议应该没那么高吧 xff0c 不解中 后来才发现自己网上找的代码 xff0c 却并未理
  • 图像地点场景类型识别(PlaceCNN)实践

    从图像中判断图像场景所处的地点类型 xff0c 是图像理解的一种常见任务 本质上场景类别标注数据足够的情况下 xff0c 它可以属于图像分类的一种 xff0c 因此直接利用现有成熟的网络架构如ResNet就可以实现较高精度的图像涉及场所的识
  • 【2021最新】Keras自定义Loss函数+接受输入+KerasTensor天坑解决方法

    文章目录 自定义函数 43 输入方法第一个错误第二个错误 自定义函数 43 输入方法 环境配置 xff1a Tensorflow2 4 xff0c keras2 4 3 Keras自定义Loss函数 xff0c 增加输入的方法 xff0c
  • 从零使用OpenCV快速实现简单车牌识别系统

    从零使用OpenCV快速实现简单车牌识别系统 这篇文章献给所有第一次听说车牌识别ANPR但需要短时间实现的苦逼同学们 最近的小学期实训做的是一个车牌识别系统 xff0c 说实话真不知道学校怎么想的 xff0c 虽然说图像处理也算的上是数字媒
  • SUMO交通仿真-核心概念和基础知识速览

    文章目录 sumo环境变量设置注意事项路网配置JOSM对地图进行 96 清洗 96 交通需求建模route amp trip输入数据方法流量路由分配 检测线圈车辆属性设置速度分布 特殊设置驾驶员状态事故仿真 仿真运行设置sumocfg 输出
  • Haar分类器原理1——矩形特征与积分图

    引言 Haar分类器又称Viola Jones识别器 xff0c 是Viola和Jones分别在2001年的 Rapid Object Detection using a Boosted Cascade of Simple Features
  • window打开服务的dos命令

    微软系统必备的dos命令 开始 gt 运行 输入以下命令 xff0c 或者win 43 R xff0c 输入以下命令 1 gpedit msc 组策略 2 sndrec32 录音机 3 Nslookup IP地址侦测器 4 explorer
  • 如何在windows server 2003服务器上创建web服务器和ftp服务器

    将xp客户机和server2003设置为同一网段VMnet1上 配置web服务器的IP地址 配置xp客户机的IP地址 检测xp客户机和web服务器是否互通 将文件解压缩到d盘 xff0c 查看到三个文件夹 安装web服务组件 打开开始 管理
  • Kali Linux 2020.3如何安装中文输入法

    安装ibus拼音输入法 sudo apt get install ibus ibus pinyin 设置ibus为首选默认输入法 im config 输入法配置的重要提示信息 xff0c 点击OK即可 是否确认更改设置输入法 xff0c 点
  • Markdown编辑器

    Markdown编辑器 按照Markdown编辑器的使用环境 xff0c 可以将它们归纳为三类 平台集成工具 xff1a 各大在线博客 社区平台自带的写作工具 xff0c 比如CSDN 博客园 简书等 独立软件类 xff1a 下载到自己机器
  • devstack安装OpenStack Pike版本 (OVN+VLAN)

    控制节点配置文件 Sample DevStack local conf This sample file is intended to be used for your typical DevStack environment that 3
  • Fiddler抓包Java请求遇到的问题(一)

    Fiddler 解决无法监听 Java 的 HttpUrlConnection 请求 官网 https www telerik com fiddler Q JavaTraffic jre DproxySet 61 true DproxyHo
  • Win10系统正确设置MTU值加快WIFI速度的方法

    MTU是Maximum Transmission Unit缩写 xff0c 中文名 xff1a 最大传输单元 工具 原料 硬件 xff1a 电脑 操作系统 xff1a Windows 10 方法 步骤 第一步 xff1a 查询自己电脑的MT
  • CentOS-7 安装Lustre-2.10.1文件系统

    注 xff1a 原创文章 xff0c 转载请注明出处 一 文档说明 Lustre 是一种强大的平行 分布式文件系统 xff0c 通常用于HPC行业 主要组建包括 xff1a 元数据服务器 Metadataservers xff0c MDSs

随机推荐

  • 【华为练习题】求麻将清一色和牌问题

    华为练习题 求麻将清一色和牌问题 题目 题目描述 xff1a 清一色是麻将番种之一 xff0c 指由一种花色的序数牌组成的和牌 数字1 9 xff0c 每个数字最多有4张牌 我们不考虑具体花色 xff0c 我们只看数字组合 刻子 xff1a
  • 使用vscode开发stm32

    vscode 下载地址 xff1a https code visualstudio com 安装插件 xff1a Cortec Debug Cortex Debug Device Support Pack STM32F1 图1 vscode
  • typedef 的用法

    typedef 的用法 以下是参考部分 此部分参考自 xff1a http blog sina com cn u 572f7666010008dm 用途一 xff1a 定义一种类型的别名 xff0c 而不只是简单的宏替换 可以用作同时声明指
  • C语言变参的使用

    C语言中有很多变参的使用 xff0c 例如printf 的原型是int printf const char fmt xff0c 那么C语言是如何解析和处理这些变参的呢 xff1f 下面进行简单的总结 xff1a C语言中定义了下面的一些宏
  • strstr函数的精彩之处

    在C的库函数里面有很多精彩的代码 xff0c 仔细分析会体会到这些写法和思路的巧妙之处 写strstr函数的时候要判断两个字符换str1和str2什么时候开始匹配 xff0c 什么时候结束 xff0c 这两点都是比较容易做到的 xff0c
  • RISC与CISC

    作者 xff1a Austin Wang 链接 xff1a http www zhihu com question 20783321 answer 72598657 这里简单来谈一下 xff0c ARM和X86之间为什么不太具有可比性的问题
  • NandFlash和NorFlash的区别

    一 xff0e NAND和NOR的比较 NOR和NAND是现在市场上两种主要的非易失闪存技术 Intel于1988年首先开发出NOR flash技术 xff0c 彻底改变了原先由EPROM 和EEPROM一统天下的局面 紧接着 xff0c
  • 安装 CORD 之前需要了解的术语

    CORD Central Office Re Architected as a Data Center 是ONF组织推动的开源的边缘计算的项目 CORD 项目的官方资料包括源代码 xff0c 安装指导等 本文对官方安装指导涉及的一些术语进行
  • SoC嵌入式软件架构设计之一:系统内存需求评估

    博主 xff1a 吴跃前 转载自 xff1a http www cnblogs com yueqian scut p 4015046 html SoC嵌入式软件架构设计之一 xff1a 系统内存需求评估 内存是SoC System on C
  • S5PV210启动过程分析

    刚刚接触 S5PV210 xff0c 看了官方的数据手册感觉跟以前用的 STM32 单片机根本不在一个层面上 xff0c 当然两者的用途不同 xff0c 不具备可比性 可能之前习惯使用 STM32 等单片机 xff0c 现在接触 S5PV2
  • ARM支持的4种堆栈工作方式

    1 满递增堆栈 xff1a 堆栈指针指向最后压入堆栈的数据 xff0c 且由低地址向高地址生成 2 满递减堆栈 xff1a 堆栈指针指向最后压入堆栈的数据 xff0c 且由高地址向低地址生成 3 空递增堆栈 xff1a 堆栈指针指向下一个要
  • 前变址、回写前变址、后变址

    根据数据传输传输的时机以及在指令执行后基址寄存器是否被更新 xff0c 寄存器变址有前变址 回写前变址和后变址暗中方式 执行指令的时候 xff0c 如果先进行变址运算 xff0c 后传递数据 xff0c 那么这种方式就是前变址方式 如图1所
  • ubuntu 配置 tftp 服务器

    注意 xff1a 1 tftpboot为根目录 2 已经是root权限不用再加sudo 临时获取权限 3 使用netstat au grep tftp xff0c 保证tftp是启动的 出现 udp 0 0 tftp 则说明tftp服务已经
  • STM32启动文件详解

    先在RAM中分配系统使用的栈 xff0c RAM的起始地址为0x2000 0000 然后在RAM中分配变量使用的堆 然后在CODE区 flash 分配中断向量表 xff0c flash的起始地址为0x0800 0000 xff0c 该中断向
  • C语言细节之定义与声明

    什么是定义什么是声明 xff0c 似乎这俩个东西一样但是又有所区别 xff0c 思考一下 xff0c 如果你不能直接说出这二者的根本区别 xff0c 那么本文对你还是有点用处的 首先什么是定义 xff1f C 43 43 Primer 第四
  • 关于数据存储大小端模式的C语言题目

    int main int a 5 61 1 2 3 4 5 int ptr1 61 int amp a 43 1 int ptr2 61 int int a 43 1 printf 34 x x 34 ptr1 1 ptr2 return
  • 窥探引用和指针

    C语言面试题里面经常会出现一道题目 xff1a 向某个指定的内存地址写入特定的数据 xff0c 譬如向0x1234写入100 xff0c 做法如下 int 0x1234 61 100 解释一下就是将0x1234利用 int 强制转换为地址
  • STM32F101xxT6中VBAT 管脚上的怪现象

    转自 xff1a http bbs elecfans com forum php mod 61 viewthread amp tid 61 458808 amp extra 61 问题 xff1a 问题由某 UPS 制造公司提出 其工程师在
  • ST-LINK接口定义

    ST LINK接口定义 https www cnblogs com jieruishu p 9980350 html ST LINKIII管脚定义及接法 xff1a ST LINK IIILED灯三种状态含义 xff1a 常亮 xff1a
  • 罗德里格斯公式推导

    罗德里格斯公式推导 第一部分 向量 v 61 v x v