SLAM中姿态估计的图优化方法比较(g2o/Ceres/GTSAM/SE-Sync)

 编辑 | 深蓝AI

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

后台回复【SLAM综述】获取视觉SLAM、激光SLAM、RGBD-SLAM等多篇综述!

本文是对论文《A Comparison of Graph Optimization Approaches for Pose Estimation in SLAM》的带读~

1.摘要

fd4cd1a67115835fbbdd4ff551d2fb02.png

对于位置环境中的自主导航问题,同步定位与建图(Simultaneous localization and mapping, SLAM)是一个非常重要的工具框架。根据SLAM字面含义可以得知,获取正确的环境表征和估计机器人正确的运动轨迹这两点在SLAM问题中至关重要。在解决优化估计问题上表现SOTA方法的主流思路是基于图优化的最小二乘,比较流行的算法框架有g2o、Ceres、GTSAM、SE-Sync等。作者这篇论文描述了这些方法并进行了对比测试。

2.总体介绍

e1143f499395319a3ef7e46764b48e64.png

在SLAM领域刚刚起步的时候,基于滤波算法的SLAM霸占了很多年,因为PGO(Pose graph Optimization)存在处理效率的问题,而SLAM对实时性要求又比较高。到了现如今,由于计算机处理效率逐渐提高,PGO方法被提上了日程,越来越多高效的优化算法使得基于PGO的优化SLAM占据主流地位。

基于优化的SLAM方法主要分为两个部分:

· 第一部分就是根据传感数据的测量数据,建立新的观测与地图之间的约束(就是损失函数) ;

· 第二部分就是根据约束处理优化机器人位姿和地图信息。

以典型基于优化的SLAM问题来说:Pose-SLAM,它避免了建立一个明确的环境地图,目标是在给定闭环和里程约束条件下估计机器人的轨迹(相对姿态)。这些相对姿态测量通常通过IMU、lidar、camera或GPS获得,使用ego-motion、scan-registration、ICP等构建最小化视觉重投影误差(就是损失函数)。利用最流行的优化框架g2o、Ceres、GTSAM、SE- Sync等进行求解。但是没有论文在同一条件下对这些框架算法进行评估,本文的目的就是这个,在相同条件下,测试不同框架对不同问题的性能效果。

3.非线性位姿图优化方法

dd89886a41e8dc44efc86cb317f32924.png

在Pose-SLAM的优化问题中,每个姿态图(pose graph)都由节点(node)边(edge)组成,其中:

  • 节点(node):对应于机器人在环境中的位姿,也是优化的目标;

  • 边(edge):不同节点之间的空间约束。相邻节点之间的边是里程约束,其余边表示闭环约束。

下图展示了一个pose-graph可视化的结果,由于物体的运动在时间上连续,可以看到36cfe5428def792af5796ece4945e53c.png代表一些系列的位姿。

  • 实线连接:时间相邻位姿,用于局部里程计(odometry)优化 ;

  • 虚线连接:存在共视关系,即有些特征点在不同位姿下同时观察到,用于闭环(loop-closures)优化。

83f548ede5950b35cc225916d12b8fa1.png

下面简述一个非线性位姿图优化的基本思路步骤:

确定优化目标:在位姿图的所有约束条件下找到最小二乘误差的正确节点配置。一般情况下,可以定义为fe87de7f06c6f3d0ebb8604561578682.png

其中, F(x)是所有图约束对应误差总和:9b0923e0ab9f5727dd10da6b26c1780c.png

其中,C 表示连接节点之间的索引对集合,i 和 j 表示节点 i 和j 之间的信息矩阵,e6ecd718baef34ea48b12a13c847004b.png是非线性误差函数,用来模拟姿态b1b2f6412486abfd6095333a19ec3027.png2b273be4c1ebbd566a5398f63ce7c62f.png如何满足测量4bc0e64e158be10843c71a4b10426137.png施加的约束。采用信息矩阵3a9aaba31da78a85991c234dd6d620c0.png和误差函数1b4b9bc5d9d44f67e18664c07870c3a1.png对每一个约束进行建模。如下图所示

