SO3 与so3 SE3与se3 SIM3

文章目录

    • 1 旋转*叉乘
      • 1.1 旋转矩阵的导数
      • 1.2 物理意义
      • 1.3 实例
      • 1.4 角轴与反对称矩阵
    • 2 SO3 与so3
      • 2.1 so3 2 SO3
      • 2.2 SO3 2 so3
    • 3 SE3 与se3
      • 3.1 se3 2 SE3:
      • 3.2 SE3 2 se3
    • 4 SIM3 与sim3
    • 5 Adjoint Map

1 旋转*叉乘

1.1 旋转矩阵的导数

根据旋转矩阵的性质: R R T = I RR^T=I RRT=I,对两侧进行求导可得:
R ˙ R T = − R R ˙ T \dot{R} R^T=-R\dot R T R˙RT=RR˙T
从而可知, R ˙ R T \dot R R^T R˙RT为一个反对称对阵,则存在向量 ω ω ω,使得 R R ˙ T = ω ^ R \dot R^T=\hat ω RR˙T=ω^

ω ^ = [ 0 − ω z ω y ω z 0 − ω x − ω y ω x 0 ] \hat \omega =\left[ \begin{array}{ccc} 0&-ω_z&ω_y\\ ω_z&0&-ω_x\\ -ω_y&ω_x&0 \end{array} \right] ω^= 0ωzωyωz0ωxωyωx0
即: R ˙ = ω ^ R \dot R =\hat ωR R˙=ω^R

1.2 物理意义

在这里插入图片描述
设空间一个点 S ( t ) S(t) S(t),其绕空间某个轴旋转,设其在t时刻的旋转轴为 ω ( t ) / ‖ ω ( t ) ‖ ω(t)/‖ω(t)‖ ω(t)/‖ω(t),其旋转角速度为 ‖ ω ‖ ‖ω‖ ω,则我们可知该点对应的线速率为:
S ˙ ( t ) = ω ( t ) × S ( t ) = ω ^ ( t ) ⋅ S ( t ) \dot S (t)=ω(t)×S(t)=\hat ω(t) \cdot S(t) S˙(t)=ω(t)×S(t)=ω^(t)S(t)
以此,我们便可理解旋转与轴角速率及叉乘之间的关系

1.3 实例

在这里插入图片描述
空间两个坐标系,W和B坐标系。W坐标系固定。
设B坐标系下有一点P与坐标系B固定,设其在B坐标系下坐标为: S B S_B SB(固定),其在W坐标系下坐标为: S W ( t ) S_W (t) SW(t),设:
S W ( t ) = R ( t ) ∗ S B + p ( t ) S_W (t)=R(t)*S_B+p(t) SW(t)=R(t)SB+p(t)
对其进行求导:
S ˙ W ( t ) = ω ^ ( t ) ⋅ R ( t ) ⋅ S B + p ˙ ( t ) = ω ^ ( t ) ⋅ ( S W ( t ) − p ( t ) ) + p ˙ ( t ) \dot S_W(t)=\hat ω(t)\cdot R(t)\cdot S_B+\dot p(t)=\hat ω(t)\cdot (S_W(t)-p(t))+\dot p(t) S˙W(t)=ω^(t)R(t)SB+p˙(t)=ω^(t)(SW(t)p(t))+p˙(t) = ω ^ ( t ) ⋅ S W ( t ) − ω ^ ( t ) ⋅ p ( t ) + p ˙ ( t ) =\hat ω(t)\cdot S_W(t)-\hat ω(t)\cdot p(t)+\dot p(t) =ω^(t)SW(t)ω^(t)p(t)+p˙(t)
从上式可以看出,

ω ω ω对应B坐标系在W坐标系下的旋转角速度, ω × S W ( t ) ω×S_W (t) ω×SW(t)即为由旋转引起的P点在W坐标系下的线速度。
− ω ^ ( t ) p ˙ ( t ) + p ^ ( t ) -\hat ω(t)\dot p(t)+\hat p (t) ω^(t)p˙(t)+p^(t)对应点P的线速度
注意: ω ω ω为W坐标系下的向量表示。

