【激光SLAM】基于图优化的激光SLAM 方法(Grid-based)

news2024/12/25 12:53:50

文章目录

  • Graph-based SLAM
    • 数学概念
  • 非线性最小二乘(Non-Linear Least Square)
    • 解决的问题
    • 误差函数
    • 线性化
    • 流程
  • 非线性最小二乘在SLAM中的应用
    • 图的构建(SLAM前端)
    • 误差函数
    • 误差函数的线性化
    • 固定坐标系
    • 构建线性系统
    • 求解
  • Cartographer介绍

Graph-based SLAM

数学概念

非线性最小二乘(Non-Linear Least Square)

解决的问题

  • 给定一个系统,其状态方程由f(x) = z描述。其中:
    • x为该系统的状态向量——即需要估计的值(在激光SLAM中就是机器人的位姿)
    • f(x)是一个非线性的映射函数
    • 状态向量x,可以通过非线性函数f(x)映射得到z,此时的z为预测得到
    • z表示系统的可观值,可以通过传感器进行直接观测
  • 给定该系统的n个混有噪声的观测值(z1,…,zn),估计状态向量x,使得其经过f(x)映射之后的预测值和观测值的误差最小
  • 跟非线性最小二乘基本相同,不同之处在于f(x)是一个非线性函数

误差函数

目标为最小化预测和观测的差,因此误差即为预测和观测的差:

假设误差服从高斯分布,因此其对应的信息矩阵为Σi,即观测值的可靠性。如果越信任该观测值,Σ就越大,则E就越大,越优先最小化这个误差。则因此该观测值误差的平方定义为:

每一个观测值都有不同的可靠性,因此我们实际上采用加权最小二乘,对每一个误差项我们都有一个权重矩阵(即信息矩阵)来进行加权。所以非线性最小二乘的目标函数为:


直接想法: 求F(x)关于变量x的导数,令其等于0,求解方程即可。
对于线性问题,该方法可以正确,但是对于非线性问题不正确。因此,对于F(x)这样关于x的非线性方程。我们使用泰勒展开对其线性化

线性化

F(x)是关于x的非线性函数的原因是,误差函数ei(x)是一个非线性函数。因此直接对误差函数ei(x)进行线性化即可:

其中J为映射函数对状态向量x的导数,称之为Jacobian矩阵:

因此函数F(x)的可化解为:

F(x+Δx)为关于变量∆x的二次函数,其极值可通过令其关于∆x的导数等于0求解得到:

令x = x + ∆x,然后不断迭代,直至收敛即可。

流程

  1. 线性化误差函数:

  2. 构建线性系统:

  3. 求解线性系统:

  4. 更新解,并不断迭代直至收敛:

非线性最小二乘在SLAM中的应用

图的构建(SLAM前端)

误差函数


误差函数的线性化



固定坐标系

观测值观测到的值两个位姿之间的相对位姿。但是满足相对位姿约束的解有无穷多组。为了让解唯一,必须加入一个约束条件让某一个位姿固定,一般选择第一个位姿,即:

等价于加入的约束为:

求解的线性系统为:

因此等价于:

构建线性系统

求解

Cartographer介绍

  • 基于图优化的SLAM算法
  • 比较完善的匹配系统,包含建图和定位
  • 目前效果最好的开源激光SLAM系统
  • 有人在专门的维护,不断增加新的特性

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

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

相关文章

PROTEL

PROTEL是什么 Protel软件是由Altium公司(原为Protel Technology公司)开发的一款电子设计自动化(EDA)软件,主要用于电子电路设计和印制电路板(PCB)制作。 学习Protel 99 SE的大致过程 原理图文…

阿里云服务器ECS u1实例性能怎么样?

阿里云服务器ECS u1实例,2核4G,5M固定带宽,80G ESSD Entry盘优惠价格199元一年,性能很不错,CPU采用Intel Xeon Platinum可扩展处理器,购买限制条件为企业客户专享,实名认证信息是企业用户即可&a…

BIO实战、NIO编程与直接内存、零拷贝深入辨析

BIO实战、NIO编程与直接内存、零拷贝深入辨析 长连接、短连接 长连接 socket连接后不管是否使用都会保持连接状态多用于操作频繁,点对点的通讯,避免频繁socket创建造成资源浪费,比如TCP 短连接 socket连接后发送完数据后就断开早期的http服…

mybatis总结传参三

十、(不推荐)多个参数-按位置传参 参数位置从 0 开始, 引用参数语法 #{ arg 位置 } , 第一个参数是 #{arg0}, 第二个是 #{arg1} 注意: mybatis-3.3 版本和之前的版本使用 #{0},#{1} 方式, 从 myba…

Android基础进阶 - RecyclerView列表加载多类型视图

你是否会经常见到在同一个 RecyclerView 列表中加载多种不同的布局效果?最近写了一篇 ConcatAdapter 相关内容,发现虽然之前一直在使用多类型视图列表,但从未记录过,故重新记录于此 RecyclerView基础 Android进阶之路 - Recycler…

