OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

这篇具有很好参考价值的文章主要介绍了OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV去畸变undistortPoints原理解析

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

不动点迭代法—单变量非线性方程近似根matlab求解

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

淦VINS-MONO源码 03–openCV与VINS中去畸变方法的不同

这里用的方法和openCV不同,假设现在求A点的去畸变坐标,那么我们将A的坐标直接代入畸变模型中,求得再次畸变的坐标,并求得这个坐标和A之间的距离d.因为越靠近中心这个d越小,此时肯定小于真实坐标到A的距离dt。所以我们在朝真实畸变方向(再次畸变的反方向)上加上这个d,得到一个靠近真实值的方向,在以这个点再进行一次畸变求得距离d2,d2肯定大于d小于dt。d2在加到坐标A上 得到更靠近的结果,代码中一共进行了8次迭代。这种方法比openCV中的方法快了不少。

针孔相机投影模型
OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

第三章imu预积分

旋转矩阵约束
作者:jh h
链接:https://www.zhihu.com/question/386629150/answer/1752898777
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

(已修改)旋转矩阵的9个参数,存在6个约束条件,所以只有3个自由度:三个向量的模长为1这3个条件、三个向量两两垂直2个条件(XY垂直,XZ垂直这两个)、以及右手系(或左手系)这1个条件(这个条件意味着行列式是1或-1,也暗示了如果XY垂直YZ垂直,则XZ也会垂直)。9 - 3 - 2 - 1 = 3类似的,四维空间的旋转矩阵16个参数,存在10个约束条件,有6个自由度:四个向量模长为1这4个条件、四个向量互相垂直5个条件(XY、XZ、XW、YZ、YW,以及自动得到的ZW)、坐标系手性1个条件(单位矩阵中,有奇数个还是偶数个1变成了-1,只有这两种手性)。 16 - 5 - 4 - 1 = 6nnn 维空间的旋转矩阵 n2n{2}n{2} 个参数的情况:模长为1的条件,约束条件数量为 nnn 向量相互垂直的条件,约束条件数量为 [n(n−1)/2−1][ n(n-1)/2 -1 ][ n(n-1)/2 -1 ] 坐标系手性的条件,约束条件数量为 1自由度 = n2−n−[n(n−1)/2−1]−1=n(n−1)/2n^{2} - n - [ n(n-1)/2 -1 ] - 1= n(n-1)/2n^{2} - n - [ n(n-1)/2 -1 ] - 1= n(n-1)/2 ps: n维空间的(旋转+平动)恰好能够一一映射到(n+1)维空间的纯旋转。一个例子是,闵可夫斯基空间把三维空间的平动部分(洛伦兹收缩)映射到了所谓四维"时空"的X-T、Y-T、Z-T轴的旋转上面,同时三维旋转部分不变。洛伦兹收缩是一个客观现象,但是四维"时空"只是一个人们主观提出的一个数学模型,数学意义和物理意义需要分开。

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
左右两边都乘以Rwbk的逆,去掉他的影响。左边就是两帧之间的约束,右边是不含w到bk变化的表达式。卡尔曼滤波预测是第推imu,更新是观测cam

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
上面是连续时间,下面是离散时间,对应代码midPointIntegration,alpha,beta都是delta对应的量

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

迭代中,delta x一直都是0,因为输出的总是自己认为的最优值,但是deltax的协方差会变大,经过卡尔曼滤波后结合观测deltay的方差,deltax的方差会下降。
OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
误差卡尔曼优势:1不用过参数化表示,用3维旋转向量,不用考虑协方差矩阵各维之间的约束。2靠近原点,没有万向节问题。3,忽略二阶导数,雅可比容易计算。4更新可以比较慢,因为误差比较小

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
true真值。nominal:名义值,包含噪声。

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化
上面公式目的,在已知连续误差的变化量deltax,求deltaxk到deltaxk+1的矩阵变化。F就是Xk+1=Xk+J * delXk中的J。Jk+1=F Jk。。公式里协方差矩阵代码,代码与上面公式一样,除了噪声差一个负号,白噪声加减没区别。

vins intergration_base pushback作用更新预计分量,计算协方差矩阵。

零偏也是在更新的,需要用一阶近似求更新。F作用1,更新雅可比,方便状态量对零偏的更新,作用2,更新协方差矩阵,置信度

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

