SLAM中的非线性优化-2D图优化之零空间(十五)

        这节在进行讲解SLAM中一个重要概念,零空间,讲它有啥用呢?因为SLAM中零空间的存在,才需要FEJ或固定约束存在,本节内容不属于2D图优化独有,先看看什么是零空间概念;零空间是一个核心概念,它深刻揭示了SLAM问题的内在结构和优化过程中的关键特性。简单来说,零空间指的是对系统状态(机器人的位姿和地图点的位置)进行某种整体变换时,不会改变传感器观测值(例如图像特征点重投影误差、激光点云匹配误差)的变换方向所构成的空间。

一、核心概念解析

  1. 不可观测的自由度:

        SLAM的目标是同时估计机器人的运动轨迹(位姿序列)和环境地图(点云或特征点位置)。然而,仅凭机器人自身的运动传感器(IMU、轮速计)和外部环境观测传感器(相机、激光雷达)的相对测量,无法确定整个系统在全局坐标系中的绝对位置和朝向。想象一下:你闭着眼睛在一个未知的房间里走动,通过触摸墙壁和家具来构建房间地图并确定自己的位置。你构建的地图和你的路径在房间内的绝对位置和朝向是未知的(你不知道地图的“北”在哪里,也不知道起点在地球上的经纬度),但地图本身的结构和你路径的相对形状是正确的。
  2. 数学表达:

          大多数SLAM后端(无论是基于滤波的如EKF-SLAM,还是基于优化的如Bundle Adjustment)最终都归结为一个最小二乘问题:最小化预测的观测值与实际观测值之间的误差。目标函数通常写作: min Σ ||hᵢ(X) - zᵢ||²,其中 X 是整个状态向量(包含所有位姿和地图点),hᵢ(X) 是基于状态预测的第 i 个观测值,zᵢ 是实际的第 i 个观测值。求解通常需要计算目标函数关于状态 X 的导数(雅可比矩阵 J)和海森矩阵近似 H ≈ JᵀJ零空间就体现在海森矩阵 H 上:H 是一个对称半正定矩阵,但它不是满秩的。H 存在特征值为零(或非常接近零)的特征向量。这些特征向量对应的方向,就是系统的零空间方向。
  3. 零空间变换:                                                                                                                                假设存在一个变换 T(例如,对整个地图和所有机器人位姿同时施加一个刚体变换——平移和旋转)。如果对这个变换后的状态 T(X) 进行观测预测 hᵢ(T(X)),其结果与对原始状态 X 的观测预测 hᵢ(X) 完全相等,那么 T 所对应的增量方向 ΔX 就位于海森矩阵 H 的零空间中。数学上: J * ΔX = 0 这意味着在这个方向 ΔX 上移动状态,观测误差的一阶变化为零。H * ΔX = JᵀJ * ΔX = Jᵀ * (J * ΔX) = Jᵀ * 0 = 0

  4. 维度:                                                                                                                                               三维空间 中,一个自由漂浮的SLAM系统(没有固定到全局坐标系的锚点)的零空间维度是 6:3个自由度:全局旋转 (rollpitchyaw);3个自由度:全局平移 (xyz)。在 二维空间 中,零空间维度是 3:1个自由度:全局旋转 (yaw);2个自由度:全局平移 (xy)。

零空间带来的影响和挑战

  1. 解的不唯一性:

           由于存在零空间,最小二乘问题有无数个解。所有这些解只相差一个全局的刚体变换(零空间变换)。从观测误差的角度看,它们都是等价的“最优解”。后果: 如果优化算法不加约束,理论上最终解会漂移在零空间定义的流形上。数值计算中,由于噪声和线性化误差,解可能会在这个流形上缓慢漂移。
  2. 数值不稳定性:

            海森矩阵 H 是奇异的(或病态的,条件数很大),因为它有零特征值。这使得在求解线性方程 H * ΔX = -b (高斯-牛顿/列文伯格-马夸尔特算法的核心步骤) 时变得困难。后果: 直接求逆或使用不稳定的线性求解器会导致数值溢出、解振荡或不收敛。

实践中如何处理零空间

