李群、流形、李代数

参考;
为什么引入李群流形 李代数 求导 微分 四元数
机器人学——李群、李代数快速入门

一、关系

在这里插入图片描述

二、manifold

偏向几何拓扑
流形空间:光滑的凸表面
在这里插入图片描述
一个普通的vector space空间的求导
lim ⁡ δ x → 0 f ( x + δ x ) − f ( x ) δ x {\lim_{\delta x \to 0} \frac{f(x+\delta x)-f(x)}{\delta x}} δx0limδxf(x+δx)f(x)

但在manifold空间,常常
x x x–>线性空间(切空间)
f ( x ) f(x) f(x)–>manifold空间

2.1 local

f u n c t i o n ( y 1 , y 2 ) − > Δ x function(y_1,y_2)->\Delta x function(y1,y2)>Δx
为什么引入李群流形 李代数 求导 微分 四元数
local操作就包含了减法的概念:减去y1然后变换到切空间。
(算出在局部坐标系的相对距离)

2.2 retract

f u n c t i o n ( y 1 , Δ x ) − > y 2 function(y_1,\Delta x)->y_2 function(y1,Δx)>y2

2.3 流行空间上的导数

lim ⁡ Δ x → 0 L o c a l ( y 1 , R e t r a c t ( y 1 , Δ x ) ) Δ x {\lim_{\Delta x \to 0} \frac{Local(y_1,Retract(y_1,\Delta x))}{\Delta x}} Δx0limΔxLocal(y1,Retract(y1,Δx))

三、Group

在这里插入图片描述
封闭
幺元
逆元
结合性

3.1 操作

compose运算操作
identity幺元
inverse逆元
Between(g,h)距离操作(抽象减法)—>g.inverse()*h

四、Lie Group

在这里插入图片描述
继承了manifold和group的接口

在这里插入图片描述
切点->切空间->局部坐标系

在这里插入图片描述
中间层:李代数空间
必须注意的是,李代数是 R n 的向量 R^{n}的向量 Rn的向量

4.1 Lie Group的Retract和Local操作

4.1.1 manifold的Retract和Local

R e t r a c t ( g , v ) Retract(g,v) Retract(g,v)
g g g is manifold space
h h h is manifold space
v v v is vector space(切空间)
注意:*是compose操作
R e t r a c t Retract Retract 是已知 y 1 和 Δ x  求 y 2 y_1和\Delta x\space求y_2 y1Δx y2
L o c a l Local Local 是已知 y 1 和 y 2 求 Δ x y_1和y_2求\Delta x y1y2Δx
y 1 , y 2 y_1,y_2 y1,y2—>manifold space
Δ x \Delta x Δx—>切空间
所以
R e t r a c t ( g , v ) = g ∗ e x p ( v ∧ ) = h Retract(g,v)=g*exp(v^{\wedge})=h Retract(g,v)=gexp(v)=h

L o c a l ( g , h ) = [ l o g ( B e t w e e n ( g , h ) ) ] ∨ = v Local(g,h)=[log(Between(g,h))]^{\vee}=v Local(g,h)=[log(Between(g,h))]=v

4.2 继承的group的compose、identity、inverse、between操作

4.2.1 compose

广义上的*
c o m p o s e ( g , h ) = g ∗ h compose(g,h)= g*h compose(g,h)=gh

4.2.2 identity

i d e n t i t y ( g ) = I identity(g)=I identity(g)=I

4.2.3 inverse

i n v e r s e ( g ) = g − 1    ,   b e c a u s e   g − 1 ∗ g = g ∗ g − 1 = I inverse(g)=g^{-1}\space\space, \space because \space g^{-1}*g=g*g^{-1}=I inverse(g)=g1  , because g1g=gg1=I

4.2.4 between

b e t w e e n ( g , h ) = g . i n v e r s e   ∗   h between(g,h)=g.inverse\space*\space h between(g,h)=g.inverse  h

4.3 Logmap

TangentVector Logmap(LieGroup g)
{
}

