从零开始学习Slam--数学概念
正交矩阵
矩阵的转置等于它的逆矩阵,这样的矩阵称之为正交矩阵
即: Q T Q = I Q^T Q = I QTQ=I,
这样的矩阵列向量都是单位向量且两两正交。
旋转矩阵属于特殊的正交群,即SO(n),这里n通常是3,所以SO(3)就是三维旋转矩阵的群。
行列式为1的正交矩阵构成SO(n),而行列式为-1的正交矩阵则可能包含反射变换 2 ^2 2。旋转不应该改变物体的手性,所以行列式必须是1。而 正交性保证了旋转时向量的长度和夹角不变 1 ^1 1,所以旋转矩阵必须是正交的,行列式1。
注释1:首先,正交性为什么能保证不拉伸或压缩物体呢?可能是因为正交矩阵作用于向量时,保持向量的长度不变。比如,如果有一个向量v,经过正交矩阵Q变换后的长度应该是v的原始长度。
数学上: ∣ ∣ Q v ∣ ∣ 2 = ( Q v ) T ( Q v ) = v T Q T Q v = v T v = ∣ ∣ v ∣ ∣ 2 ||Qv||² = (Qv)^T (Qv) = v^T Q^T Q v = v^T v = ||v||² ∣∣Qv∣∣2=(Qv)T(Qv)=vTQTQv=vTv=∣∣v∣∣2。所以长度确实不变。那夹角呢?
两个向量v和w的夹角由内积决定:
变换后的内积 ( Q v ) ⋅ ( Q w ) = v T Q T Q w = v T w (Qv)·(Qw) = v^T Q^T Q w = v^T w (Qv)⋅(Qw)=vTQTQw=vTw,所以内积不变,夹角也不变。所以正交性确实保证了旋转操作不会改变长度和夹角,也就是不拉伸或压缩。
注释2 :之前在介绍旋转矩阵时讲过一个方法:“绕谁谁不变”,所以向量 [ a , b ] T [a,b]^T [a,b]T 绕x轴旋转之后变为 [ a , − b ] T [a,-b]^T [a,−b]T,所以反射矩阵为 [ 1 0 0 − 1 ] \begin{bmatrix} 1&0 \\ 0&-1 \end{bmatrix} [100−1],行列式的值为-1
行列式
计算方法
性质
-
矩阵是否可逆
若det(A) ≠ 0,则矩阵 A 可逆(非奇异矩阵)。
若det(A) = 0,则矩阵 A 不可逆(奇异矩阵)。 -
线性变换的几何意义
行列式的绝对值表示矩阵对应线性变换对空间的体积缩放比例:
二维矩阵:行列式是面积缩放因子。
三维矩阵:行列式是体积缩放因子。例如,若 det(A) = 2, 则线性变换将原空间的体积放大2倍。 -
方向是否改变
行列式的符号反映线性变换是否改变空间的方向:
det(A) > 0 : 保持空间方向(如纯旋转)。
det(A) < 0 : 反转空间方向(如镜像反射)。 -
矩阵的正交性与旋转
正交矩阵(列向量为单位正交向量)的行列式值为 ±1.
det(A) = 1: 对应旋转变换(如 SO(n) 群)。
det(A) = -1: :包含反射变换(改变手性)。 -
特征值的乘积
行列式等于矩阵所有特征值的乘积:
det(A) = λ 1 ∗ λ 2 ∗ λ 3 ∗ λ 4 ∗ λ 5 . . . {\lambda }_{1}*{\lambda }_{2}*{\lambda }_{3}*{\lambda }_{4}*{\lambda }_{5}... λ1∗λ2∗λ3∗λ4∗λ5...
李群与李代数
李群
李群是同时具有光滑流形结构和群结构的数学对象,群操作(乘法与取逆)是光滑的。例如:
SO(3):三维旋转矩阵群,元素是3×3正交矩阵,行列式为1。
SE(3):三维刚体变换群(旋转+平移),元素是4×4齐次变换矩阵。
光滑流形结构(Smooth Manifold Structure):流形是可以局部看作点组成的空间。而“光滑”意味着这个空间是处处平滑的,没有尖角或断点。也就是说,在流形上的每一点周围都可以找到一个局部,使得这部分在数学上可以和一个欧氏空间(例如平面在二维,或者三维空间)完全一致,而且这些局部映射是光滑的(平滑无突变)。简单来说,光滑流形就是一个处处可以进行微分运算的空间。
群结构(Group Structure):群是集合上定义了一种满足特定条件的二元运算(通常称为“乘法”,但不是字面意义上的乘法)的代数结构。这些条件包括:
- 封闭性:对于任意的群内元素 a 和 b,它们的运算结果 a * b 也必定属于这个群。
- 结合律:对于任意的群内元素 a, b, 和 c,恒有 ( a ∗ b ) ∗ c = a ∗ ( b ∗ c ) (a * b) * c = a * (b * c) (a∗b)∗c=a∗(b∗c)。
- 运算封闭性下,群总包含一个单位元e,使得对于群内任意元素 a,恒有 a ∗ e = e ∗ a = a a * e = e * a = a a∗e=e∗a=a。
- 对于群内任意元素 a,都存在一个逆元 a − 1 a^{-1} a−1,使得 a ∗ a − 1 = a − 1 ∗ a = e a * a^{-1} = a^{-1} * a = e a∗a−1=a−1∗a=e。 简单来说,群结构是以一个集合和满足特定性质的运算为基础的代数结构。
群操作(Group Operation):在上面群结构的定义中,我们使用了“运算”这个词,指的是群内元素之间可以进行的某种操作。这种操作一般被称为群操作,它必须满足上面定义的群结构所要求的那几个条件(封闭性、结合律、包含单位元和逆元)。最直观的理解就是,给定群中的任意两个元素,它们经过群操作后得到的结果仍然是这个群的一个合法元素,而且这个操作需满足一系列的代数性质。
李代数(Lie Algebra)
李代数是与李群对应的向量空间,附加一个李括号运算(非交换的二元运算)。它描述了李群在单位元处的切空间,可以看作李群的局部线性近似。例如:
so(3):对应SO(3)的李代数,由3×3反对称矩阵组成(形式为 ω × {\omega }_{×} ω×,其中 ω ∈ R 3 {ω∈\mathbb{R}}^{3} ω∈R3)
se(3):对应SE(3)的李代数,包含平移和旋转分量,形式为 [ ρ , ω ] ⊤ ∈ R 6 [ρ,ω]^⊤∈\mathbb{R}^6 [ρ,ω]⊤∈R6
李括号运算:
李括号运算(Lie bracket operation)是定义在李代数上的一个特定类型的二元运算,它反映了李代数与相关的李群之间的微分结构。具体来说,李括号运算是一个从李代数的两个元素到李代数的映射,记作 ([X, Y]),其中 (X) 和 (Y) 是李代数中的元素。
李括号运算有以下几个重要性质:
- 双线性:对任意的元素 (X, Y, Z) 和标量 (a, b) (来自相关的标量域),有 [ [aX + bY, Z] = a[X, Z] + b[Y, Z] ] 和 [ [X, aY + bZ] = a[X, Y] + b[X, Z]. ]
- 交错(反对称)性:对于任意的 (X),有 [ [X, X] = 0. ] 进一步推论出 ([X, Y] = -[Y, X])。
- 雅可比恒等式:对于任意的 (X, Y, Z), 有 [ [[X, Y], Z] + [[Y, Z], X] + [[Z, X], Y] = 0 ]
李括号运算并不总是可交换的,也就是说,通常情况下 ( [ X , Y ] ≠ [ Y , X ] ) ([X, Y] \neq [Y,X]) ([X,Y]=[Y,X])。具体到李代数与李群之间的关系,李代数可以被看作李群在单位元(即李群的恒等元素)的切空间,李括号反映了李群上流形局部的非交换性,即群操作在局部上的非交换性质。将李群上的局部微分结构(通过切空间)转化为代数结构上的运算,李括号就是非常关键的形式化工具。
例如,在一般的线性李代数 ( g l ( n ) ) (\mathfrak{gl}(n)) (gl(n)) 中,李括号运算是由矩阵的换位子定义的,即对于两个 [ n n ] {[n \ n]} [n n] 矩阵 (A) 和 (B),定义李括号为: [ A , B ] = A B − B A [A, B] = AB - BA [A,B]=AB−BA其中 (AB)被理解为矩阵乘法。这个交换子运算满足上述李括号的所有性质,并且可以明确表示两个算子在操作上的非交换性。
李群与李代数的相互转换
李群与李代数通过**指数映射(Exponential Map)和对数映射(Logarithmic Map)**相互转换:
指数映射:李代数 → 李群
- a × {a}_{×} a× 是旋转轴单位向量 a 的反对称矩阵,θ 是旋转角度
对比一下之前多维矩阵旋转的罗德里格斯公式:
我们发现:矩阵形式的罗德里格斯公式在系数上进行了归一化处理,以适应矩阵指数的形式
优化中的应用
无约束优化:在李代数空间中,旋转表示为3维向量 ω ∈ R 3 {ω∈\mathbb{R}}^{3} ω∈R3 ,无需正交性或行列式约束,可直接用梯度下降等算法优化。
更新步骤:每次优化迭代后,通过指数映射将李代数增量转换为李群(旋转矩阵),确保结果始终满足约束。
ps:暂停笔记,数学不好,脑容量有限
相关文章:

