Kalibr 是标定工具中,唯一一个可以标定camToImu的,是vio必不可少的工具,其他的都有替代品。所以学习多种开源算法进行相机标定,并记录学习相机标定的过程。
一、相机标定
1、在场景中放置一个已知的物体
(1)识别图像和场景之间的对应关系
(2)计算从场景到图像的映射
相机的标定在最简单的情况下可以用这样一个方案:假定场景里面有一个已知物体,而且假定建立已知物体的一些点到图像中点的一些关系,接下来要做的就是寻找相机矩阵,把一些三维点映射到平面的两维点上面来,假定平面上的三维点的坐标是已知的,非常精确的,而且知道三维坐标而且知道图像中的点和三维模型的点之间的对应关系,利用这种3D到2D的对应关系,可以来做相机的标定
问题:必须非常精确地了解几何
必须知道3D - 2D对应关系
2、摄像机参数估计Resectioning
利用这种3D到2D的对应关系,可以来做相机的标定这种方案称之为Resectioning。
画成图像来看,就是三维点在这里,有一个两维照片,而且知道黑色的点有对应关系,那么要求的就是相机矩阵,就是3X4的相机矩阵,包含内参、外参所有的参数都在里面,直观上可以认为把这一张照片,在三维空间中摆到一个恰当的位置,使得从相机中心发出去的光线刚刚好要通过三维空间中的这些已知点,所以要解决的问题是:这个相机要放到三维空间中的什么位置才能让这个几何关系得以成立。
在做这样的方法的时候,假定这些三维点的坐标是非常精确已知的,然而在实际应用中是比较难做到的,很早以前会使用标定物,通过专业设备制作的过程中保证三维点的位置,然后有精确标定物之后标定相机矩阵。
3、基本方程(Basic Equations)
算法实现其实蛮简单的,任何的一个三维点,经过相机的投影矩阵之后,会投影到图像中的一个两维点,
二、两张图几何约束
三、三维重建
IMU参数标定学习笔记
惯性处理单元
1、参数标定
如果IMU测量数据本身就存在很大的误差,即输入到系统的就是错误信息上层应用系统的算法做得再好也会输出错误结果
(1)内参标定
相对于IMU自身的坐标系而言,在这个坐标系里面,它的数据所出现的误差,尽量把系统内部产生的误差消除掉
①良率检测
内参数标定比较关键,因为外参数标定与实际应用是有关系的,内参标定之前首先进行良率检测,标定是把传感器尽量消除,如果传感器测量的数据偏移的程度过大,那么矫正毫无意义,所以首先保证IMU是正常的。
②内参标定过程
标定IMU,就需要对IMU误差的来源进行建模,其实IMU测量过程中的误差是由很多不同的方面所引起的,建模是对一些比较明显的误差,已知的原因把它构建成数学模型,一些我们不知道的误差源那么就无视它,因为把所有误差都考虑进来会很复杂,这个是没有必要的。我们主要关心三个方面的误差来源:
零偏
比如我们日常生活中的秤,如果不称重的读数不是零,那么这个时候的偏差值就是零偏,IMU上的零偏也是类似的道理。也就是IMU静止放置在某个地方,如果角速度非零,那偏差值就是零偏。
尺度偏差
不管测量加速度还是角速度,还是磁力,都是通过物理量转化成电学量,比如电压、电阻和电流等,转化过程中称之为尺度,每一个轴上转化的尺度是不一样的,比如在x轴上受到了1牛顿的力,那么x轴上的力学转换器转换出来的电压可能是1.5V,但是在y轴上,同样是1牛顿,那么转化出来的电学量可能是1.8V,这两个电压不一样,中间存在一个系数的差,这个系数的差,是由很多原因造成的。尺度可以看成斜率。尺度也是有三个值,x轴、y轴、z轴
(2)外参标定
相对于内参标定而言,假设把IMU装到载板上,载板本身也是有坐标系的,IMU在自身坐标系上测到的值,怎么去换算到载板的坐标系上去表示
坐标变换的关系用T来表示,变化的参数T就是外参,外参与IMU实际安装的过程中安装在不同的地方有关系的,同时与所要变换的目标坐标系是有关系的,外参是不唯一的。
外参有很多种的,如果IMU与相机之间进行融合,那么相机与IMU之间的坐标变换关系就是外参,雷达与IMU融合同理。
一、IMU和视觉融合的方法
1、IMU
IMU以高频率(100HZ或200HZ)输出载体的角速度w和线加速度a,解算出高频率(100HZ或200HZ)的载体速度V、位置P以及旋转R
2、相机
零偏和噪声会比较大,以至于长时间使用后偏移的就很快,但是如果使用高精惯导,这个漂移误差会降低些,因为它是一种积分状态,从开始时间一直在持续积分,积分到不再使用为止,也就是它的V、P、R,他们分别每一个时刻都有一个误差,这个误差会产生迭代,所以长时间使用后就会漂移,
相机以30Hz或20Hz获得场景中的图像信息,利用图像中的特征信息,解算载体的旋转和平移
相机可以获得丰富的环境信息,并在长时间内的漂移误差较小,但在快速运动或旋转的环境中容易发生跟踪丢失的情况,且在面对挑战环境时定位精度会明显下降
3、融合的目标
融合的目标就是进行一个相互的补偿,主要有三个目标可以进行相互的补偿
- 利用视觉里程计对IMU的累积漂移进行补偿,降低惯导的漂移误差
- 对于单目视觉传感器,可以利用IMU进行场景深度的校正,缓解单目相机尺度不确定性问题
- IMU的输出与环境无关,不受环境变化的约束,利用IMU与视觉进行补偿可以提高视觉里程计位姿估计的鲁棒性
二、IMU和视觉的初始化及参数估计方法
三、总结