kalibr标定IMU

步骤:

1:如何标定

2:标定的结果


3:如何验证标定结果的正确性

相机IMU标定的准备工作

【1】环境配置:需要安装ROS,可根据http://wiki.ros.org/ROS/Installation 选择安装版本(我安装的ubuntu版,http://wiki.ros.org/cn/jade/Installation/Ubuntu).ROS安装成功的标志为,任意打开一个终端,运行:roscore,无报错

【2】标定工具箱:

The following two sources for the toolbox are available:

  (1)building from source(我选择的这个,参考http://www.cnblogs.com/Jessica-jie/p/6536272.html

Depends on a working installation of ROS indigo and a catkin workspace.

(2)CDE package

1.如何标定https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration

标定所需文件:

【1】 XX.bag:包含有图片信息和IMU数据的ROS包

    • 将采集的数据制成.bag文件,.bag文件制作参考: https://github.com/ethz-asl/kalibr/wiki/bag-format

      • .bag文件的生成需要:采集图片和Imu数据
      • Kalibr的所有应用程序使用ROS包作为图像和IMU数据的源。
      • .bag文件生成命令: (创建ROS包)

        kalibr_bagcreater –folder dataset-dir –output-bag awsome.bag

      • 需要注意的是:在包含图片的文件夹的同一目录下需要一个:output空白文件夹,否则 .bag 文件无法生成
      • 生成的.bag文件使用:rosbag info XX.bag 判定是否生成成功,如果只有4kb,则生成失败,而一般情况都是路径问题

   提示:

  • 标定工具中需要目标标定板:使用的目标标定板为April类型中的 7*5
  • 图像数据的采集,采集的图像是为了制成可被接下来使用的bag包,其中相机的采集频率建议为20Hz,IMU的采集频率建议为200Hz
    • 图像采集时,尽量激活所有的IMU轴,包括旋转和平移
    • 避免震动,特别是在开始和结束时
    • 不可移动过快,否则会出现移动模糊

【2】camchain.yaml:包含相机的内参和畸变参数的文件YAML formats(该文件包含相机内在和外在参数的校准以及IMU相对于相机的空间和时间校准参数。)

【3】IMU.yaml:包含IMU的基本参数,噪音等 YAML formats

【4】target.yaml:标定目标板的参数。(标定工具中需要目标标定板:使用的目标标定板为April类型中的 7*5)

当上述的文件都有时,使用命令,完成标定.

kalibr_calibrate_imu_camera --bag [filename.bag] --cam [camchain.yaml] --imu [imu.yaml] --target [target.yaml]

默认情况下,时间校准关闭,可以使用--time-calibration参数启用。

有关选项的详细信息,请使用help参数:

kalibr_calibrate_imu_camera --h 

2.标定结果(由以下示例跑出的结果)

3.标定结果的评定标准:

校准将生成以下输出文件

  • report-imucam-%BAGNAME%.pdf :以PDF格式报告。 包含所有图表的文档。
  • results-imucam-%BAGNAME%.txt :将结果摘要作为文本文件。
  • camchain-imucam-%BAGNAME%.yaml :YAML格式的结果。 此文件基于输入camchain.yaml ,所有摄像机相对于IMU添加了转换(以及可选的时间移位)。

使用示例数据集的示例:

Downloads页面下载数据集IMU-camera calibration并解压(需要FQ下载)。

The archive will contain the bag, calibration target and IMU configuration file.

使用命令,完成标定.

kalibr_calibrate_imu_camera –target xx/target.yaml –cam xx/camchain.yaml
–imu xx/IMU.yaml –bag xx/xx.bag –bag-from-to 5 45 

注意:由于数据集中存在冲击,因此仅使用5到45秒之间的数据。

时间: 2024-10-05 17:49:00

kalibr标定IMU的相关文章

Imu_tk算法流程及数据采集要求和标定程序参数设置

Imu_tk算法流程 由于VIO中,普遍使用的是精度较低的imu,所以其需要一个较为准确的内参数和noise的估计.Noise大家通常使用Allan方差进行估计可以得到较为可信的结果,这里不赘述了.内参数标定比较方便的一个工具就是imu_tk.所以本篇文章主要详细介绍一下imu_tk的算法流程以及使用时的注意事项.下一篇的内容 计划是imu-camera外参数的标定方法. 首先分步介绍算法流程: 1. 读入数据,将时间单位转化为秒 2. 设置初始参数和标定算法的控制参数 3. 开始标定 3.1

imu和canmera标定

最近在研究imu和相机的联合标定方法,根据网上查到的资料和github上的开源工具总结如下. 1.联合标定的工具Kalibrhttps://github.com/ethz-asl/kalibr wiki写的很全了,总结以下要点: 需要:1.内参:尺度,轴偏差.非线性(应用到raw measurements) 2.陀螺仪和加速度计的噪声和随机游走偏差 3.标定图像,很成熟了,使用ros中的工具箱就行. 采集图像:需要激活所以的轴,20Hz的相机,200Hz的IMU 避免震动,看到有说法使用人手不行

imu标定 imu_tk

1. 首先标定加速度计,这是imu加速度计xyz三个轴在标定过程中的读数: 标定结果: 2. 利用加速度计的标定结果,标定陀螺仪,结果:

vins-mono中的imu参数设置

na:加速度计的测量噪声 nw:陀螺仪的测量噪声 nba: randow walk noise随机游走噪声 nbw:randow walk noise随机游走噪声 ba:加速度计的偏差 bw:陀螺仪的偏差 其中na,nw,nba,nbw,都是零均值高斯模型 ba的导数为nba,bw的导数为nbw. 获取这些参数可以通过imu_utils来获得 https://github.com/gaowenliang/imu_utils 重要的是要注意,这里使用的IMU测量误差模型来自不经历运动和恒定温度的传

IMU入门与应用

视频 [泡泡机器人公开课]第八课:MEMS IMU的入门与应用-胡佳兴 标定论文 A robust and easy to implement method for IMU calibration without external equipments 标定demo https://bitbucket.org/alberto_pretto/imu_tk/src/master/ 原文地址:https://www.cnblogs.com/didada/p/11678303.html

基于OpenCV立体视觉标定和校正

这几天学习双目视觉标定,分别使用了两种工具:OpenCV和Matlab.Matlab的效果非常稳定,但是一开始OpenCV的效果很糟糕,要不是出现中断就是标定出来的结果数值很大.经过了几天的不断调试和更改,终于把OpenCV的立体视觉标定和校正的程序写出来了.立体标定时计算空间上的两台摄像机几何关系的过程,立体校正则是对个体图像进行纠正,保证这些图像可以从平面对准的两幅图像获得.程序的框架如下: 1.读取左右相机图片序列 双目相机的图片序列放在Demon的路径下,左右相机的图像的名字分别存放在两

基于EmguCV的摄像机标定及矫正

标签: EmguCV摄像头标定C# 2015-05-03 14:55 501人阅读 评论(6) 收藏 举报  分类: C# 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 之前用OpenCV做过摄像机标定及矫正,现在平台换了,改用C#,就用EmguCV做一下,其实就是OpenCV的C#版. 在EmguCV中有两类摄像机标定的类,一个是CvInvoke类,一个是CameraCalibration类,两种标定效果差不多,只不过CvInvoke涉及的函数大多都是指针类型的

PPZ之串口获取IMU

 1,rotocraft/main函数 main_init() (1)各设备初始化 (2)register timers for the periodic functions 其中有telemetry_tid while(1){ handle_periodic_tasks() 其中,该函数的实现里有: if (sys_time_check_and_ack_timer(telemetry_tid)) telemetry_periodic(); 即检测到telemetry_tid计时器到期之后,

双目相机标定以及立体测距原理及OpenCV实现

作者:dcrmg 单目相机标定的目标是获取相机的内参和外参,内参(1/dx,1/dy,Cx,Cy,f)表征了相机的内部结构参数,外参是相机的旋转矩阵R和平移向量t.内参中dx和dy是相机单个感光单元芯片的长度和宽度,是一个物理尺寸,有时候会有dx=dy,这时候感光单元是一个正方形.Cx和Cy分别代表相机感光芯片的中心点在x和y方向上可能存在的偏移,因为芯片在安装到相机模组上的时候,由于制造精度和组装工艺的影响,很难做到中心完全重合.f代表相机的焦距. 双目标定的第一步需要分别获取左右相机的内外参