预积分量约束第i,j帧的残差计算:

// 计算和给定相邻帧状态量的残差Eigen::Matrix<double, 15, 1> evaluate(const Eigen::Vector3d &Pi, const Eigen::Quaterniond &Qi, const Eigen::Vector3d &Vi, const Eigen::Vector3d &Bai, const Eigen::Vector3d &Bgi,const Eigen::Vector3d &Pj, const Eigen::Quaterniond &Qj, const Eigen::Vector3d &Vj, const Eigen::Vector3d &Baj, const Eigen::Vector3d &Bgj){Eigen::Matrix<double, 15, 1> residuals;Eigen::Matrix3d dp_dba = jacobian.block<3, 3>(O_P, O_BA);Eigen::Matrix3d dp_dbg = jacobian.block<3, 3>(O_P, O_BG);Eigen::Matrix3d dq_dbg = jacobian.block<3, 3>(O_R, O_BG);Eigen::Matrix3d dv_dba = jacobian.block<3, 3>(O_V, O_BA);Eigen::Matrix3d dv_dbg = jacobian.block<3, 3>(O_V, O_BG);Eigen::Vector3d dba = Bai - linearized_ba;Eigen::Vector3d dbg = Bgi - linearized_bg;Eigen::Quaterniond corrected_delta_q = delta_q * Utility::deltaQ(dq_dbg * dbg);Eigen::Vector3d corrected_delta_v = delta_v + dv_dba * dba + dv_dbg * dbg;Eigen::Vector3d corrected_delta_p = delta_p + dp_dba * dba + dp_dbg * dbg;residuals.block<3, 1>(O_P, 0) = Qi.inverse() * (0.5 * G * sum_dt * sum_dt + Pj - Pi - Vi * sum_dt) - corrected_delta_p;residuals.block<3, 1>(O_R, 0) = 2 * (corrected_delta_q.inverse() * (Qi.inverse() * Qj)).vec();residuals.block<3, 1>(O_V, 0) = Qi.inverse() * (G * sum_dt + Vj - Vi) - corrected_delta_v;residuals.block<3, 1>(O_BA, 0) = Baj - Bai;residuals.block<3, 1>(O_BG, 0) = Bgj - Bgi;return residuals;}

由于更新bias会导致预积分量也发生变化,而重新积分非常复杂,所以对于预积分量直接在i时刻的bias附近用一阶泰勒展开来近似,而不用真的迭代计算。

vins-mono后端优化相关推荐

  1. 基于ceres的后端优化的代码实现

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨从零开始搭SLAM 作者丨李太白lx 由于g2o天然是进行位姿图优化的, 所以十分契合karto ...

  2. VINS-Mono关键知识点总结——预积分和后端优化IMU部分

    VINS-Mono关键知识点总结--预积分和后端优化IMU部分 VINS-Mono关键知识点总结--预积分和后端优化IMU部分 1. 预积分的理论推导 2. 预积分的代码分析 3. 后端优化IMU部分 ...

  3. 在 VSLAM 的后端优化中的重投影误差的雅可比计算详细推导

    对于相机位姿的变换可以通过旋转矩阵或者四元数进行表示,对于旋转矩阵的定义满足: R{∣R∣=1RRT=IR \begin{cases} |R| = 1 \\ RR^T = I\\ \end{cases ...

  4. 【SLAM】LIO-SAM解析——后端优化mapOptimization(5)

    系列文章链接: [SLAM]LIO-SAM解析--流程图(1) [SLAM]LIO-SAM解析--数据预处理imageProjection(2) [SLAM]LIO-SAM解析--特征提取featur ...

  5. SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)

    传感器: 小觅相机标准版 开源SLAM方案: ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map 测试地点: 室内大厅(光线不均)/ 露天阳台 实现形式: 小觅相机 / ...

  6. SLAM后端优化之-核函数

    1.核函数作用:保证每条边的误差不会大的没边,掩盖掉其他的边 在SLAM后端优化中,BA优化了所有的相机姿态和所有路标点,使用的最小化误差项作的二范数平方和作为目标函数:当我们的误差来源特别大的时候: ...

  7. SLAM Cartographer(18)后端优化问题求解器

    SLAM Cartographer(18)后端优化问题求解器 1. 全局优化 2. 提供数据 3. 后端优化器 4. 求解过程 4.1. 定义优化问题 4.1.1. 子图全局位姿 4.1.2. 节点全 ...

  8. 视觉SLAM笔记(54) Ceres 操作后端优化

    视觉SLAM笔记(54) Ceres 操作后端优化 1. Ceres 求解 BA 2. 求解 1. Ceres 求解 BA g2o 用 Edges 来保存每一个代价函数,但 Ceres 却是用 Pro ...

  9. 后端优化 | VINS-Mono 论文公式推导与代码解析分讲

    3. 后端优化(紧耦合) VIO 紧耦合方案的主要思路就是通过将基于视觉构造的残差项和基于IMU构造的残差项放在一起构造成一个联合优化的问题,整个优化问题的最优解即可认为是比较准确的状态估计. 为了限 ...

  10. FAST_LIO_SAM 融入后端优化的FASTLIO SLAM 系统 前端:FAST_LIO2 后端:LIO_SAM

    FAST_LIO_SAM Front_end : fastlio2 Back_end : lio_sam Videos : FAST-LIO-SAM Bilibili_link Source code ...

最新文章

  1. Thrift协议与传输选择
  2. 走过2010,期盼2011!
  3. 浅析网站地图设置对网站的作用有哪些?
  4. 看漫画学python 豆瓣_看漫画就能学好python?
  5. codeproject上的一款分页控件
  6. 如何用CSS让一个容器水平垂直居中?
  7. Spring cloud (1)---Eureka 宣布闭源,Spring Cloud 何去何从?
  8. Java Swing Mysql学生成绩管理系统
  9. 03-05 APP自动化测试-常用定位方式
  10. 靠java_人生靠反省,Java靠泛型
  11. WebService之基于REST机制的实现实例(Java版)
  12. 7种方案,彻底实现Python可视化图片大小/分辨率控制自由
  13. GB28181协议--设备注册和注销
  14. 五.java入门【循环语句】
  15. 2011微软MVP全球峰会美国行之飞抵西雅图
  16. windows电脑版微信多开的方法
  17. 图的深度遍历(邓俊辉版)
  18. 用户答题接收答案,并存入数据库
  19. PHP学习-数据类型
  20. 央企建筑公司数字化转型怎么做

热门文章

  1. 20 FI配置-财务会计-定义税务科目
  2. 初一数学计算机教案,初一数学教案
  3. OpenCV中基本数据结构(8)_Complex
  4. 混合精度训练amp,torch.cuda.amp.autocast():
  5. hasOwnProperty.call
  6. delphi测试服务器响应时间,负载测试中的页面响应时间 - Visual Studio (Windows) | Microsoft Docs...
  7. boot spring 怎么执行hql_Intellij如何使用Spring Boot正确配置hql。现在我得到持久性QL查询已进行错误检查...
  8. text文字垂直居中_CSS垂直居中,你会多少种写法?
  9. python七段数码管绘制秒表_Python绘制七段数码管实例代码
  10. select函数返回值_Vue学习笔记之函数、高阶函数、v-model的应用