可进一步写成:
S ˙ W ( t ) = ω ^ ( t ) ⋅ S W ( t ) + v ( t ) \dot S_W (t)=\hatω(t)\cdot S_W(t)+v(t) S˙W(t)=ω^(t)SW(t)+v(t)
本实例:B坐标系起始与W重合,t时刻B坐标系以 ω ( t ) = [ 0 , 0 , ω ( t ) ] ω(t)=[0,0,ω(t)] ω(t)=[0,0,ω(t)]角速度进行旋转,即B坐标系绕z轴,以 ω ( t ) ω(t) ω(t)为角速度进行旋转。
设B坐标系的旋转角为 θ ( t ) θ(t) θ(t),即 θ ˙ ( t ) = ω ( t ) \dot θ(t)=ω(t) θ˙(t)=ω(t)
在这里插入图片描述

ω ˆ \omega \^{} ωˆ 在本文中与 ω ^ \hat \omega ω^同义

通过此实例,我们可以看出 ω ( t ) ω(t) ω(t)对应的旋转物理意义。

进一步我们了解到 ω ( t ) ω(t) ω(t)与则是角轴表示的角速度,从而了解角轴的叉乘几何特性。

1.4 角轴与反对称矩阵

每个轴的旋转均对应一个反对称矩阵,即将旋转同时分布在各个轴上,设如下一组:
G x = [ 0 0 0 0 0 − 1 0 1 0 ] , G y = [ 0 0 1 0 0 0 − 1 0 0 ] G z = [ 0 − 1 0 1 0 0 0 0 0 ] G_x =\left[ \begin{array}{ccc} 0&0&0\\0&0&-1\\0&1&0 \end{array} \right], G_y =\left[ \begin{array}{ccc} 0&0&1\\0&0&0\\-1&0&0 \end{array} \right] G_z =\left[ \begin{array}{ccc} 0&-1&0\\1&0&0\\0&0&0 \end{array} \right] Gx= 000001010 ,Gy= 001000100 Gz= 010100000

设角轴: θ = [ θ x , θ y , θ z ] T θ=[θ_x,θ_y,θ_z]^T θ=[θx,θy,θz]T
R = θ x G x + θ y G y + θ z G z R=θ_x G_x+θ_y G_y+θ_z G_z R=θxGx+θyGy+θzGz

Tips:
由此我们可以知道,角轴与欧拉角之间的小联系,当前两个旋转轴的旋转角度较小时,欧拉角 ≈ ≈ 轴角。

2 SO3 与so3

2.1 so3 2 SO3

在我们知道: R ˙ = ω ^ R \dot R=\hatωR R˙=ω^R,便可知R可表达成e指数的形式:
R ( t ) = e x p ⁡ ( [ ∫ ω ( t ) ] ˆ ) = e x p ⁡ ( θ ^ ( t ) ) R(t)=exp⁡([∫ω(t)]\^{})=exp⁡(\hat θ(t)) R(t)=exp([ω(t)]ˆ)=exp(θ^(t))
即我们设计使得 R R R与角轴 θ θ θ对应。可知,由于三角函数的周期性,因此旋转矩阵到角轴是一对多的映射。由此可知,旋转矩阵对应李群SO3,而角轴表示对应李代数,其向量方向与旋转矩阵的切方向一致。
在这里插入图片描述

2.2 SO3 2 so3

在这里插入图片描述
一对多的解算,其可以简化为旋转矩阵到角轴的计算:
在这里插入图片描述
在这里插入图片描述

3 SE3 与se3

设SE3的变换矩阵 T T T
T ( t ) = [ R ( t ) p ( t ) 0 1 ] T(t) =\left[ \begin{array}{ccc} R(t)&p(t)\\0&1 \end{array} \right] T(t)=[R(t)0p(t)1]

同样,我们构造 T ˙ = A T \dot T=AT T˙=AT的形式,从而使得 T = e x p ⁡ ( A ) T=exp⁡(A) T=exp(A)成立。
T ˙ ( t ) = [ R ˙ ( t ) p ˙ ( t ) 0 1 ] = [ ω ^ ( t ) R ( t ) p ˙ ( t ) 0 1 ] \dot T(t) =\left[ \begin{array}{ccc} \dot R(t)&\dot p(t)\\0&1 \end{array} \right] =\left[ \begin{array}{ccc} \hat ω(t)R(t)&\dot p(t)\\0&1 \end{array} \right] T˙(t)=[R˙(t)0p˙(t)1]=[ω^(t)R(t)0p˙(t)1]