a6f2a7b6a2b4af73418f0aa5820f0c27.png

优化求解:通过迭代优化算(Gauss-Newton、Levenberg-Marquardt等)可以得到问题最优解。主要想法是用上式在初始值附近的一阶泰勒展开来近似误差函数。一般来说,包括四个主要步骤:

  1. 固定一个初始值;

  2. 将问题近似为凸问题;

  3. 对步骤2问题求解,并更新初始值;

  4. 重复步骤2-3直到收敛。

Pose-SLAM的优势:求解问题存在稀疏性,可以加快求解速度,并且对于初始状态的变化较为鲁棒。

Pose-SLAM的缺点:对外点(outliers,亲切一点就是错的离谱的结果)不具有鲁棒性,另外,优化估计Rotation的过程是一个非凸优化问题,容易造成导致局部最优问题,且不保证全局最优问题。

4.优化框架介绍

21b449ac358c239e27fff739c90c6e38.png

g2o

g2o是一个开源的通用框架,用于优化可以定义为图形的非线性函数,它的优点是易于扩展,高效,适用于广泛的问题。主要特点有:

  1. 可以与其他最先进的算法相媲美,同时具有高度的通用性和可扩展性;

  2. 通过利用稀疏连通性、图的特殊结构以及现代处理器的特点来实现高效计算;

  3. 该框架包含了3种不同的PGO算法:GaussNewton 、Levenberg-Marquardt、Powell’s Dogleg。

应用:ORB-SLAM的后端处理、SVO的visual odometry部分

Ceres

Ceres Solver是一个开源的c++库,用于建模和解决大型、复杂的优化问题。它主要致力于解决非线性最小二乘问题(束平差和SLAM),但也可以解决一般的无约束优化问题。

  1. 该框架易于使用、可移植、广泛优化、低计算时间;

  2. Ceres的设计允许用户定义和修改目标函数和优化求解器;

  3. 实现的求解算法包括trust region solvers(Levenberg-Marquardt、Powell’s Dogleg)和line search solvers。

应用:OKVIS、VINS中的图优化问题

GTSAM

GTSAM是一个开源c++库,它实现了机器人和计算机视觉应用的传感器融合。它可用于SLAM、视觉测程和SFM中的优化问题。

  1. GTSAM使用因子图来模拟复杂的估计问题,并利用其稀疏性来提高计算效率;

  2. 实现了Levenberg- Marquardt、Gauss-Newton的优化器。

应用:GTSAM与各种传感器前端一起使用,SVO的变体使用GTSAM作为里程计的后端。

SE-Sync

SE-Sync的目标给定节点之间的相对变换的噪声测量的条件下,估计一组未知的姿态的值

  1. 主要应用于二维和三维几何估计;

  2. 改进了以往的方法,它利用了特殊的欧氏同步问题的一个新的(凸)半定松弛来直接搜索全局最优解;

  3. 采用truncated-Newton Riemannian Trust-Region method来寻找有效的姿态估计。

5.实验测试

e21422fec609ac0f20c91cea9eaf3b7f.png

实验标准:

  • 评价标准:运行时间、损失结果、终止条件

  • 评价数据集:合成数据集、真实数据集

实验环境:

  • Lenovo ThinkPad P50 equipped with an octa-core Intel Core i7-6700HQ CPU operating at 2.60 GHz and 16 GB RAM

  • Ubuntu20.04

优化配置:

  • 算法:Levenberg- Marquardt;

  • 迭代次数:最多100次;

  • 停止迭代标准:达到最大迭代次数或相对误差阈值;

  • 梯度下降率:0.01 。

测试结果:

  • 部分优化结果(在INTEL、MIT两个数据集上)

66e4f7574b184dbb0d42847146c959f3.png

  • 整体测试统计结果

e7f53abf0a2e9375dc7ff4ca690cc309.png

6.结论

209a29bc6ae2a9e6cdd606f8f0a7b261.png