从零开始学习Slam--数学概念
正交矩阵 矩阵的转置等于它的逆矩阵,这样的矩阵称之为正交矩阵 即: Q T Q I Q^T Q I QTQI, 这样的矩阵列向量都是单位向量且两两正交。 旋转矩阵属于特殊的正交群,即SO(n),这里n通常是3,所以SO(3)就是…...
【零基础到精通Java合集】第十五集:Map集合框架与泛型
课程标题:Map集合框架与泛型(15分钟) 目标:掌握泛型在Map中的键值类型约束,理解类型安全的键值操作,熟练使用泛型Map解决实际问题 0-1分钟:泛型Map的意义引入 以“字典翻译”类比泛型Map:明确键和值的类型(如英文→中文)。说明泛型Map的作用——确保键值对的类型一…...

从小米汽车召回看智驾“命门”:智能化时代 — 时间就是安全
2025年1月,小米因车辆“授时同步异常”召回3万余辆小米SU7,成为其造车历程中的首个重大安全事件。 从小米SU7召回事件剖析,授时同步何以成为智能驾驶的命门? 2024年11月,多名车主反馈SU7标准版的智能泊车辅助功能出现…...
Visual Studio Code 如何编写运行 C、C++ 程序
目录 安装 MinGW-w64 编译器(推荐)在 VS Code 中配置 C 开发环境 参考链接 在vs code上运行c脚本,报了下面的错误,我仅仅安装了vs code及在商店里下载了插件,其它配置操作没有做,直接对一个脚本进行运行&am…...

