【SLAM】7.SLAM十四讲——非线性优化
一.优化和优化库
1.1 优化问题的组成
优化对象
目标/损失/代价函数,一般使误差函数取最小值为目标
约束条件:不等式约束、等式约束
1.2 分类
凸优化和非凸优化
凸优化:有唯一极值,是常见的形式
非凸优化:在保留原问题关键特征的情况下尝试用凸问题近似解决
1.3 数据输入方式
批量式和增量式
批量式:一次性给出batch、数据较纯
增量式:边采集边优化,难点在于要用后面的数据调整前面的解
1.4 优化对象的合理选择
SLAM问题中:机器人位姿、地图中特征点的坐标
1.5 维度削减
微分平坦:寻找特征削减维度,用较少的量张成足够的状态空间
直观地分析自由度,削减待求解空间
1.6 目标函数
定位与建图中:位姿、特征匹配
1.7 约束条件
(1)无约束问题一般比有约束问题更易求解
(2)一般将约束加在目标函数中
(3)转换对象空间:三角换元、流形空间
1.8 问题求解
解析解:获得公式
数值解:迭代获得,无限逼近
二.常见优化库
ceres:边界约束的最小二乘和一般无约束问题
g2o:图优化
gtsam:用因子图和贝叶斯网络进行优化,Lio-SAM
osqp:求解QP的求解器
三.优化问题
优化是手段,重点是优化问题的构建,也就是建模
优化资料:最优化——建模、算法与理论
四.向量、矩阵求导知识
本质上还是标量求导,求导方式按规则进行组织
布局:分子式、分母式
多数情况下可以通过查表解决
待复习矩阵知识
五.非线性最小二乘
5.1 主要思想
对于凸函数,求导等于0,求切平面。
一般不存在数值解,需要迭代求解析解。
5.2 步骤
(1)给定初始值x0
(2)对于第k次迭代,寻求增量deltaXk,使得||f(Xk+deltaXk)||最小
(3)若deltaXk足够小,则停止迭代
(4)否则,另Xk+1=Xk+deltaXk,返回(2)
关键在于求deltaXk,在各维度增加多少、减少多少
一般在Xk处泰勒展开判断维度上的增加,以deltaXk作变量,涉及到一阶导雅克比矩阵J和二阶导海森矩阵H
5.3 具体迭代方法
主要分为直接法和改进二阶法
直接法:一阶、二阶牛顿法
改进二阶法:高斯牛顿、L-M法、Dog-Leg法
5.4 直接法
一阶:求一阶导得到梯度,对梯度进行取反即得到增量,直接使用梯度可能过大、需要乘以学习因子
二阶:仅用一阶导可能不够,需要作二阶展开,计算J和H
缺点:
(1)梯度下降法过于贪心,可能走出锯齿形路线,效率低
(2)二阶中,H不易求,且逆不好算。
5.5 改进二阶
包括高斯牛顿、列文-马夸法、Dog-Leg法
六.标题yyy
6.1 xxx
yyy
6.2 xxx
yyy
6.3 xxx
yyy
七.标题yyy
7.1 xxx
yyy
7.2 xxx
yyy
7.3 xxx
yyy
八.标题yyy
8.1 xxx
yyy
8.2 xxx
yyy
8.3 xxx
yyy
九.标题yyy
9.1 xxx
yyy
9.2 xxx
yyy
9.3 xxx
yyy
十.标题yyy
10.1 xxx
yyy
10.2 xxx
yyy
10.3 xxx
yyy
十一.标题yyy
11.1 xxx
yyy
11.2 xxx
yyy
11.3 xxx
yyy
十二.标题yyy
12.1 xxx
yyy
12.2 xxx
yyy
12.3 xxx
yyy

浙公网安备 33010602011771号