vins-mono后端优化
预积分量约束第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后端优化相关推荐
- 基于ceres的后端优化的代码实现
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨从零开始搭SLAM 作者丨李太白lx 由于g2o天然是进行位姿图优化的, 所以十分契合karto ...
- VINS-Mono关键知识点总结——预积分和后端优化IMU部分
VINS-Mono关键知识点总结--预积分和后端优化IMU部分 VINS-Mono关键知识点总结--预积分和后端优化IMU部分 1. 预积分的理论推导 2. 预积分的代码分析 3. 后端优化IMU部分 ...
- 在 VSLAM 的后端优化中的重投影误差的雅可比计算详细推导
对于相机位姿的变换可以通过旋转矩阵或者四元数进行表示,对于旋转矩阵的定义满足: R{∣R∣=1RRT=IR \begin{cases} |R| = 1 \\ RR^T = I\\ \end{cases ...
- 【SLAM】LIO-SAM解析——后端优化mapOptimization(5)
系列文章链接: [SLAM]LIO-SAM解析--流程图(1) [SLAM]LIO-SAM解析--数据预处理imageProjection(2) [SLAM]LIO-SAM解析--特征提取featur ...
- SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)
传感器: 小觅相机标准版 开源SLAM方案: ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map 测试地点: 室内大厅(光线不均)/ 露天阳台 实现形式: 小觅相机 / ...
- SLAM后端优化之-核函数
1.核函数作用:保证每条边的误差不会大的没边,掩盖掉其他的边 在SLAM后端优化中,BA优化了所有的相机姿态和所有路标点,使用的最小化误差项作的二范数平方和作为目标函数:当我们的误差来源特别大的时候: ...
- SLAM Cartographer(18)后端优化问题求解器
SLAM Cartographer(18)后端优化问题求解器 1. 全局优化 2. 提供数据 3. 后端优化器 4. 求解过程 4.1. 定义优化问题 4.1.1. 子图全局位姿 4.1.2. 节点全 ...
- 视觉SLAM笔记(54) Ceres 操作后端优化
视觉SLAM笔记(54) Ceres 操作后端优化 1. Ceres 求解 BA 2. 求解 1. Ceres 求解 BA g2o 用 Edges 来保存每一个代价函数,但 Ceres 却是用 Pro ...
- 后端优化 | VINS-Mono 论文公式推导与代码解析分讲
3. 后端优化(紧耦合) VIO 紧耦合方案的主要思路就是通过将基于视觉构造的残差项和基于IMU构造的残差项放在一起构造成一个联合优化的问题,整个优化问题的最优解即可认为是比较准确的状态估计. 为了限 ...
- 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 ...
最新文章
- Thrift协议与传输选择
- 走过2010,期盼2011!
- 浅析网站地图设置对网站的作用有哪些?
- 看漫画学python 豆瓣_看漫画就能学好python?
- codeproject上的一款分页控件
- 如何用CSS让一个容器水平垂直居中?
- Spring cloud (1)---Eureka 宣布闭源,Spring Cloud 何去何从?
- Java Swing Mysql学生成绩管理系统
- 03-05 APP自动化测试-常用定位方式
- 靠java_人生靠反省,Java靠泛型
- WebService之基于REST机制的实现实例(Java版)
- 7种方案,彻底实现Python可视化图片大小/分辨率控制自由
- GB28181协议--设备注册和注销
- 五.java入门【循环语句】
- 2011微软MVP全球峰会美国行之飞抵西雅图
- windows电脑版微信多开的方法
- 图的深度遍历(邓俊辉版)
- 用户答题接收答案,并存入数据库
- PHP学习-数据类型
- 央企建筑公司数字化转型怎么做
热门文章
- 20 FI配置-财务会计-定义税务科目
- 初一数学计算机教案,初一数学教案
- OpenCV中基本数据结构(8)_Complex
- 混合精度训练amp,torch.cuda.amp.autocast():
- hasOwnProperty.call
- delphi测试服务器响应时间,负载测试中的页面响应时间 - Visual Studio (Windows) | Microsoft Docs...
- boot spring 怎么执行hql_Intellij如何使用Spring Boot正确配置hql。现在我得到持久性QL查询已进行错误检查...
- text文字垂直居中_CSS垂直居中,你会多少种写法?
- python七段数码管绘制秒表_Python绘制七段数码管实例代码
- select函数返回值_Vue学习笔记之函数、高阶函数、v-model的应用