相机标定:kalibr标定工具箱使用总结
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标定工具箱使用总结的更多相关文章
- VIO系统的IMU与相机时间偏差标定
视觉里程计(VIO)作为一种空间定位方法,广泛应用于VR/AR.无人驾驶和移动机器人,比如近年火热的苹果 AR-Kit和谷歌AR-Core都使用了VIO技术进行空间定位.通常,VIO系统忽略IMU ...
- 基于OpenCV单目相机的快速标定--源码、工程、实现过程
相机的标定是所有人走进视觉世界需要做的第一件事,辣么多的视觉标定原理解释你可以随便在网上找到,这里只讲到底如何去实现,也算是给刚入门的朋友做个简单的分享. 1.单目相机标定的工程源码 首先请到同性交友 ...
- 张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)
使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的 ...
- 【双目备课】《学习OpenCV第18章》相机模型与标定整编
一.相机模型 针孔模型.在这个简单模型中,想象光线是从场景或一个很远的物体发射过来的,但只有一条光线从该场景中的任意特定点进入针孔. 我们将这个图像进行抽象,就能够得到这样的结果: 其中,f为像到针孔 ...
- 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)
相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...
- 相机标定问题-Matlab & Py-Opencv
一.相机标定基本理论 1.相机成像系统介绍 图中总共有4个坐标系: 图像坐标系:Op 坐标表示方法(u,v) Unit:Dots(个) 成像坐标系:Oi ...
- 相机标定过程(opencv) + matlab参数导入opencv + matlab标定和矫正
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 辛苦原创所得,转载请注明出处 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- OpenCV相机标定和姿态更新
原帖地址: http://blog.csdn.net/aptx704610875/article/details/48914043 http://blog.csdn.net/aptx704610875 ...
- SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...
随机推荐
- Visual Studio 与 Matlab实现混合编程
环境: Win10 vs2010 Matlab2015 里面有很多选做的内容,其中2.3必做 1.Matlab环境设置: (选做)我没有做这步,因为打mbuild -setup指令不识别,缺少SD ...
- Linux驱动技术(八) _并发控制技术
为了实现对临界资源的有效管理,应用层的程序有原子变量,条件变量,信号量来控制并发,同样的问题也存在与驱动开发中,比如一个驱动同时被多个应用层程序调用,此时驱动中的全局变量会同时属于多个应用层进程的进程 ...
- rabbitmq.config配置文件
%% -*- mode: erlang -*-%% -------------------------------------------------------------------------- ...
- vs2010入门程序和出错问题解决方案
本篇文章分两个部分: 第一,如何建立一个Helloword工程 1.打开Vs2010新建项目 2.选择Visual C++>>Win32>>Win32控制台应用程序,输入项目名 ...
- Asp.net mvc 知多少(七)
本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...
- SpringBoot实践 - SpringBoot+MySql+Redis
大家都知道redis的强大之处,在目前应用上也是大显神威. 先说说他的优点: 1 读写性能优异 2 支持数据持久化,支持AOF日志和RDB快照两种持久化方式 3 支持主从复制,主机会自动将数据同步到从 ...
- POJ 2914 Minimum Cut Stoer Wagner 算法 无向图最小割
POJ 2914 题意:给定一个无向图 小于500节点,和边的权值,求最小的代价将图拆为两个联通分量. Stoer Wagner算法: (1)用类似prim算法的方法求"最大生成树" ...
- web开发之Servlet 一
因为最近在研究公司一套新的框架,发现这套框架的底层是对Struts2,Spring 封装后的WEB应用框架,而我发现如果仅仅是利用这个框架开发,确实很容易快速上手,做业务来说是没有问题的,但我觉得如果 ...
- 对本地Solr服务器添加IK中文分词器实现全文检索功能
在上一篇随笔中我们提到schema.xml中<field/>元素标签的配置,该标签中有四个属性,分别是name.type.indexed与stored,这篇随笔将讲述通过设置type属性的 ...
- Angular.js之指令学习笔记
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...