Kalibr标定单个相机全流程(超超超级详细)

本文是一篇技术分享,作者作为一个技术新手,记录了从下载VMware安装Ubuntu,到安装ROS,配置Kalibr,收集和处理数据,共享文件,以及打包成bag的过程。旨在激励读者坚持学习并实践技术项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:一些闲话


笔者写下这篇面向纯小白的文章的原因是因为笔者也是一个纯小白,想要记录一下自己接下来这段时间的点点滴滴,当作记录一下自己的成长。回顾我的大学两年,大部分时间都在彷徨犹豫选择中度过,没有真正沉下心去学习或者做些项目,借这个机会,我就以开始写博文的方式倒逼自己做些记录和坚持下去,也希望大家能坚持做困难但是有意义的事情。

一.下载VMware并且安装虚拟机

这个网上教程比较多,需要注意的是如果要运行Kalibr,内存得选择8G以上,因为后面如果要下载和配置Kalibr,内存过小会出现一些莫名其妙的错误。我下载的是20.04版本的ubuntu,所以后面的方式都基于这个版本,但是我看着好像是18.04安装和配置Kalibr的博文比较多,如果你也像我一样一开始就选择了20.04,那本篇大概会具有更多的参考价值。还有值得注意的是需要了解一些ubuntu的基本概念,有利于后续工作展开

安装Ubuntu推荐博文:安装Ubuntu

Ubuntu基本概念:Ubuntu入门

二.下载ros

值得注意的是,rosd版本和ubuntu是适配的,所以要选择相对应的版本。可以预先了解一下ros的基本概念和基本工作模式,但基本不了解也可以。推荐古月居的b站教程,或者随便找个ros的基本介绍博文看也可以。

下载ros推荐博文:ROS安装

(博主很早安了ros,当时什么都不知道,还是找淘宝安的,实在不行找淘宝,不丢人)

三.安装并且配置Kalibr

最最最关键的是要先看原文,原文讲述了所有你需要知道的东西,虽然仍然存在一些踩坑以及最大的问题-看不懂英文等,但是还是推荐先阅读原文,原文中看不懂的部分再结合博主的博文对他翻译,这是最优解。

看完原文就可以开始找下载的博文进行阅读了,在阅读完之后,还要下载python3等,这些都是我们安装的基础,这些csdn的文章也很多,笔者不再赘述。遇到命令错误的时候下载对应的东西就可以

下载Kalibr并且成功安装和配置困难就成功了一大步,笔者是根据两篇博文来回换着敲命令(任何一篇在我这里都没有单独成功),最后才成功把所有包都安装上。Kalibr下载博文1Kalibr下载博文2(命令都要敲在终端)

这里有个比较抽象的问题,一是可能之前设置的内存配置不够大,或者是网速等等问题,导致包一下子没有办法全部安装,然后就得重复地运行编译指令,他会慢慢地陆续成功;二是可能是有其他问题(笔者没有遇到),可以参考以下这个博文编译错误

四.收集数据

首先需要获取标定板,参考相对应的博文这篇文章中的准备部分。标定板的意思就是一块固定参数的板子,电脑通过传输给他的标准标定板参数和图像中标定板中的参数得到相机的内参等。最保险的肯定是去官网下载示例中的标定板,下载第一块April 6x6的pdf就可以(可能需要翻一下才能下载),然后按照原尺寸打出来贴在硬板子上。再用相机从各个角度拍照(需要30-50张不嫌多)注意要拍全

接下来到刚刚下载标定板的网站将对应April 6x6的yawl文件也下载一下。

五.建立共享文件夹

刚刚拍的照片和yawl文件还都在主机上,怎么把他转移到虚拟机,对笔者而言最简单的方法就是建立共享文件夹,可以参考以下博文共享文件夹的创建

建立后,将照片和yawl文件放入,就可以将主机文件传入虚拟机,这些文件在Other Location的Computer的mnt的hgfs里可以找到。

六.打包成bag

在找到共享文件夹后,就可以复制出其中的图像文件到指定的工作文件夹。笔者是复制到了Downloads下面新建的dataset-dir文件夹中新建的cam0文件夹中,然后再downloads文件夹中打开终端,输入指令:

source ~/kalibr_ws/devel/setup.bash //kalibr_ws就是前面教程让你创建的kalibr工作文件夹,有的博主是kalibr_workspace,我这里是kalibr_ws
rosrun kalibr kalibr_bagcreater --folder dataset-dir/. --output-bag awsome.bag

可以用以下指令看一下生成的awsome.bag里面有些什么

rosbag info awsome.bag

注意图片的命名需要按照指定的格式要有19位,可以尝试用以下博文的办法。不用管imu

改变图片名称

打包bag推荐博文:要钱的详细文章

简单文章

七.运行标定程序

运行标定程序还是先需要知道需要输入什么量,依旧是推荐先看原文,以下文章有详解四个输入量

1.bag文件

2.yawl文件(之前下载的,要复制到与bag一个文件夹)

3.相机模型文件,就是你所需要的内参的模板,针孔相机(手机)就选pinhole-radtan

4.topic,就是bag文件中相机发布图像的topic话题

八,得到结果