T ˙ ( t ) T − 1 ( t ) = [ ω ^ ( t ) − ω ^ ( t ) ⋅ p ( t ) + p ˙ ( t ) 0 0 ] = A 4 ∗ 4 \dot T(t) T^{-1} (t) =\left[ \begin{array}{ccc} \hat ω(t)&-\hat ω(t) \cdot p(t)+\dot p(t)\\0&0 \end{array} \right]=A_{4*4} T˙(t)T1(t)=[ω^(t)0ω^(t)p(t)+p˙(t)0]=A44
对比1.3节的公式:
S ˙ W ( t ) = ω ^ ( t ) ⋅ S W ( t ) − ω ^ ( t ) ⋅ p ( t ) + p ˙ ( t ) = ω ^ ( t ) ⋅ S W ( t ) + v ( t ) \dot S_W (t)=\hat ω(t) \cdot S_W(t)-\hat ω(t)\cdot p(t)+\dot p(t)=\hat ω(t)\cdot S_W (t)+v(t) S˙W(t)=ω^(t)SW(t)ω^(t)p(t)+p˙(t)=ω^(t)SW(t)+v(t)

佐证:
ω ω ω对应B坐标系在W坐标系下的旋转角速度。
v ( t ) v(t) v(t)对应W坐标系下线速度。

3.1 se3 2 SE3:

se3 对应的 A A A阵为4*4的矩阵,加入偏移数据后,不再是一个反对称矩阵。我们设T阵对应的李代数为 ξ ξ ξ,其对应的李代数矩阵[ξ]表示为:
A = [ ξ ] = [ θ ^ ρ 0 0 ] A=[ξ]=\left[ \begin{array}{ccc} \hatθ&ρ\\0&0 \end{array} \right] A=[ξ]=[θ^0ρ0]

同样求e指数:
在这里插入图片描述

3.2 SE3 2 se3

在这里插入图片描述
此外,注意:不成立
在这里插入图片描述
一个常用性质:
在这里插入图片描述
https://natanaso.github.io/ece276a2019/ref/ECE276A_12_SE3.pdf
https://vnav.mit.edu/material/04-05-LieGroups-notes.pdf

4 SIM3 与sim3

SIM3与sim3之间的exp指数映射方式有多种:

  1. 第一种:
    https://qiita.com/shinsumicco/items/a2a00a3942caf2c88ecb
    [Trajectory Alignment and Evaluation in SLAM: Horn’s Method vs Alignment on the Manifold]

设一个sim3, δ δ δ,其对应的 A A A
A = [ δ ] = [ θ ^ + σ I 3 ∗ 3 ρ 0 3 T 0 ] A=[δ]=\left[\begin{array}{ccc} \hat θ+σI_{3*3}&ρ\\0_3^T&0 \end{array}\right] A=[δ]=[θ^+σI3303Tρ0]
e x p ⁡ ( A ) = e x p ⁡ ( [ δ ] ) = [ e x p ( σ ) e x p ⁡ ( θ ^ ) W ρ 0 1 ] exp⁡(A)=exp⁡([δ])=\left[\begin{array}{}exp(σ)exp⁡(\hat θ)&Wρ\\0&1\end{array}\right] exp(A)=exp([δ])=[exp(σ)exp(θ^)0Wρ1]
在这里插入图片描述

  1. 第二种:
    https://ethaneade.com/latex2html/lie/node29.html
    δ δ δ对应的A阵 A = [ δ ] = [ θ ^ ρ 0 − σ ] A=[δ]=\left[\begin{array}{}\hat θ&ρ\\0&-σ\end{array}\right] A=[δ]=[θ^0ρσ]

e x p ⁡ ( A ) = e x p ⁡ ( [ δ ] ) = [ e x p ⁡ ( θ ^ ) W ρ 0 e x p ⁡ ( − σ ) ) ] exp⁡(A)=exp⁡([δ])=\left[\begin{array}{}exp⁡(\hatθ)&Wρ\\0&exp⁡(-σ) )\end{array}\right] exp(A)=exp([δ])=[exp(θ^)0Wρexp(σ))]
具体W不给出,请与链接中查看