SLAM算法必须显式或隐式地处理零空间问题:

  1. 固定先验(锚定):最常见的方法 固定第一个(或前几个)机器人位姿的6个自由度(或3个在2D中)。例如,设置 T0 = [I | 0] (单位旋转矩阵,零平移向量)。作用: 这相当于给系统添加了一个绝对的参考系,移除了零空间对应的自由度,使 H 矩阵变得满秩正定。优化问题有唯一解(在噪声范围内)。实现: 在优化问题中添加一个强先验因子(Prior Factor),将 T0 牢牢地“钉”在原点。

  2. 添加伪观测值:引入一些微弱的绝对测量(即使现实中不存在),比如一个非常弱的GPS先验(方差很大),或者一个假设的地图点固定在原点。作用: 这些微弱的观测理论上消除了零空间,使 H 变得正定(但可能条件数仍然很大)。数值稳定性提高,解被轻微地约束在原点附近,但允许在观测证据很强时发生轻微漂移。比固定先验更“软”一些。

  3. 使用特殊的线性求解器:使用能够处理奇异或病态矩阵的求解器,例如:(1)QR 分解: 数值稳定性较好。(2)Cholesky 分解(带阻尼/正则化): 列文伯格-马夸尔特算法本身就通过添加 λI 项对 H 进行正则化 (H + λI),使矩阵正定,间接处理了零空间问题。λ 控制阻尼强度。(3)SVD(奇异值分解): 可以显式识别并丢弃(或阻尼)对应于零奇异值(零空间)的方向。作用: 这些方法不直接移除零空间自由度,而是在求解步骤中稳健地处理奇异性,找到一个有效的解(通常对应于某种最小范数解)。

  4. 流形优化:机器人位姿(旋转)本身存在于非欧几里得空间(流形)上(如SO(3)/SE(3))。现代优化库(g2o, Ceres Solver, GTSAM)通常直接在流形上进行状态更新。作用: 这确保了位姿在优化过程中始终保持在有效的流形上,提高了数值稳定性和收敛性。虽然不直接解决零空间问题,但它是处理旋转相关数值问题的必要基础。

  5. 忽略(在特定算法中):在某些基于滤波的方法(如EKF)中,初始协方差矩阵可能设置得足够大以包含零空间不确定性。随着过程噪声和观测更新,协方差矩阵中与零空间对应的部分可能会增长(如果没有任何绝对观测),但算法通常仍能给出相对一致的轨迹和地图(协方差反映了这种全局不确定性)。然而,数值问题仍然需要小心处理。

为什么零空间不影响SLAM的核心功能

       关键在于 相对关系:(1)虽然整个轨迹和地图的绝对位置和朝向(零空间)无法确定,但轨迹的形状(机器人从一个位姿移动到下一个位姿的相对变换)和地图的结构(点与点之间的相对位置)是唯一确定的(在观测噪声范围内)。(2)SLAM的核心目标——让机器人在自己构建的地图中实现定位(知道自己在哪)和导航(知道怎么去目的地)——完全依赖于这些精确的相对关系。绝对的经纬度坐标对于机器人在其自身地图中行动通常不是必需的(除非需要与外部绝对坐标系对齐)。

总结:(1)零空间是SLAM问题的固有属性: 它源于仅依靠相对测量无法确定全局参考系(6个自由度);(2)体现为奇异性: 优化问题的海森矩阵 H 不满秩,存在特征值为零的方向(零空间变换方向);(3)导致解不唯一和数值困难: 解在零空间定义的流形上不唯一,数值求解不稳定。(4)必须处理: 常用方法包括固定第一个位姿(锚定)、添加弱先验、使用鲁棒的线性求解器(SVD, 带阻尼的Cholesky)以及在流形上进行优化。(5)不影响核心功能: SLAM提供的精确的相对轨迹和地图结构足以支持定位和导航。

二、SLAM 中的零空间(Null Space)数学解释

        在 SLAM(Simultaneous Localization and Mapping)问题中,零空间(Null Space)描述了系统状态(机器人位姿和地图点)的某些变换不会影响观测误差(如重投影误差、点云匹配误差)。这些变换对应的方向在优化问题的 Hessian 矩阵中是 零特征值方向,导致系统无法唯一确定全局参考系。

1. SLAM优化的数学模型