本文比较了在SLAM中用于姿态估计的图优化算法。作者考虑了g2o、GTSAM、Ceres、SE-Sync四个主流优化框架。评估过程考虑了优化时间优化结果,以表的形式给出了测试结果,发现:

  • 与其他三种方法相比,SE-Sync在大多数数据集上优化时间最短;

  • g2o优化时间最长,但在简单数据集上表现良好;

  • Ceres易于使用,提供了很大的灵活性,而且相对较快;

  • 除了在噪声干扰严重的数据集上,GTSAM的性能几乎和SE-Sync一样 。

并且作者建议:

对于数据关联差、噪声大和性能差的前端,最好使用SE-Sync作为后端。如果初始化较好,GTSAM表现和SE-Sync一样出色 。

对于比性能优秀的前端,在数据集相对简单、噪音很低的情况下,后端优化的选择就凭借个人喜好了。

往期回顾

激光雷达SLAM方法汇总 | 自动驾驶和移动机器人领域

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

加入我们: 自动驾驶之心技术交流群汇总!

自动驾驶之心【知识星球】

想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!

3819b1d9be0d1fb18d559ce6949196aa.jpeg

自动驾驶之心
关注 关注
  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ceres库和g2o库的使用
Hansry的博客
07-11 6517
1.Ceres库 Ceres库向通用的最小二乘问题的求解,定义优化问题,设置一些选项,可通过Ceres求解。 Ceres求解的最小二乘问题最一般形式为: minx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤ujminx12∑ipi(||fi(xi1,⋯xin)||2),s.t.lj≤xj≤uj\underset{x}{min}\frac{1}{2}\sum_{i}p...
SLAM位姿估计的优化方法比较
qq_29462849的博客
11-14 3885
A Comparison of Graph Optimization Approaches for Pose Estimation in SLAM作者:Andela Juric´, Fil...
(3分钟了解)SLAM后端优化的四大金刚!g2o ceres gtsam SE-Sync
努力coding
01-07 1080
总结:这篇博客了解了SE-Sync的后端优化库,并且对后端优化的框架又有了一个新的认识和总结。就是说对偶问题的解是原问题的下确界,然后这两之间的差值被称为对偶间隙,并且当对偶间隙为0的时候,对偶问题的最优解即是原问题的最优解。添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)添加片注释,不超过 140 字(可选)
非线性优化工具学习记录 ceres 与 g2o
Zcoasting的博客
12-13 1089
Ceres G2O 优化
Ceres求解优化问题
最新发布
qq_20604231的博客
05-26 756
本文讲解了如何使用Ceres Solver求解一个最小二乘问题,并深入介绍了在SLAM领域如何实现对位姿的优化,以及Ceres自动求导的原理。
位姿优化(Ceres&G2O&GTSAM)
热门推荐
lovely_yoshino的博客
02-21 1万+
作为SLAM常用的方法,其原因是因为SLAM观测不只考虑到当前帧的情况,而需要加入之前状态量的观测。就比如一个在二维平面上移动的机器人,机器人可以使用一组传感器,例如车轮里程计或激光测距仪。从这些原始测量值,我们想要估计机器人的。为了降低问题的计算复杂度,。具体来说,。边缘是源自原始传感器测量值的虚拟测量值,例如通过集成原始车轮里程计或对齐从机器人获取的激光范围扫描。对上的具体描述如下。
ceres库,g2o库做BA问题,效果对比
蓝羽飞鸟的博客
04-18 2589
ply文件的显示用meshlab 效果: 没有优化之前的: ceres优化之后的 g2o优化后的 看下初始状态和优化后的对比,可看到初始状态噪声比较大,而优化后较聚集 看下ceres和g2o的对比吧,都会收敛一些,但是位置会有一些错开 ...
Ceres和g2o的配置和使用
陈建驱的博客
08-21 1746
上文非线性优化介绍了非线性优化的基本求解方法,并使用C++手动实现了曲线拟合实例。本文介绍ceres和g2o库的配置方法,并通过曲线拟合实例介绍其使用方法Ceres安装 Google Ceres 是一个广泛使用的最小二乘问题求解库。在 Ceres ,我们作为用户,只需按照一定步骤定义待解的优化问题,然后交给求解器计算即可。 Google Ceres库的源码:https://github.com/ceres-solver/ceres-solver 依赖项: ...
SLAM优化g2o
吴建明wujianming_110117
04-29 760
SLAM优化g2o 优化g2o框架 优化的英文是 graph optimization 或者 graph-based optimization, “”其实是数据结构的graph。凸优化的英文是 convex optimization,这里的“凸”其实是凸函数的意思,所以单从英文就能区分开。 优化有什么优势? SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以优化为代表的非线性优化方法SLAM研究的主流热点几乎都是基于优化。 滤波方法尤其是EKF方
<视觉SLAM>opencv/手写位姿估计/G2O的BA优化
08-19
- 当知道一个像的3维信息与另一个像的2维信息(单目相机拍摄,不含深度信息),就可以估计相机在两幅像位姿,并利用BA对位姿进行优化。 - 本次实例的代码均为高翔老师《视觉SLAM十四讲》第一版与第二版的...
g2opy:SLAM优化框架g2oPython绑定
04-29
g2o是用于优化基于的非线性误差函数的开源C ++框架。 g2o被设计为易于扩展到各种问题,通常可以在几行代码指定一个新问题。 当前的实现为SLAM和BA的多个变体提供了解决方案。 机器人技术和计算机视觉的许多...
学习SLAM-理解优化,一步步带你看懂g2o代码.rar
06-06
本文将围绕"学习SLAM-理解优化,一步步带你看懂g2o代码"这一主题展开,深入探讨SLAM的核心概念和g2o库的使用。 首先,SLAM问题可以简化为一个优化问题。在这个过程,节点代表机器人的位置或关键帧,边则表示...
视觉SLAM-g2o简介及使用方法
03-03
g2o是视觉SLAM常用的优化库,该文档主要介绍其使用方法和细节。
SLAM-基于CUDA+SLAM实现的ICP+姿态优化-优质项目实战.zip
03-17
姿态优化SLAM的一种高级策略,它通过构建一个包含机器人不同时间步的姿态节点和边的结构,其边表示相邻姿态之间的关系。通过最小化的残差(即测量与预测之间的差异),可以全局优化机器人的运动轨迹,...
slam优化库,优化方法G2o Ceres的学习
A172494的博客
05-06 1727
优化G2o Ceres的学习。
曲线拟合(高斯牛顿法,Ceres,g2o)
weixin_46417419的博客
04-10 5642
实践:曲线拟合问题 我们先通过高斯牛顿法来求解最小二乘问题,然后介绍使用优化库(Ceres/g2o)来求解此问题。 例题: 考虑一条满足如下方程的曲线: y = exp(ax2x^2x2+ bx + c) + w,其a,b,c为曲线的参数,w是高斯噪声,满足w~(0,σ2\sigma^2σ2)。 这是个非线性模型。假设我们有N个关于x,y的观测点,想根据这些数据点来求出曲线的参数。那么可以通过求解下面的最小二乘问题来估计曲线参数: min⁡a,b,c\min\limits_{a,b,c}a,b,cmin.
【视觉SLAM入门】4.3. (非线性最小二乘问题)优化算法实现-ceres和g2o优化理论
Eric_Sober的博客
07-28 572
主要介绍了ceres,g2o优化理论以及它们的C++代码的详细解读。逐句解读它们的C++代码实现,对诸如此类的非线性优化问题做了统一概括
优化库(ceres、g2o
expert_joe的博客
05-08 504
官网网址Ceres主要解决两种问题:1.具有边界约束的非线性最小二乘问题。2.一般无约束优化问题。由于ceres库和eigen库有一定的版本对应关系,因此很容易在编译期间报错。打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,在里面可以看到版本号。
gtsam 学习九(imu 因子)
weixin_37781153的博客
03-03 3442
理论知识 状态 假设相机和雷达所处测量频率和状态相同,均处在低速状态下(10Hz)。 定义车辆自身的三个变量 Rbn:R:姿态,n导航坐标系,b自身坐标系,下文使用会抛弃上下标R^n_b:R:姿态,n导航坐标系,b自身坐标系,下文使用会抛弃上下标Rbn​:R:姿态,n导航坐标系,b自身坐标系,下文使用会抛弃上下标 Pbn:R:位置,n导航坐标系,b自身坐标系,下文使用会抛弃上下标P^n_b:R:位置,n导航坐标系,b自身坐标系,下文使用会抛弃上下标Pbn​:R:位置,n导航坐标系,b自身坐标系,下文
slam非线性优化的作用
03-09
SLAM的非线性优化主要是用来解决传感器测量误差和运动模型误差带来的不确定性问题,通过优化相机位姿和地点的位置,提高SLAM系统的精度和鲁棒性。非线性优化可以通过最小化重投影误差或者最小化地点和相机位姿的代价函数来实现。
写文章

热门文章

  • 一文彻底搞懂激光雷达原理! 26592
  • 实例分割最全综述(上):二阶段实例分割和一阶段实例分割 23555
  • 史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)... 23301
  • CVPR 2023 | 最新主干FasterNet!远超MobileViT等模型 16772
  • 万字长文解析CV中的注意力机制(通道/空间/时域/分支注意力) 16533