5 Adjoint Map

https://dellaert.github.io/20S-8803MM/Readings/3D-Adjoints-note.pdf

根据上文:
S ˙ w ( t ) = ω ^ ( t ) ⋅ S W ( t ) + v ( t ) \dot S_w (t)=\hatω(t)\cdot S_W(t)+v(t) S˙w(t)=ω^(t)SW(t)+v(t)
写成齐次形式:
在这里插入图片描述
其中,
V w = [ ω ( t ) v ( t ) ] 6 ∗ 1 V_w=\left[\begin{array}{}ω(t)\\v(t) \end{array}\right]_{6*1} Vw=[ω(t)v(t)]61
根据 S W ( t ) = R ( t ) ⋅ S B + p ( t ) S_W(t)=R(t)\cdot S_B+p(t) SW(t)=R(t)SB+p(t)计算 P ˙ B \dot P_B P˙B P B P_B PB之间的映射
齐次:
在这里插入图片描述
代入 P ˙ W = V W P W \dot P_W=V_W P_W P˙W=VWPW得:
T B W P ˙ B = V W T B W P B ⟹ P ˙ B = ( T B W ) − 1 V ^ W T B W P B T_B^W \dot P_B=V_W T_B^W P_B⟹\dot P_B=(T_B^W)^{-1} \hat V_W T_B^W P_B TBWP˙B=VWTBWPBP˙B=(TBW)1V^WTBWPB
从而可知:
V ^ B = ( T B W ) − 1 V ^ W T B W = T W B V ^ W ( T W B ) − 1 \hat V_B=(T_B^W )^{-1} \hat V_W T_B^W=T_W^B \hat V_W(T_W^B )^{-1} V^B=(TBW)1V^WTBW=TWBV^W(TWB)1
以上便是Adjoint Map,可见Adjoint Map是将速度之间的映射
我们可以从 V ˙ B \dot V_B V˙B V ˙ W \dot V_W V˙W之间的关系中,找到 V W V_W VW V B V_B VB之间的映射。 V W V_W VW V B V_B VB为6维向量,而 V ^ B \hat V_B V^B V ^ W \hat V_W V^W为4*4的向量构成的方阵。
令:
在这里插入图片描述
根据叉乘的反交换律和在这里插入图片描述
可得:
在这里插入图片描述
从而根据:
在这里插入图片描述
可得:
在这里插入图片描述

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

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

相关文章

2023年以就业为目的学习Java还有必要吗?

文章目录 1活力四射的 Java2从零开始学会 Java3talk is cheap, show me the code4结语写作末尾 现在学 Java 找工作还有优势吗? 在某乎上可以看到大家对此问题的热议:“2023年以就业为目的学习Java还有必要吗?” 。有人说市场饱和&#xff0c…

基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码

基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于白冠鸡算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于白冠鸡优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

django ModelSerializer自定义显示字段

文章目录 前言一、问题二、解决 前言 最近在复习django的时候,发现了一个有趣的问题,解决了之后特意记录下来,以供以后参考。 一、问题 相信大家使用django的时候,被其DRF的强大功能所折服,因为它能通过简单的代码就…

威班11月份PMP模拟考试实录

11月份模拟考试于2023年11月18日在深圳市福田区鹏基商务时空大厦成功举办! 本次线下模拟考试依旧是通过线上线下同步的方式进行,在深圳周边的学员直接到达现场参与模拟考试,全国各地不能到达现场的其他学员已提前收到考试所需资料&#xff0…

C++ LibCurl实现Web指纹识别

Web指纹识别是一种通过分析Web应用程序的特征和元数据,以确定应用程序所使用的技术栈和配置的技术。这项技术旨在识别Web服务器、Web应用框架、后端数据库、JavaScript库等组件的版本和配置信息。通过分析HTTP响应头、HTML源代码、JavaScript代码、CSS文件等&#x…

【ARM Trace32(劳特巴赫) 使用介绍 2.3 -- TRACE32 进阶命令之 参数传递介绍】