1.1 线性化与Gauss-Newton优化

2.1 零空间的数学定义

2.1 零空间(Null Space)的定义

2.2 SLAM 零空间的物理意义

3. Hessian矩阵的奇异性

4. 数学示例

  • 零空间是 SLAM 固有的自由度,对应全局刚体变换(平移+旋转)。

  • Hessian 矩阵奇异,导致优化问题有无穷多解(相差一个全局变换)。

  • 解决方法

    • 固定先验(Gauge Fixing)。

    • 使用伪逆或阻尼(LM 方法)。

    • 流形优化(确保位姿在 SE(3) 上更新)。

 数学上,零空间的存在反映了 SLAM 问题的 相对观测无法确定绝对参考系,但 不影响内部一致性(轨迹和地图的相对关系仍然正确)。

 

       在 SLAM(Simultaneous Localization and Mapping)中,观测模型 hij(Ti,pj)hij​(Ti​,pj​) 通常描述的是 相对测量(如相机观测到的地图点像素坐标、激光雷达匹配的点云距离等)。这些测量仅依赖于 机器人与环境之间的相对几何关系,而不是它们的绝对全局位置。

三、FEJ的数学解释

       用数学来解释 FEJ 的核心思想及其解决的问题;关键在于理解‌线性化点不一致如何破坏系统的零空间(不可观自由度)‌。

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

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

相关文章

如何解决本地DNS解析失败问题?以连接AWS ElastiCache Redis为例

在云服务开发中,DNS解析问题常常成为困扰开发者的隐形障碍。本文将通过AWS ElastiCache Redis连接失败的实际案例,详细介绍如何诊断和解决DNS解析问题,帮助你快速恢复服务连接。 引言 在使用 telnet 或 redis-cli 连接 AWS ElastiCache Redis 时,有时会遇到类似以下错误:…

探索钉钉生态中的宜搭:创建与分享应用的新视界

