SLAM代码(lie group基础)

本文介绍了李群的基本概念,包括其数学定义及其在几何变换中的应用,并详细阐述了几种常用的李群如SO(3)、SE(3)等。同时,文中还解释了李群对应的李代数的概念,以及李群与李代数之间的转换。

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

李群基本数学定义

  • 群:集合G + 操作符 ∘ ∶ G ∘ G → G,满足:
  • 封闭性: g1g2G,g1,g2G
  • 结合律: g1g2g3=g1g2g3,g1,g2,g3G
  • 单位元: eG:eg=ge=g,gG
  • 可逆性: g1G:gg1=g1g=e,gG

李群:群 + 光滑

  • 群操作符的映射,是光滑映射
  • (整数群 Z 不是李群)

李群的李代数:向量空间 + 双线性操作符(李括号)

  • 数学空间,一个数域上的代数(algebra over a field)
  • 操作符4个性质:封闭性、双线性、alternating、雅克比等式(略)
  • 李群在单位元素处的切空间

常用李群举例

一般线性群:GL(n)

  • 所有 n×n 的可逆矩阵
  • 操作符为矩阵乘法
  • 单位元是单位矩阵I n×n

正交群: O(n)GL(n)

  • O(n)={RGL(n)|RTR=I}

特殊正交群: SO(n)O(n)GL(n)

  • SO(n)={RGL(n)|RTR=I,det(R)=+1}

欧几里得群: E(n)GL(n+1)

  • E(n)={[R0t1]|RO(n),tRn}

特殊欧几里得群: SE(n)GL(n+1)

  • SE(n)={[R0t1]|RSO(n),tRn}
groupphysical meaning
SO3Rotation
SE3poses

这里写图片描述

lie 代数

构成
1. 向量空间, vectorspace
2. 数域, some field
3. 李括号 lie bracket

李括号满足的性质.

这里写图片描述

对于SO(3)SO(3)和SE(3)SE(3),李代数可定义于李群的正切空间上,描述了李群中元素局部性质,分别把它们记作小写的so(3)so(3)和se(3)se(3)。首先,给出通用的李代数的定义。

指数映射

通过指数映射从李代数转为李群,李群通过对数映射转为李代数.

雅克比

雅克比矩阵为转换李代数中的平移成分为SE3中的平移成分

r=Jρ

SE(3)中的指数映射和对数映射

refer

  1. http://www.cnblogs.com/gaoxiang12/p/5137454.html
  2. http://blog.youkuaiyun.com/heyijia0327/article/details/50446140
  3. https://www.youtube.com/watch?v=khLM8VV8LuM
  4. https://www.youtube.com/playlist?list=PLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4
李群的一本书,是扫描版,书的质量不错。 This book is intended for a one year graduate course on Lie groups and Lie algebras. The author proceeds beyond the representation theory of compact Lie groups (which is the basis of many texts)and provides a carefully chosen range of material to give the student the bigger picture. For compact Lie groups, the Peter-Weyl theorem, conjugacy of maximal tori (two proofs), Weyl character formula and more are covered. The book continues with the study of complex analytic groups, then general noncompact Lie groups, including the Coxeter presentation of the Weyl group, the Iwasawa and Bruhat decompositions, Cartan decomposition, symmetric spaces, Cayley transforms, relative root systems, Satake diagrams, extended Dynkin diagrams and a survey of the ways Lie groups may be embedded in one another. The book culminates in a "topics" section giving depth to the student's understanding of representation theory, taking the Frobenius-Schur duality between the representation theory of the symmetric group and the unitary groups as a unifying theme, with many applications in diverse areas such as random matrix theory, minors of Toeplitz matrices, symmetric algebra decompositions, Gelfand pairs, Hecke algebras, representations of finite general linear groups and the cohomology of Grassmannians and flag varieties.   Daniel Bump is Professor of Mathematics at Stanford University. His research is in automorphic forms, representation theory and number theory. He is a co-author of GNU Go, a computer program that plays the game of Go. His previous books include Automorphic Forms and Representations (Cambridge University Press 1997)and Algebraic Geometry (World Scientific 1998).
### 关于 SLAM 中李群与李代数的代码实现 在《视觉SLAM十四讲》中提到,为了处理旋转和平移操作中的微分问题,引入了李群和李代数的概念。由于李群上的运算仅限于乘法而缺乏加法规则,这使得在其上定义导数变得困难[^3]。 针对这一挑战,在实际编程实践中通常会通过指数映射将李群转换至其对应的李代数空间内进行计算,因为后者是一个线性的向量空间,允许执行诸如求导这样的操作。下面给出一段简单的 Python 实现例子用于展示如何利用 Sophus 库来进行 SE(3) 的基本操作: ```python import sophus as sp from scipy.spatial.transform import Rotation as R def se3_exp_map(w,u): """Compute the exponential map from Lie algebra to Lie group. Args: w (numpy.ndarray): A 3D vector representing angular velocity. u (numpy.ndarray): A 3D vector representing linear velocity. Returns: sophus.SE3: An element of SE(3). """ omega_hat = sp.so3.exp(sp.Vector3d(*w)) v = sp.Vector3d(*u) return sp.SE3(omega_hat, v) if __name__ == "__main__": # Example usage with random values for demonstration purposes only rotation_velocity = [0.1, 0.2, 0.3] translation_velocity = [0.4, 0.5, 0.6] transformation_matrix = se3_exp_map(rotation_velocity, translation_velocity) print(transformation_matrix.matrix()) ``` 上述代码片段展示了怎样创建一个 `sophus` 类型的对象并打印出相应的变换矩阵。这里使用的是 Sophus 这一专门设计用来高效表示 SO(3)/SE(3) 及其对应李代数 so(3)/se(3) 的 C++/Python 库[^4]。 对于更复杂的场景比如轨迹绘制,则可能涉及到读取外部文件以及调用图形库如 Pangolin 来可视化结果。这部分工作往往依赖具体的应用需求和个人偏好来决定具体的实施方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值