下图上面是状态,下面是协方差

第四章vio初始化

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化

平移外参(尺子)和加速度零偏(没法分离重力)没有初始化估计

OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化文章来源地址https://www.toymoban.com/news/detail-488113.html

到了这里,关于OpenCV迭代去畸变undistortPoints 与vins的迭代不同 第二章vins前端 第三章imu预积分 第四章vio初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第二章:基本概念(下)

    人们往往将信号称为**“软件中断”**。进程收到信号,就意味着某一事件或异常情况的发生。 信号的类型很多,每一种分别标识不同的事件或情况。采用 不同的整数 来标识各种信号类型,并以SIGxxxx 形式的符号名加以定义。 内核、其他进程(只要具有相应的权限)或进程自

    2024年02月08日
    浏览(33)
  • 第二章 翻译

    Section Ⅲ Translation Directions: In this section, there is a text in English. Translate it into Chinese. Write your translation on ANSWER SHEET 2. (15points) “Sustainability” has become a popular word these days, but to Ted Ning, the concept will always have personal meaning. Having endured a painful period of unsustainability in his own life made it

    2024年02月08日
    浏览(42)
  • 第二章-算法

    算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 算法有五个基本特征:输入、输出、有穷性、确定性和可行性。 输入:算法具有零个或者多个输入。 输出:算法至少有一个或多个输出。 有穷性:算法在执行了有

    2024年02月14日
    浏览(32)
  • 第二章 变量和引用

    目录 2.1. 深入认识变量 2.1.1. 什么是变量 2.1.2. 变量的名称 2.1.3. 变量的类型 2.1.4. 变量的定义 2.1.5. 自定义变量 2.1.6. 环境变量 2.1.7. 位置变量 2.2. 变量赋值和作用域 2.2.1. 显示赋值:变量名=变量值 2.2.2. read 从键盘读入变量值 2.2.3. 变量和引号 2.2.4. 变量的作用域 变量是在程序

    2024年02月20日
    浏览(37)
  • 第二章 re模块

    在处理字符串时,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。 Python 提供了 re 模块用于实现正则表达式的操作。在实现时,可以使用 re 模块提供的方法,如search()、match()、fi

    2024年02月09日
    浏览(27)
  • 第二章 进程管理

    目录 2.1  进程的引入 2.1.1程序的顺序执行 1.程序的顺序执行 2.程序顺序执行时的特征 2.1.2  程序的并发执行及其特征 1.并发执行的概念 2.程序并发执行时的特征 2.1.3  进程的定义与特征 1.进程的定义 2.进程的特征 2.1.4  进程的基本状态及转换 1.进程的三个基本状态

    2024年02月04日
    浏览(39)
  • 信息系统安全(第二章)

    2.1.1基本概念 在网络开放环境中,信息系统易遭受各种各样的攻击,例如消息窃听,身份伪装,消息伪造与篡 改,消息重放等。这种入侵行为的实施相当一部分建立在入侵者获得已经存在的通信通道或伪装身 份与系统建立通信通道的基础上。因此,在信息系统中,用户在登

    2024年04月09日
    浏览(71)
  • 第二章 编程基础

    内容框图 单行注释: 快速注释: 多行注释: 使用+号拼接 使用拼接函数 列表 列表是一个有序的序列结构,可以存放不同数据类型的数据。 列表每一个元素有一个索引。 列表可以进行一系列操作,添加,删除,修改元素。 元组是一个有序的序列结构,基本结构和列表类似。

    2024年02月06日
    浏览(45)
  • C++[第二章]--访问控制

    class里面的 private: 的成员外界不能访问。其作用保护一些数据,避免用户对成员做一些错误设置,可用public成员函数来限定一些情况,(比如年龄不小于0) class里面的 public: 的成员外界函数能直接访问修改。 代码如下: 受保护成员可以被类内部和派生类访问,但是不能被类外

    2024年02月16日
    浏览(32)
  • 第二章:Swagger2

    目录 背景介绍 什么是Swagger2 常用注解 SpringBoot整合Swagger2 生产环境下屏蔽Swagger2 修改Swagger2配置类 修改application.yml 使用maven package打包测试 运行测试 在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。传统的做法是由开发人员

    2024年02月22日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包