原文有对输出文件的详解

<think>好的,用户想了解Kalibr标定板的使用方法或参数说明。首先,我需要回忆一下Kalibr工具的相关知识。Kalibr是一个用于传感器标定的工具箱,常用于相机和IMU的联合标定。用户提到了引用中的内容,涉及标定步骤和命令,可能需要详细说明标定板的准备、参数配置以及标定流程。 首先,标定板类型。Kalibr支持AprilGrid和Checkerboard,用户示例中用了AprilGrid,需要解释这两种标定板的区别和选择依据。AprilGrid因为其独特的编码图案,能提供更准确的检测,特别是在遮挡情况下。 接下来,标定板的参数配置。用户提供的命令中有april_6x6_50x50cm_A4.yaml,需要说明各个参数的意义,比如tag大小、间隔、行数列数等。这些参数必须与实际打印的标定板一致,否则会导致标定错误。 然后是标定步骤。根据引用中的命令,用户需要准备标定板的YAML文件,录制数据包,运行kalibr_calibrate_cameras命令,指定模型、话题等。需要分步骤解释每个参数的作用,例如--target指定标定板配置,--bag是数据包,--models是相机模型,--topics对应图像话题。 还需要注意数据录制的注意事项,比如缓慢移动标定板以覆盖不同角度和位置,避免运动模糊。此外,标定后的验证方法,如重投影误差分析,引用中提到的calibration validator工具,需要说明如何解读结果,误差小于某个阈值(如0.2像素)才算合格。 用户可能遇到的问题包括标定板参数错误、图像话题未正确指定、数据录制质量差等,需要给出常见问题解答,比如检查YAML文件与实际标定板是否匹配,确保话题名称正确,数据包含足够多视角等。 最后,生成相关问题,帮助用户进一步了解标定失败处理、不同标定板比较、标定结果评估等。确保回答覆盖用户可能的需求,并引导他们深入学习和解决问题。</think>### Kalibr标定板使用教程及参数说明 Kalibr是机器人领域中广泛使用的多传感器标定工具,支持相机、IMU、轮式里程计等传感器的联合标定[^1]。其标定板主要采用AprilGrid或Checkerboard两种类型,以下是详细说明: --- #### 一、标定板类型选择 1. **AprilGrid标定板** - 通过ArUco标记组成的棋盘格,每个标记具有唯一编码 - 优点:鲁棒性强,允许部分遮挡 - 示例配置文件名:`april_6x6_50x50cm_A4.yaml` - 关键参数: ```yaml tagCols: 6 # 列方向标记数量 tagRows: 6 # 行方向标记数量 tagSize: 0.088 # 单个标记边长(米) tagSpacing: 0.3 # 标记间距比例(相对于边长) ``` 2. **Checkerboard标定板** - 传统黑白棋盘格 - 优点:生成简单,无需编码 - 参数示例: ```yaml target_type: checkerboard targetCols: 8 # 内角点列数 targetRows: 6 # 内角点行数 rowSpacingMeters: 0.06 # 行间距(米) colSpacingMeters: 0.06 # 列间距(米) ``` --- #### 二、标定流程步骤 1. **准备标定板YAML文件** - 根据实际标定板尺寸修改参数 - 确保打印精度:建议使用专业印刷设备,误差需小于0.1mm 2. **数据采集要求** - 相机需从多个角度观测标定板(建议覆盖80%图像区域) - 运动轨迹应包含旋转和平移组合 - 图像清晰无模糊,建议使用`rosbag record`录制数据[^2] 3. **执行标定命令** ```bash kalibr_calibrate_cameras \ --target ../Aprilgrid/april_6x6_50x50cm_A4.yaml \ --bag ../multicameras_calibration.bag \ --models pinhole-equi \ # 相机模型选择 --topics /camera/image_raw \ --bag-from-to 10 100 \ # 使用bag文件中10-100秒的数据 --show-extraction # 显示特征点检测结果 ``` 4. **参数说明** | 参数 | 说明 | |---|---| | `--models` | 相机模型:pinhole-radtan(针孔+径向切向畸变)、pinhole-equi(等距投影模型)| | `--topics` | 图像话题名称,多相机需并列指定 | | `--bag-from-to` | 限制处理数据时间段 | | `--approx-sync` | 多相机时间同步阈值(默认0.02秒)| --- #### 三、标定结果验证 1. **重投影误差分析** - 合格标准:平均误差 < 0.2像素 - 输出结果包含误差统计: ```text Reprojection error statistics: mean: 0.12 px median: 0.10 px std: 0.05 px ``` 2. **验证工具使用** ```bash kalibr_camera_validator \ --cam camchain.yaml \ # 标定结果文件 --target target.yaml # 标定板配置文件 ``` --- #### 四、常见问题处理 1. **特征点检测失败** - 检查标定板YAML参数与实际尺寸是否一致 - 确保照明均匀,避免反光/阴影 2. **时间同步问题** - 多传感器需保证时间戳同步 - 可使用`--approx-sync 0.01`缩小时间同步阈值 3. **标定结果发散** - 增加数据采集时的运动多样性 - 检查相机曝光参数是否过曝/欠曝 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值