分类专栏

  • 点云检测 1篇
  • C++ 1篇
  • 单目3D 1篇
  • BEV感知 1篇
  • 自动驾驶 1篇
  • Occupancy 1篇

最新评论

  • 一份自动驾驶量产阶段的BEV自动标注系统超实用指南

    m0_47208263: 这个是哪篇论文请问

  • Waymo又放大招!Waymax:全新大规模自动驾驶仿真框架

    金示木: 怎么感觉把 agents 都翻译成了代理,不应该是智能体吗表情包

  • Flash Attention V3 发布!大模型进化再次加速~

    大袖揽清风。: 21行应该没有-1次方吧?

  • 碾压ORB-SLAM!Light-SLAM:基于LightGlue的完整视觉SLAM

    一只想要努力的小菜鸡: 请问作者的工作开源了吗?

  • 速度提升10倍!Depth Anything V2:更鲁棒精细的单目深度估计

    WeisonWeileen: mediapipe的hand模型的输出自带相对深度估计,而depthAny2 的输出也是相对深度估计

大家在看

  • C语言操作符详解
  • freertos专题 配置文件FreeRTOSConfig.h中两个中断宏优先级配置
  • Git Merge 实例教学:同步代码库与处理分支冲突的最佳实践
  • 写代码的思维与方法
  • Scrapy框架进阶攻略:代理设置、请求优化及链家网实战项目全解析 992

最新文章

  • 自动驾驶CornerCase变小Case,看生成式显神通
  • 同济大学 | 用于自动驾驶汽车转向的数据驱动模型预测控制
  • 机器人篇|从基础问题,到当下大热的端到端路径规划
2024
08月 65篇
07月 124篇
06月 125篇
05月 143篇
04月 144篇
03月 144篇
02月 121篇
01月 127篇
2023年1393篇
2022年501篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码观澜百姓网标王石岩百度竞价石岩外贸网站建设龙岗网页设计双龙网站改版大芬网站优化按天计费爱联网站制作龙华设计网站横岗外贸网站制作松岗企业网站制作宝安百度网站优化石岩网络营销东莞外贸网站制作观澜百度竞价大鹏网站制作龙岗网站搜索优化民治网站建设木棉湾网站优化按天收费福永SEO按效果付费龙岗推广网站布吉SEO按天计费石岩网站改版光明网站优化按天收费盐田企业网站制作大芬网站设计模板观澜SEO按天计费南山关键词按天扣费石岩网站推广工具吉祥网站制作设计爱联SEO按天扣费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化