一文读懂 Python 值传递和引用传递

文章目录 版本前言形参和实参值传递和引用传递Python 变量存储值语义和引用语义值语义引用语义 探讨 Python 值传递和引用传递不可变(immutable)类型可变(mutable)类型案例一案例二 拓展:不可变类型真的不可变&#xf…

C++Lambda表达式介绍

C11中引入了Lambda表达式,Lambda表达式是一种匿名函数,它可以在需要函数的地方直接定义和使用,而无需显式地定义一个函数。 lambda表达式 Lambda表达式语法定义 [capture-list](parameters) -> return-type { statement } capture-lis…

Linux服务器节点性能问题排查和优化思路

Linux服务器节点性能问题排查和优化思路 1. atop安装2. 整体思路2.1 如果现场存在/能复现2.2 如果现场不能复现: 3. 高负载问题排查与应对3.1. hung task 问题3.2. 底层硬盘/文件系统无法写入3.3. IO性能不足导致的运行缓慢3.4. CPU 性能不足导致的运行缓慢&#xf…

Go语言必知必会100问题-05 接口污染

接口污染 在Go语言中,接口是我们设计和编写代码的基石。然而,像很多概念一样,滥用它是不好的。接口污染是指用不必要的抽象来编写代码(刻意使用接口),使得代码更难以理解。这是具有不同习惯,特…

linux常用的网络命令实战分享

文章目录 ifup/down命令ifconfig命令观察网络接口信息修改接口参数增加虚拟网络接口 route命令查看路由表增加路由表规则删除路由表规则 IP 命令ip linkip addr设定路由 ip route arp 命令 在实际研发运维工作中常常会涉及到网关相关的操作和知识,这里对linux下常用…

玩转ChatGPT:参考文献速查

一、写在前面 各位大佬,我又回来了,最近2月太忙啦(过年、奶娃、本子、材料、结题),断更了。现水一篇证明我还活着!!! 最近在写国自然本子,遇到一个估计大家都会遇到的问…

FMM 笔记:FMM(colab上执行)【官方案例解读】

在colab上运行,所以如何在colab上安装fmm,可见FMM 笔记:在colab上执行FMM-CSDN博客 fmm见:论文笔记:Fast map matching, an algorithm integrating hidden Markov model with precomputation_ubodt(upper bounded ori…

离散数学——树思维导图

离散数学——树思维导图 文章目录 前言内容大纲参考 前言 这是当初学习离散数学时整理的笔记大纲,其中包含了自己对于一些知识点的体悟。现将其放在这里作为备份,也希望能够对你有所帮助。 当初记录这些笔记只是为了在复习时更快地找到对应的知识点。…

vant安装教程(基于vue3)

1、先安装 npm i vant 如果不行安装这个 yarn add vant 2、在main.js中引入即可 import { createApp } from vue import App from ./App.vue import router from ./router import store from ./store import { Button } from vant; import vant/lib/index.css;createApp(App).…

一分钟带你入门MVVM和ViewModel

目录 0.为啥用ViewModel进行数据的存取 1.MVVM的具体含义 2.viewModel内部构造 3.配置viewModel 3.1 声明一个ViewModel实例类 3.2 viewModel功能实现 0.为啥用ViewModel进行数据的存取 通过持有LiveData维护保存数据的状态 为啥维护 ? : 当Activi…

数据安全策略

当您在第一线担负着确保公司的信息和系统尽可能免受风险的关键职责时,您的数据安全策略需要复杂且多层次。威胁可能有多种形式:恶意软件、黑客攻击、财务或信息盗窃、破坏、间谍活动,甚至是您信任的员工故意或无意的活动造成的。因此&#xf…

成都直播基地用心建设三大生态服务体系服务支撑西部电商

天府锋巢直播产业基地用心建设三大生态服务体系的服务支撑,这为直播行业更加完善的提供了全生命周期的服务方案,成都直播基地助力创业者更好地“开源节流”。 首先,天府锋巢直播产业基地作为成都规模最大的直播基地,具有全面的基…

什么是DOM?(详解)

什么是DOM? DOM的定义知识回顾什么是D?什么是O?什么是M?什么是DOM树?根节点对象与节点对象 DOM树简单举例DOM的主要用途 DOM的定义 DOM(Document Object Model,文档对象模型) W3C对…

23年中科院1区算法|长鼻浣熊优化算法COA原理及其利用与改进(Matlab/Python)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进 CEC2005中的测试 本文 KAU将介绍一个2023年1月发表在中科院1区KBS上的优化算法——长鼻浣熊优化算法(Coati Optimization Algorithm,COA)[1] 该算法由Dehg…

【Zotero】在zotero中如何重新编辑文献条目信息

博主最近在使用zotero中,当将下载好的文献直接拖拽到相应文件夹目录下后,一般系统会自动查找到文献的条目信息,可是有时候会出现自动查找的文献条目信息与真实的文献内容不一致的情况,这时需要手动重新编辑文献条目信息。这里将博…