相机标定之使用Kalibr工具箱

本文介绍如何使用Kalibr工具箱进行针孔模型相机标定。包括准备工作、具体步骤及注意事项,如正确设置tag间距避免标定失败,以及如何解读标定结果。

相机标定之使用Kalibr工具箱

1. 概述

简单介绍如何使用Kalibr工具箱进行针孔模型相机标定的步骤,供自己以后参考,同时希望给大家带来帮助。

2. 准备

  1. 提前准备好标签并打印出来,可以使用A4纸打印,然后粘贴在纸板上,注意粘贴时贴紧纸板,确保位于纸张上的点位于同一平面。官方提供了Aprilgrid棋盘格圆形板三种格式。本次标定使用April tag,它是一种AR tag,属于编码信息的棋盘格,详细的介绍见文末参考链接。
    在这里插入图片描述
  2. 保证包含相机图像的topic能够正常发布信息,使用rosbag命令提前录制好bag包,实际使用时需要设置bag包的路径,确保每张图片包含标签信息,并不断旋转移动标定板,保证采取到不同位置下的标定板信息。
  3. 确保已经配置好Kalibr工具箱。如果报错,可以参考
    在文件src/Kalibr/Schweizer-Messer/sm_python/python/sm/PlotCollection.py中第8行
from matplotlib.backends.backend_wxagg import NavigationToolbar2Wx as Toolbar

改为

from matplotlib.backends.backend_wx import NavigationToolbar2Wx as Toolbar

这样更改之后需要安装igraph

sudo add-apt-repository ppa:igraph/ppa
sudo apt-get update
sudo apt-get install python-igraph
  1. 运行Kalibr标定工具,他内部提供了多IMU标定相机IMU标定多相机标定的功能,这里使用多个相机标定命令实现对单个相机的标定。命令格式
kalibr_calibrate_cameras --bag [filename.bag] --topics [TOPIC_0 ... TOPIC_N] --models [MODEL_0 ... MODEL_N] --target [target.yaml]

3. 步骤

  1. 录制含有标定板图像的bag包,注意需要不断移动标定板。
  2. 运行Kalibr工具箱中多相机标定节点程序。仿照之前提到的命令格式
kalibr_calibrate_cameras --bag [filename.bag] --topics [TOPIC_0 ... TOPIC_N] --models [MODEL_0 ... MODEL_N] --target [target.yaml]

我们使用的最终命令

  • 使用的bag文件mdvncalib.bag,里面存储了含有标定板的图像
  • 使用标定板规格apriltag_6_6.yaml,可多种选择
  • 相机的畸变模型pinhole-radtan,其他模型还有omni-radtan
  • bag文件中相机发布图像的topic话题/mindvision_image/image_raw
kalibr_calibrate_cameras --target apriltag_6_6.yaml --bag mdvncalib.bag --models pinhole-radtan --topics /mindvision_image/image_raw
  • 对于标定板规格yaml文件,有下面
    在这里插入图片描述
  • 对于相机模型,有下面的可选参数
Camera models
Kalibr supports the following projection models:

pinhole camera model (pinhole)
(intrinsics vector: [fu fv pu pv])
omnidirectional camera model (omni)
(intrinsics vector: [xi fu fv pu pv])
double sphere camera model (ds)
(intrinsics vector: [xi alpha fu fv pu pv])
extended unified camera model (eucm)
(intrinsics vector: [alpha beta fu fv pu pv])
The intrinsics vector contains all parameters for the model:

fu, fv: focal-length
pu, pv: principal point
xi: mirror parameter (only omni)
xi, alpha: double sphere model parameters (only ds)
alpha, beta: extended unified model parameters (only eucm)
Distortion models
Kalibr supports the following distortion models:

radial-tangential (radtan)
(distortion_coeffs: [k1 k2 r1 r2])
equidistant (equi)
(distortion_coeffs: 
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值