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. vue自定义日期组件

    vue-datepicker 基于 vuejs 2.x 可自定义主题的日期组件 github Usage 只需要在项目中加入 calendar.vue,就可以使用了. 向组件传入 prop 即可改变 ...

  2. Unity预计算光照的学习(速度优化,LightProb,LPPV)

    1.前言 写这篇文章一方面是因为unity的微博最近出了关于预计算光照相关的翻译文章,另一方面一些美术朋友一直在抱怨烘培速度慢 所以抱着好奇的心态来学习一下unity5的PRGI预计算实时光照 2.基 ...

  3. ABP框架 - 嵌入资源

    文档目录 本节内容: 简介 创建嵌入文件 xproj/project.json 格式 csproj 格式 添加到嵌入式资源管理器 使用嵌入式视图 使用嵌入式资源 ASP.NET Core 配置 忽略文 ...

  4. java-5

    1.请查看String.equals()方法的实现代码,注意学习其实现方法 将此字符串与指定的对象比较.当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 ...

  5. C#数组和集合

    一维数组 概述:数组是通过指定数组的元素类型.数组的(秩)维数及数组每个维度上的上限和下限来定义的,及一个数组的定义需要包含以下几个要素. 类型   数组的维数   每个维的上限下限 声明:数据类型  ...

  6. cloudbase-init 自动扩盘的副作用 - 每天5分钟玩转 OpenStack(154)

    这是 OpenStack 实施经验分享系列的第 4 篇. cloudbase-init 的一项功能是自动扩展 windows 的 C 盘.比如 windows 镜像是 20G,在部署 instance ...

  7. 3553: [Shoi2014]三叉神经树(树链剖分)

    这道题特别恶心,首先我们可以发现更改的就是出现连续的一或二,那么就用线段树+树链剖分找到这个范围 想到是不难想,就是打起来恶心罢了= = CODE: #include<cstdio> #i ...

  8. WP8.1开发对图片进行裁剪(截取)一部分

    对于这个内容,我是在学习插入图片时遇到的问题,在Windows应用中可以直接用Image类和Bitmap直接实现裁剪功能, 在wp上就不行了,后来在MSDN论坛上找到了相关方法及示例,而示例太复杂了, ...

  9. ASP.NET 运行机制详解

    1.浏览器和服务器的交互原理 通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电脑上的一个 WEB服务器软件来接收处理, ...

  10. loadrunner11.0之IP欺骗

    一:设置虚拟ip地址 操作步骤: 1:添加ip地址 运行loadrunner---tools---IP wizard 2:选择create  new setting,点击"下一步" ...