动静态库-Linux 学习
在软件开发中,程序库是一组预先编写好的程序代码,它们存储了常用的函数、变量和数据结构等。这些库可以帮助开发者节省大量的时间和精力,避免重复编写相同的代码。当我们在 Linux 系统中开发程序时,经常会用到两种类型的程序库&am…...

【Hudi-SQL DDL创建表语法】
CREATE TABLE 命令功能 CREATE TABLE命令通过指定带有表属性的字段列表来创建Hudi Table。 命令格式 CREATE TABLE [ IF NOT EXISTS] [database_name.]table_name[ (columnTypeList)]USING hudi[ COMMENT table_comment ][ LOCATION location_path ][ OPTIONS (options_lis…...

HTML label 标签使用
点击 <label> 标签通常会使与之关联的表单控件获得焦点或被激活。 通过正确使用 <label> 标签,可以使表单更加友好和易于使用,同时提高整体的可访问性。 基本用法 <label> 标签通过 for 属性与 id 为 username 的 <input> 元素…...

bge-large-zh-v1.5 与Pro/BAAI/bge-m3 区别
ge-large-zh-v1.5 和 Pro/BAAI/bge-m3 是两种不同的模型,主要区别在于架构、性能和应用场景。以下是它们的对比: 1. 模型架构 bge-large-zh-v1.5: 基于Transformer架构,专注于中文文本的嵌入表示。 参数量较大,适合处…...
JVM常用概念之对象初始化的成本
在JVM常用概念之新对象实例化博客中我讲到了对象的实例化,主要包含分配(TLAB)、系统初始化、用户初始化,而我在JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)博客中也讲…...

[AI机器人] Web-AI-Robot机器人前瞻版--比奇堡海之霸凯伦
文章目录 简述开源Web-AI-Robot 项目-比奇堡-海之霸-凯伦 技术架构效果预览 简述 本项目配合前端项目bikini_bottom_karen_ui运行,来源于柒杉工作室(截止2025.2,目前我自己)。 打造一个只需要在浏览器上运行的AI智能机器人&#…...

嵌入式学习-EXTI外部中断
STM32 是一种基于 ARM Cortex-M 内核的微控制器系列,广泛应用于嵌入式系统开发。中断(Interrupt)是 STM32 中一个非常重要的功能,它允许微控制器在执行主程序的同时,响应外部事件或内部事件的请求,从而实现…...

CSS—元素水平居中:2分钟掌握常用的水平居中
个人博客:haichenyi.com。感谢关注 1. 目录 1–目录2–行内元素水平居中3–块级元素水平居中 2. 行内元素水平居中 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" …...
PyTorch 中结合迁移学习和强化学习的完整实现方案
结合迁移学习(Transfer Learning)和强化学习(Reinforcement Learning, RL)是解决复杂任务的有效方法。迁移学习可以利用预训练模型的知识加速训练,而强化学习则通过与环境的交互优化策略。以下是如何在 PyTorch 中结合…...

大语言模型学习--本地部署DeepSeek
本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…...
Linux:vim快捷键
Linux打开vim默认第一个模式是:命令模式! 命令模式快捷键操作: gg:光标快速定位到最开始 shift g G:光标快速定位到最结尾 n shift g n G:光标快速定位到第n行 shift 6 ^:当前行开始 …...

Unity 对象池技术
介绍 是什么? 在开始时初始化若干对象,将它们存到对象池中。需要使用的时候从对象池中取出,使用完后重新放回对象池中。 优点 可以避免频繁创建和销毁对象带来性能消耗。 适用场景 如果需要对某种对象进行频繁创建和销毁时,例…...
算法1-4 凌乱的yyy / 线段覆盖
题目描述 现在各大 oj 上有 n 个比赛,每个比赛的开始、结束的时间点是知道的。 yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。 所以,他想知道他最多能参加几个比赛。 由于 yyy 是蒟蒻,…...

【计网】数据链路层
数据链路层 3.1 数据链路层概述3.2 封装成帧3.3 差错检测3.4 可靠传输3.4.1 可靠传输的概念3.4.2 可靠传输的实现机制 - 停止等待协议3.4.3 可靠传输的实现机制 -回退N帧协议3.4.4 可靠传输的实现机制 -选择重传协议 3.5 点对点协议3.5.1 帧格式3.5.2 透明传输 3.6 媒体接入控制…...

javaweb自用笔记:Vue
Vue 什么是vue vue案例 1、引入vue.js文件 2、定义vue对象 3、定义vue接管的区域el 4、定义数据模型data 5、定义视图div 6、通过标签v-model来绑定数据模型 7、{{message}}直接将数据模型message展示出来 8、由于vue的双向数据绑定,当视图层标签input里的…...
CSS Overflow 属性详解
CSS Overflow 属性详解 在网页设计和开发中,CSS Overflow 属性是一个非常重要的特性,它决定了当内容超出其容器大小时应该如何处理。本文将详细介绍 CSS Overflow 属性的相关知识,包括其语法、作用、常用属性值以及一些实际应用场景。 1. CSS Overflow 属性概述 CSS Over…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...