李群与李代数公式推导

博客探讨了为何在优化问题中引入李代数的原因,旋转矩阵作为优化变量时存在约束,而李代数则提供了一个无约束的优化空间。指数映射和对数映射在此过程中起到关键作用,将李群与李代数互相转换。博客还提及了李代数在SLAM中的应用,特别是旋转向量如何表示为矩阵并进行求导。同时,介绍了两种求导方式:李代数求导和扰动模型。内容涵盖了BCH公式、泰勒展开和角速度的表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:李群与李代数_详细公式推导
参考:视觉SLAM十四讲

为什么要引入李代数

旋转矩阵(李群)自身是带有约束的,正交且行列式为1,他们作为优化变量时,会引入额外的约束,使得优化变的困难,通过转为李代数,把位姿估计变成无约束的优化问题。
优化过程求极值,求导数的定义式,会涉及矩阵加法,但是矩阵对于加法不封闭,对于乘法封闭
我们可以把李群看做就是变换矩阵的集合,通过转为李代数,李代数是向量,有定义加法,用求导的定义式子就可以求解优化问题了。

指数映射(exponential map)和对数映射(logarithmic map)

在这里插入图片描述
ϕ = a r c c o s ( t r a c e ( R ) − 1 2 ) , u = ( R − R T ) ∨ 2 s i n ϕ \phi = arccos\left(\frac{trace(\bm R)-1}{2}\right), \\ \bm u = \frac{(\bm R - \bm R^T)^\vee}{2sin\phi} ϕ=arccos(2trace(R)1),u=2sinϕ(RRT)

来源于:《Quaternion kinematics for the error-state Kalman filter》
上式如何求证??

推导:李代数与李群间的转换-指数映射、对数映射

李代数 => 向量,so(3)实际上就是旋转向量组成的空间
李群 => 矩阵,se(3)实际上就是旋转向量对应的旋转矩阵
李代数(旋转向量空间) => 李群(矩阵空间):使用罗德里格斯公式(4.22)
李群(矩阵空间) => 李代数(旋转向量空间):使用罗德里格斯公式取两边的迹(对角线元素之和)求解θ,
a由Ra=a解得,视觉SLAM十四讲(3.17)和(3.18)。

公式(10)/(4.10):旋转矩阵R与反对称矩阵φ(t0)^,是通过指数函数exp(.)发生联系的。

假设旋转向量φ为李代数,对应矩阵可以表示为:R=exp(φ^),
是一个反对称矩阵的指数,在李群李代数中,其被称作指数映射(Exponential Map)。
任意矩阵的指数映射可以写成一个泰勒展开的形式,结果还是一个矩阵。

定义旋转向量φ的模长和方向为θ和a,于是φ=θa,R=exp(φ^ )=exp(θa^)
向量φ的模θ是旋转的角度,向量φ本身就是绕着旋转的轴。
对φ给出一个新的定义,φ=ωt,这个运动刻画的是角速度恒定的定点转动:参考SLAM中,李代数so(3)的指数映射就是这个旋转向量对应的旋转矩阵么?

李代数求导和扰动模型

李群乘法与李代数加法互转:

在这里插入图片描述

对李代数SE3求导

请添加图片描述请添加图片描述

一、BCH公式与近似形式
二、两种求导方式:
(1)李代数求导
(2)扰动模型(左乘)
参考:李群与李代数:https://blog.csdn.net/andylei777/article/details/79366078
### 旋转向量代数在计算机视觉及机器人学的应用 #### 旋转向量及其转换至旋转矩阵 对于三维空间内的任意旋转动作,可以利用一个长度等于旋转角度、方向代表转轴的向量来描述这一过程[^1]。这种表示方式被称为旋转向量或者轴角(Axis-Angle)表示法。为了便于后续处理,通常会进一步将其转化为更加易于操作的形式—旋转矩阵。 给定一个由三个角速度分量构成的向量ω=[wx,wy,wz]^T,可以通过构建相应的反对称矩阵Ω=∧(ω),再经指数映射expm(Ωθ)=R的方式获取最终的旋转矩阵R∈SO(3)[^2]。这里θ指代绕着指定轴线所发生的总转动幅度;而expm()函数则实现了从代数so(3)(即所有可能取值的Ω集合)到特殊正交群SO(3)(即合法有效的3×3阶旋转矩阵全体)之间的变换关系建立。 ```python import numpy as np from scipy.linalg import expm def skew_symmetric(v): """Convert vector to its corresponding skew symmetric matrix.""" return np.array([[0,-v[2], v[1]], [v[2], 0,-v[0]], [-v[1],v[0], 0]]) def rotation_matrix_from_angular_velocity(w, theta): Omega = skew_symmetric(w) R = expm(Omega * theta) return R ``` 上述代码片段展示了如何依据输入的角度变化率w以及累积偏转程度theta计算得出目标物体当前姿态下的精确方位信息R。 #### 代数基础概念简介 当涉及到连续时间域上的动态系统建模时,尤其是针对那些具备内在几何结构特征的对象而言(比如刚体),引入抽象代数工具箱里的一个重要成员——氏理论就显得尤为必要了。具体来说,在此领域中最常遇见的就是所谓的“李群其相伴生之“代数”。 前者定义了一类满足特定封闭性和光滑性的非奇异方阵群体G={g|det(g)!=0},后者则是前者的无穷小邻近区域局部形态的一种线性化逼近结果Lie(G){X,Y,...}[^4]。二者之间存在着一一对应的关系,并且借助于幂级数展开技巧可以在一定条件下实现相互间的双向转化: \[ g=\sum_{n=0}^{+\infty}\frac{(ad_X)^n}{(n+1)!}(Y)\approx e^{tX}, t\rightarrow 0 \] 其中\( ad_X(Y):=[X,Y]=XY-YX\)称为伴随作用(adjoin action), 它刻画了两个元素间相对位置的变化规律; 而右侧部分给出的就是熟知的一维实数流形上标准微积分里关于e指数函数的标准极限表达式之一种推广版本. 值得注意的是,在实际编程实践中很少直接使用如此复杂的公式进行数值模拟仿真工作,而是更多依赖成熟的库函数完成相应功能调用。然而理解这些背后的原理有助于加深对整个框架体系的认识水平并为进一步优化改进提供指导思路。 #### SLAM中基于李群/代数的姿态估计方法概述 同步定位地图创建(Simultaneous Localization And Mapping,简称SLAM)问题是当今自动驾驶汽车导航规划研究热点话题之一。该问题本质上是要解决在一个未知环境中自主移动设备怎样才能一边绘制周围环境的地图数据同时确定自己所在的确切地理位置这样一个挑战性任务[^5]。 在这个过程中不可避免地要用到大量涉及到了多视角几何变换的知识点,特别是有关于不同参照系下坐标转换方面的内容。此时采用李群代数作为数学语言的优势便体现出来了:一方面可以直接继承传统欧几里得空间内熟悉的加减乘除四则运算规则从而简化推导流程;另一方面又能很好地兼容现代控制论当中广泛使用的状态反馈机制进而提高整体系统的鲁棒性能表现。 例如,在EKF-SLAM(Estended Kalman Filter based Simultaneous Localization and Mapping)算法设计里面就可以看到这样的应用场景实例。通过对观测模型实施泰勒展开保留一次项忽略高次微量之后得到的状态转移方程组正好构成了一个典型的代数结构形式,这样不仅使得原本复杂棘手的概率密度传播难题得到了有效化解而且还为后续贝叶斯更新环节提供了坚实的理论支撑保障。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值