BA(后端)优化与卡尔曼滤波的一些区别

今天这篇文章会写得深入一些,主要知识来自于业内多位大佬的实际落地与自身的思考。

主要涉及机器人状态估计与机器视觉,多传感器结合时,BA优化与卡尔曼滤波的差异及如何选择。

机器人状态估计中,大家应该总体会对这一块兴趣较大,就是在自己的系统中到底是使用BA(光束平差法)做联合优化,还是使用卡尔曼滤波做优化呢?个人认为系统如果不依赖强力前端传感器(如激光雷达,光纤陀螺仪)的情况下,后端优化是可以将状态估计做到更好的主要路径。

经过这么多年的发展,经典卡尔曼滤波KF已经衍申出了很多种形态,常用的有EKF(扩展卡尔曼),ESKF(基于误差的卡尔曼滤波),IEKF(带迭代的扩展卡尔曼)与MSCKF(这个通常是一个具体VIO系统的名称,也代表多状态约束卡尔曼滤波)等。

BA相对就清晰一些,通常就是通过紧耦合为系统构建一系列的约束,常见约束就是(1)先验约束(2)视觉重投影误差(3)IMU预积分约束,还可以加入一些类似轮速计,RTK之类的约束。万变不离其宗。

优化与滤波有如下一些基础差异:

1.滤波是建立在一阶马尔科夫性上的单次优化,但同时受限于一阶马尔科夫性

2.滤波比单次优化精度高,直接使用了协方差来传递状态,优化需要使用LM之类进行求解

3.多次优化比滤波精度高,多次迭代不断收敛误差,但是缺点是开销比较高

4.滤波比较适用于松耦合,即不同传感器通过前端直接输入位置姿态(预测+更新),再输出新的状态估计;优化使用多种状态做紧耦合,再输出新的状态估计。

5.个人认为VR/XR这类相对本地位置进行坐标系变换的应用更适合滤波,机器人行业优化更合适。

而实际上这些年随着整个VSLAM的发展,事情正在起变化。

滤波和优化的边界越来越不明显,甚至开始各种交叉和混合使用。

以先验约束迭代的卡尔曼滤波器IEKF,多状态约束的卡尔曼滤波器MSCKF,再加上更多工程手段。越来越强的前端传感器,越来越便宜的前端算力,也使得滤波的手段应用得越来越广泛。优化的优势也开始不再那么明显。

说一下现今差异上的一些理解(部分来自吴克艰博士2022SLAM论坛):

1.优化与滤波数学本质一样,只是形式不同,最终都是非线性最小二乘问题。(矩阵的形式和矩阵的分块,分解有较大区别)

2.使用哪种手段取决于需要应用和落地的场景是长还是短,这块很玄学,没有明确定义,参见3

3.精度与开销的平衡,取决于你使用的系统传感器能力与前端算力平台的能力,传感端越强,系统可以更依靠前端,偏向滤波;反之如果算力平台能力尚可,传感端较弱,偏向优化。

4.优化实际主要手段是重线性化/边缘化,选择需要固定住的部分形成先验(未必一定是路标),未边缘化的部分使用重线性化。滤波主要利用协方差进行状态估计。

5.使用常规还是平方根进行处理,最终都是精度与开销的平衡。大规模的数据多用BA,对效率高的场景使用KF。未来大多数机器人实际场景个人判断是BA+SFW或MSCKF为主类,辅助以各自系统的工程手段实现。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值