SLAM代码(优化及常用库)

本文详细介绍了SLAM后端优化中的Gauss-Newton方法,包括非线性最小二乘问题、基本概念定义、算法原理以及与牛顿法的区别。同时,讲解了g2o库的使用,包括添加顶点和边、优化步骤以及选择不同的优化方法和线性方程求解器。

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

在SLAM的后端优化中,比较常用的一种方法是g2o,该图优化方法在优化时现成可以选用的有2种优化方法。一是Gauss-Newton,另外是LM方法。这里首先介绍Gauss-Newton方法,其次介绍g2o使用时的一般流程和例程。

Gauss-Newton

Gauss-Newton算法是解决非线性最优问题的常见算法之一.

基本概念定义

非线性方程定义及最优化方法简述

指因变量与自变量之间的关系不是线性的关系,比如平方关系、对数关系、指数关系、三角函数关系等等。对于此类方程,求解n元实函数f在整个n维向量空间Rn上的最优值点往往很难得到精确解,经常需要求近似解问题。
求解该最优化问题的方法大多是逐次一维搜索的迭代算法,基本思想是在一个近似点处选定一个有利于搜索方向,沿这个方向进行一维搜索,得到新的近似点。如此反复迭代,知道满足预定的精度要求为止。根据搜索方向的取法不同,这类迭代算法可分为两类:
- 解析法:需要用目标函数的到函数,
- 梯度法:又称最速下降法,是早期的解析法,收敛速度较慢
- 牛顿法:收敛速度快,但不稳定,计算也较困难。高斯牛顿法基于其改进,但目标作用不同
- 共轭梯度法:收敛较快,效果好
- 变尺度法:效率较高,常用DFP法(Davidon Fletcher Powell)
- 直接法:不涉及导数,只用到函数值。有交替方向法(又称坐标轮换法)、模式搜索法、旋转方向法、鲍威尔共轭方向法和单纯形加速法等。

非线性最小二乘问题

非线性最小二乘问题来自于非线性回归,即通过观察自变量和因变量数据,求非线性目标函数的系数参数,使得函数模型与观测量尽量相似。高斯牛顿法解决非线性最小二乘问题的最基本方法,并且它只能处理二次函数。

Unlike Newton’smethod, the Gauss–Newton algorithm can only be used to minimize a sum ofsquared function values

基本数学表达
  • 梯度gradient,由多元函数的各个偏导数组成的向量
    以二元函数为例,其梯度为:
    f(x1,x2)=(fx1,fx2)
  • Hessian matrix 由多元函数的二阶偏导数组成的方阵,描述函数的局部曲率,以二元函数为例,
    H(f(x1,x2))=2fx212fx1x22fx1x22fx22
  • 雅可比矩阵 Jacobian matrix,是多元函数一阶偏导数以一定方式排列成的矩阵,体现了一个可微方程与给出点的最优线性逼近。以二元函数为例,
    J(f(x1,x2))=y1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值