在当今快速发展的数字化时代,企业对于高效协作和信息管理的需求日益增长。作为阿里巴巴集团旗下的智能工作平台,钉钉不仅为企业提供了强大的沟通工具,其开放的生态系统也为用户带来了无限可能。其中,宜搭(YiDa&#xf…

深入理解事务和MVCC

文章目录 事务定义并发事务代码实现 MVCC定义核心机制 事务 定义 什么是事务? 事务是指一组操作要么全部成功,要么全部失败的执行单位。 在数据库中,一个事务通常包含一组SQL语句,系统保证这些语句作为一个整体执行。 为什么引…

用 Python 绘制精美雷达图:多维度材料属性对比可视化全指南

🌟 为什么选择雷达图?从材料科学到多维数据对比的可视化利器 在科研和数据分析领域,当我们需要同时展示多个维度的数据对比时,传统的柱状图或折线图往往显得力不从心。这时候,雷达图(Radar Chart&#xff…

Excel学习03

超级表与图表 Excel中具有超级表的功能。所谓超级表(官方名称为“表格”,快捷键CtrlT)是Excel中一个强大的数据管理工具,它将普通的数据区域转换为具有只能功能的交互式表格。 这就是表格变为超级表的样子。超级表默认具备冻结窗…

Netflix 网飞的架构演进过程、Java在网飞中的应用|图解

写在前面 上一篇文章中,我们讲解了网飞当前的架构,但网飞的架构并不是一开始就是这样的,而是不断演进发展才是当前的样子。 这篇文章我们就来讲讲网飞架构的演进过程。 第一阶段:Zuul Gateway REST API 使用 Zuul 作为API网关…

使用ros2服务实现人脸检测2-人脸检测功能实现(适合0基础小白)

文章目录 一、用到的库二、使用步骤1.引入库2.获取图片真实路径3.检测人脸4.绘制人脸5.显示结果6.更改setup.py7.完整代码 三、结果展示 一、用到的库 face_recognition:实现在图片中检测人脸。 cv2:显示图片,并且可以在图像中展示检测结果。…

中国农村统计年鉴-Excel版(1985-2024年)

《中国农村统计年鉴》系统收录了全国和各省农村社会经济统计数据,以及近年全国农村主要统计数据,是一部全面反映我国农村社会经济情况的资料性年刊。年鉴内容覆盖农村人口结构、农业产值、主要农产品产量、市场物价、进出口贸易以及收入消费水平等社会经…

golang pprof性能调试工具

简介 pprof是性能调试工具,可以生成类似火焰图、堆栈图,内存分析图等。 整个分析的过程分为两步:1. 导出数据,2. 分析数据。

PPIO × 302.AI:三分钟搭建可共享的聊天机器人

最近,各主流模型厂商频频发布新模型,有一如既往强大的DeepSeek-R1-0528,擅长长输入推理的MiniMax-M1-80k…… 好用的AI大模型这么多,如何才能集成在一个应用自由使用呢?302.AI作为企业级AI应用平台支持各主流模型调用&…

怎么样在自己的网站/独立站中添加视频?

文章目录 **前言** 一、视频在网站/独立站的好处二、视频嵌入网站的原理三、如何简易地把视频嵌入到独立站中? 前言 在信息传播形式日益多元化的当下,静态文字与图片早已无法满足用户对沉浸式浏览体验的需求。视频以其动态画面、声音及文字相结合的特性…

【图像处理基石】什么是摄影的数码味?

“数码味”是一个摄影术语,通常指照片看起来不自然,有过度处理的痕迹,比如色彩过于鲜艳、对比度偏高、高光过曝、阴影死黑,或者有明显的锐化痕迹和噪点。这种现象在手机摄影中尤为常见,因为手机相机的自动算法往往会为…

报表控件stimulsoft教程:在报表、仪表板和 PDF 表单自动生成缩略图

了解缩略图的工作原理在使用Stimulsoft Demo、Stimulsoft Server和Stimulsoft Cloud时非常有用。例如,您可以在此处查看缩略图的实际效果 - 当侧边栏折叠时,将显示缩略图而不是资源列表。在本文中,我们将探讨 Stimulsoft 产品中报表、仪表板和…

变分自编码器(VAE)

1. 从自编码器(AE)到变分自编码器(VAE) 自编码器(AutoEncoder, AE) 基本结构: 自编码器是一种无监督学习模型,通常由两个部分组成: 编码器(Encoder)&…

ChatboxAI 搭载 GPT 与 DeepSeek,引领科研与知识库管理变革

文章摘要:本文深入探讨 ChatboxAI 在科研领域的应用优势。ChatboxAI 集成多模型,支持全平台,能高效管理科研知识,助力文献检索、实验设计与论文撰写,提升科研效率与质量,同时保障数据安全。其知识库功能可整…

【无刷电机FOC进阶基础准备】【04 clark变换、park变换、等幅值变换】

目录 clark变换park变换等幅值变换 其实我不太记得住什么是clark变换、park变换,我每次要用到这个名词的时候都会上网查一下,因为这就是两个名词而已,但是我能记住的是他们背后的含义。 经过【从零开始实现stm32无刷电机FOC】系列后应该对cla…

Sentinel的流控策略

在 Sentinel 中,流控策略(Flow Control Strategy)用于定义如何处理请求的流量,并决定在流量达到某个阈值时采取的行动。流控策略是实现系统稳定性和高可用性的核心机制,尤其在高并发环境中,确保服务不会因过…

Ubuntu Extension Manager 插件卸载

Ubuntu 上使用Extension Manager 安装插件,但目前无法在Extension Manager 中卸载。 卸载方式可以通过 gnome-extensions 命令进行卸载: Usage:gnome-extensions COMMAND [ARGS…]Commands:help Print helpversion Print versionenable Enabl…

深度学习中Embedding原理讲解

我们用最直白的方式来理解深度学习中 Embedding(嵌入) 的概念。 核心思想一句话: Embedding 就是把一些复杂、离散的东西(比如文字、类别、ID)转换成计算机更容易理解和计算的“数字密码”,这些“数字密码…

(3)Java+Playwright自动化测试-启动浏览器

1.简介 前边两章文章已经将环境搭建好了,今天就在Java项目搭建环境中简单地实践一下: 启动两大浏览器。 接下来我们在Windows系统中启动浏览器即可,其他平台系统的浏览器类似的启动方法,照猫画虎就可以了。 但是在实践过程中&am…