1 多相机标定
  1.1采集图像和IMU
  1.2制作Bag包
  1)组织文件结构
    ~/kalibr_workspace/test/stereo_calib
      bagsrc
        cam0
          (1+time(0))*1e9.tif     //只支持png图像
          (2+time(0))*1e9.tif   //图像名只能数字组成
          (999+time(0)).tif        //图像名长度为19位
        cam1                //不同相机获得的图像名必须一一对应
          (1+time(0))*1e9.tif
          (2+time(0))*1e9.tif
          (999+time(0)).tif
        cam2
          (1+time(0))*1e9.tif
          (2+time(0))*1e9.tif
          (999+time(0)).tif
        cam3
           (1+time(0))*1e9.tif
           (2+time(0))*1e9.tif
           (999+time(0)).tif
      bagdst
  2)cd ~/kalibr_workspace/test/stereo_calib
  3)source ~/kalibr_workspace/devel/setup.bash
  4)kalibr_bagcreater
    --folder bagsrc
    --output-bag calib.bag
  1.3建立关于标定板信息的calib.yaml文件
  1)对于april板.yaml文件格式如:
    target_type: 'aprilgrid'      #gridtype
    tagCols: 6            #number of apriltags
    tagRows: 6            #number of apriltags
    tagSize: 0.088         #size of apriltag, edge to edge [m]
    tagSpacing: 0.3         #ratio of space between tags to tagSize,实际上就是小黑块与大黑块的边长之比
                     #example: tagSize=2m, spacing=0.5m --> tagSpacing=0.25
  2)对于checkboard板.yaml文件格式如:
    target_type: 'checkerboard'      #gridtype
    targetCols: 6            #number of internal chessboard corners
    targetRows: 7          #number of internal chessboard corners
    rowSpacingMeters: 0.06       #size of one chessboard square [m]
    colSpacingMeters: 0.06      #size of one chessboard square [m]
  3)对于circle板.yaml文件格式如:
    target_type: 'circlegrid'     #gridtype
    targetCols: 6          #number of circles (cols)
    targetRows: 7          #number of circles (rows)
    spacingMeters: 0.02       #distance between circles [m]
    asymmetricGrid: False        #use asymmetric grid (opencv) [bool]
  1.4执行标定
  1)cd ~/kalibr_workspace/test/stereo_calib
  2)source ~/kalibr_workspace/devel/setup.bash
  3)kalibr_calibrate_cameras
    --target calib.yaml
    --bag calib.bag
    --models pinhole-equi pinhole-equi omni-radtan omni-radtan
    --topics /cam0/image_raw /cam1/image_raw /cam2/image_raw /cam3/image_raw
  1.5提取Bag包
  1)cd ~/kalibr_workspace/test/stereo_calib
  2)source ~/kalibr_workspace/devel/setup.bash
  3)kalibr_bagextractor
    --image-topics /cam0/image_raw /cam1/image_raw /cam2/image_raw /cam3/image_raw
    --output-folder bagdst
    --bag calib.bag

2 多IMU标定

3 相机-IMU标定

相机标定:kalibr标定工具箱使用总结的更多相关文章

  1. VIO系统的IMU与相机时间偏差标定

      视觉里程计(VIO)作为一种空间定位方法,广泛应用于VR/AR.无人驾驶和移动机器人,比如近年火热的苹果 AR-Kit和谷歌AR-Core都使用了VIO技术进行空间定位.通常,VIO系统忽略IMU ...

  2. 基于OpenCV单目相机的快速标定--源码、工程、实现过程

    相机的标定是所有人走进视觉世界需要做的第一件事,辣么多的视觉标定原理解释你可以随便在网上找到,这里只讲到底如何去实现,也算是给刚入门的朋友做个简单的分享. 1.单目相机标定的工程源码 首先请到同性交友 ...

  3. 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)

    使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的 ...

  4. 【双目备课】《学习OpenCV第18章》相机模型与标定整编

    一.相机模型 针孔模型.在这个简单模型中,想象光线是从场景或一个很远的物体发射过来的,但只有一条光线从该场景中的任意特定点进入针孔. 我们将这个图像进行抽象,就能够得到这样的结果: 其中,f为像到针孔 ...

  5. 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

    相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...

  6. 相机标定问题-Matlab & Py-Opencv

    一.相机标定基本理论 1.相机成像系统介绍 图中总共有4个坐标系: 图像坐标系:Op    坐标表示方法(u,v)                 Unit:Dots(个) 成像坐标系:Oi      ...

  7. 相机标定过程(opencv) + matlab参数导入opencv + matlab标定和矫正

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  8. OpenCV相机标定和姿态更新

    原帖地址: http://blog.csdn.net/aptx704610875/article/details/48914043 http://blog.csdn.net/aptx704610875 ...

  9. SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解

    想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...

随机推荐

  1. CSS 专业技巧

    使用CSS复位 CSS复位可以在不同的浏览器上保持一致的样式风格.您可以使用CSS reset 库Normalize等,也可以使用一个更简化的复位方法: * { box-sizing: border- ...

  2. java的位运算符

    1.与运算&,同为1为1,否则为0: 例如:10001(二进制)&10000(二进制)=10000(二进制) 2.或运算|,只要有1就是1: 例如:10001(二进制)&100 ...

  3. array_count_values:返回数组中所有值出现的次数

    $arr1 = ['a','b','c','d','e','e','a','a']; $arr = array_count_values($arr1);   echo '<pre>'; p ...

  4. c#类,接口,结构,抽象类介绍 以及抽象和接口的比较

    c#中的类是最常见的实际上就是对某种类型的对象定义变量和方法的原型. 结构是值类型,而类是引用类型. 1.与类不同,结构的实例化可以不使用 new 运算符.结构可以声明构造函数,但它们必须带参数. 2 ...

  5. Nginx工作原理

    Nginx的模块 Nginx由内核和模块组成. Nginx的模块从结构上分为核心模块.基础模块和第三方模块: 核心模块:HTTP模块.EVENT模块和MAIL模块 基础模块:HTTP Access模块 ...

  6. ICMP(网际控制报文协议)

    为了更有效的提高ip数据报的成功转发和交付的效率,在网际层使用了icmp网际控制报文协议,这个协议允许主机和路由器提供差错和异常情况的报告,icmp不是高层协议,而是网际层的协议,加在ip数据报中一起 ...

  7. Java程序测试之线程的使用

    package thread_test; class A implements Runnable { public void run() { while(true) { System.out.prin ...

  8. java读取Excel文档插入mysql

    /** * 读取excel插入myslq */package com.excel; import java.io.BufferedInputStream;import java.io.File;imp ...

  9. iframe的优缺点?

    1.`<iframe>`优点: 解决加载缓慢的第三方内容如图标和广告等的加载问题 Security sandbox 并行加载脚本 2.`<iframe>`的缺点: *ifram ...

  10. Uip学习简介及网址

    http://www.ichanging.org/uip-stm32.html http://www.ichanging.org/share/ http://bbs.eeworld.com.cn/th ...