imu和canmera标定

最近在研究imu和相机的联合标定方法,根据网上查到的资料和github上的开源工具总结以下。html

一、联合标定的工具Kalibr
https://github.com/ethz-asl/kalibrgit

wiki写的很全了,总结如下要点:github

须要:
一、内参:尺度,轴误差、非线性(应用到raw measurements)算法

二、陀螺仪和加速度计的噪声和随机游走误差工具

三、标定图像,很成熟了,使用ros中的工具箱就行。post

采集图像:
须要激活因此的轴,20Hz的相机,200Hz的IMU优化

避免震动,看到有说法使用人手不行,须要机械臂.net

若是您正在使用具备对称性的校准目标(棋盘,圆网格),则必须避免可能致使目标姿态估计中的翻转的运动。 推荐使用Aprilgrid来彻底避免这个问题。code

中文博客教程:htm

https://blog.csdn.net/wwchen61/article/details/78013962    

https://www.2cto.com/kf/201709/682389.html

https://blog.csdn.net/Binbin_Sun/article/details/53791404提到:

当前标定的结果,主要基于如下两个方面断定:

* 真实的IMU坐标系和相机坐标系的转换,即相机和IMU的物理距离
* 标定结果的稳定性上
标定的结果一直没法使人满意:
可能的缘由
    选择的内参数值
    畸变系数的选择
    采集过程当中出现的晃动
    坐标系混乱

二、IMU内参标定工具imu_tk
https://github.com/Kyle-ak/imu_tk(或者https://bitbucket.org/alberto_pretto/imu_tk)

wiki基本没有。

详细介绍:https://blog.csdn.net/haoliliang88/article/details/76737960

关于IMU偏差的讲解:https://www.cnblogs.com/buxiaoyi/p/7541974.html(推荐)

总结优化的方法:

加速度计:   误差Bias,3个(六面法最小二乘问题)

                        尺度因子,3个

                        轴向误差,3个

陀螺仪:       误差Bias+高斯噪声(Allan方差),3个

                        尺度因子,3个

                        轴向误差,6个

泡泡机器人上的更为详细讲解:http://rosclub.cn/post-221.html

这个是使用matlab,不过我不太想用matlab(双系统每一个系统一个matlab,想一想就可怕),其中的理论仍是能够看看的:

https://blog.csdn.net/qq541317072/article/details/70314841

加速度计:十面球形校准(重力加速度应该在球面上)

        程序的输出是矩阵M和B,M是一个3*3的矩阵,表示三轴加速度计各方向的关联(理想状况该矩阵为单位阵),B是3*1的矩阵即各方向bias。采集数据时要注意,保证重力加速度分别指向+-x、+-y、+-z六个方向,得到较为准确的标定结果。

校准的过程:

静置IMU T(通常取50s)。

旋转IMU使其保持不一样的姿态。

在某种姿态下,至少保持t(通常取1~4)s。

是否旋转IMU N(通常选36~50)次。

用算法估计偏差参数

最后能够根据残差(residual)来挑选最终结果
要保证旋转过程有明显的加速减速过程,可使用6面法校准,多旋转几回避免奇异性。要注意参数的初始值的设定,若是设置很差会很大程度影响结果。

附上我这拙劣的操做:


三、噪声和随机游走的标定(Allan方差)
https://github.com/rpng/kalibr_allan(matlab)

https://github.com/gaowenliang/imu_utils(ROS)

能够看他们的wiki很详细,也能够看以前蓝色推荐的那个,也有讲。

后者是港科大推荐的,须要装一个code_utils都在他的github上。

通常这些开源代码不是有例程就有详细的说明,提供参考。

相关文章
相关标签/搜索