T a n g e n t V e c t o r   L o g m a p ( L i e G r o u p   g ) r e t u r n   [ l o g ( g ) ] ∨ TangentVector\space Logmap(LieGroup\space g) \\return\space [log(g)]^{\vee} TangentVector Logmap(LieGroup g)return [log(g)]

4.4 Expmap

LieGroup Expmap(TangentVector v)
{
}

L i e G r o u p   E x p m a p ( T a n g e n t V e c t o r   v ) r e t u r n   e x p ( v ∧ ) LieGroup\space Expmap(TangentVector\space v) \\return\space exp(v^{\wedge}) LieGroup Expmap(TangentVector v)return exp(v)

五、典型的李群

在这里插入图片描述

### 李群代数的数学定义 #### 李群 李群是一种既具备群结构又具有光滑流形特性的对象。具体来说,李群是一个集合 \( G \),其满足两个条件: 1. 集合 \( G \) 是一个拓扑空间上的光滑流形[^2]。 2. 群操作(乘法和逆运算)是可微分的函数。 常见的李群包括特殊正交群 \( SO(n) \) 和特殊欧几里得群 \( SE(n) \)。这些群分别用于描述旋转和平移变换,在机器人学、计算机视觉等领域有广泛应用。 --- #### 代数 代数是从李群导出的一个线性代数结构,它是李群在单位元附近的局部近似。对于任意李群 \( G \),它的代数记为 \( \mathfrak{g} \),并由以下特性定义: - **向量空间**:\( \mathfrak{g} \) 是一个向量空间,维度等于李群作为流形的维数。 - **括号**:\( \mathfrak{g} \) 上定义了一个双线性映射称为括号 \( [\cdot, \cdot] : \mathfrak{g} \times \mathfrak{g} \to \mathfrak{g} \),该映射满足反对称性和雅可比恒等式[^1]。 例如,\( SO(3) \) 的代数 \( \mathfrak{so}(3) \) 可以通过三维向量来表示,而 \( SE(3) \) 的代数 \( \mathfrak{se}(3) \) 则可以用六维向量表示平移和旋转的速度。 --- ### 李群代数的关系 李群与其对应的代数之间存在紧密联系。这种关系可以通过指数映射和对数映射建立起来: - **指数映射**:给定代数中的某个元素 \( \xi \in \mathfrak{g} \),可以通过指数映射将其映射到李群中对应的位置 \( g = e^\xi \in G \)[^1]。 - **对数映射**:反之,如果已知李群中的某一点 \( g \in G \),则可通过对其取对数得到相应的代数元素 \( \xi = \log(g) \in \mathfrak{g} \)[^1]。 这一过程使得复杂的非线性问题可以在代数的空间内转化为更简单的线性计算。 --- ### 应用领域 李群代数广泛应用于多个科学和技术领域,特别是在涉及几何变换的地方。以下是几个典型应用实例: 1. **机器人运动规划**:利用 \( SE(3) \) 描述机器人的位姿变化,并借助代数简化控制算法的设计。 2. **计算机视觉**:在单目相机模型下,姿态估计常依赖于 \( SO(3) \) 或 \( SE(3) \) 表达方式;同时,基于代数的方法能有效处理噪声数据。 3. **物理理论**:量子力学中的对称性分析以及广义相对论框架下的时空变换都涉及到不同类型的李群及其关联的代数。 --- ```python import numpy as np def so3_to_SO3(w): """ 将代数 so(3) 转换为李群 SO(3) """ theta = np.linalg.norm(w) if theta < 1e-6: R = np.eye(3) else: skew_w = np.array([[0,-w[2],w[1]], [w[2],0,-w[0]], [-w[1],w[0],0]]) R = np.eye(3) + (np.sin(theta)/theta)*skew_w + ((1-np.cos(theta))/(theta**2))*(skew_w @ skew_w) return R # 示例输入 w = np.array([0.1, 0.2, 0.3]) R = so3_to_SO3(w) print(R) ``` 上述代码展示了如何从代数 \( \mathfrak{so}(3) \) 计算对应的李群 \( SO(3) \) 中的姿态矩阵。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值