请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 参数传递命令 ENTRY 参数传递命令 ENTRY ENTRY <parlist>The ENTRY command can be used to Pass parameters to a PRACTICE script or to a subroutineTo return a value from a subroutine 使用示例&am…

《洛谷深入浅出基础篇》P3916 图的遍历——逆向搜索

上链接&#xff1a; P3916 图的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P3916上题干&#xff1a; 题目描述 给出 N 个点&#xff0c;M 条边的有向图&#xff0c;对于每个点 v&#xff0c;求 A(v) 表示从点 v 出发&#xff0c;能到…

合并区间(排序、贪心)

LCR 074. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 题目描述 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中…

改进YOLOv8:结合Biformer——基于动态稀疏注意力构建高效金字塔网络架构

🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv8:我的专业笔记与技术总结   -- YOLOv8轻松上手, 适用技术小白,文章代码齐全,仅需 …

Unity 场景烘培 ——unity灯光和设置天空盒(二)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神指出。 文章目录 前言一、光源种类1.Directional Light(方向光&#xff0c;平行光)2.Point Light&#xff08;点光源&#xff09;3.Spotlight&#xff08;聚光灯&#xff09;4.Area Light&#xff08;区域光&#xff…

【C++】——多态性与模板(其二)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

import.meta.glob() 如何导入多个目录下的资源

import.meta.glob() 如何导入多个目录下的资源 刚开始用 vite&#xff0c;在做动态路由的时候遇到了这个问题&#xff0c;看到其它教程上都是只引用了一个目录层级的内容&#xff0c;比如这样&#xff1a; let RouterModules import.meta.glob("/src/view/*/*.vue"…

vue3中使用全局自定义指令和组件自定义指令

这篇文章会教大家如何实现全局自定义指令和组件自定义指令 &#x1f4d3;全局自定义指令和组件自定义指令的区别&#xff0c;除了写法不同和作用不同&#xff0c;其他的包括生命周期的使用方法都是一致的&#xff0c;全局自定义指令在main.ts中注册后整个项目都可以使用&#x…

STM32定时器输入捕获测量高电平时间

STM32定时器输入捕获测量高电平时间 输入捕获测量高电平时间CuebMX配置代码部分 本篇内容要求读者对STM32通用定时器有一点理解&#xff0c;如有不解&#xff0c;请看 夜深人静学32系列15——通用定时器 输入捕获 输入捕获是STM32通用定时器的一种功能&#xff0c;可以捕获特定…

axios 请求合集

post 请求 请求负载请求参数&#xff08;Request Payload&#xff09; import axios from axios import qs from query-stringexport function getRoles(data){return axios.post(目标地址,data,{headers:{Content-Type: application/json,},}) }表单请求参数&#xff08;Form…

OGG-01224 Address already in use 问题

ERROR OGG-01224 Oracle GoldenGate Manager for Oracle, mgr.prm: Address already in use. ERROR OGG-01668 Oracle GoldenGate Manager for Oracle, mgr.prm: PROCESS ABENDING. 查看端口被占用情况&#xff1a; [rootcenterone ogg]# lsof -i:7809原因mgr 7809 端口被占…

Spring-IOC-@Value和@PropertySource用法

1、Book.java PropertySource(value"classpath:配置文件地址") 替代 <context:property-placeholder location"配置文件地址"/> Value("${book.bid}") Value("${book.bname}") Value("${book.price}") <bean id&…

MS90C386:+3.3V 175MHz 的 24bit 平板显示器(FPD)LVDS 信号接收器

产品简述 MS90C386 芯片能够将 4 通道的低压差分信号&#xff08; LVDS &#xff09;转换成 28bit 的 TTL 数据。时钟通道与数据通道并行输入。在时钟频率 为 175MHz 时&#xff0c; 24bit 的 RGB 数据、 3bit 的 LCD 时序数据和 1bit 的控制数据以 1225Mb…

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…

c++|内联函数

一、概念 以inline修饰的函数叫做内联函数&#xff0c;编译时c编译器会在调用函数的地方展开&#xff0c;而不会建立栈帧&#xff0c;提升了程序运行的效率 例子&#xff1a; #include <iostream> using namespace std;int Add(int left, int right) {return left - ri…