单目相机使用kalibr标定全流程

相机4Hz下使用标定板录取bag包

(可以预先调整相机各项参数如曝光频率等)
(参数在哪里找,我是从驱动相机的launch文件里面找到对应的yaml配置文件,修改对应的yaml配置文件相应的代码就可以改图片大小曝光频率等参数)

#先开相机,然后
rosbag record /topic 

(这里的topic是相机话题,可以先打开相机看一下话题名称再录制)

rostopic list #列出当下所有topic

然后开始采集标定数据
采集单目标定数据时,注意:
1.标定板的位姿尽量丰富一些,让tag尽量均匀分布在图像里
2.将相机视野划为9宫格,在每个宫格里进行【正视、上翻、下翻、左翻、右翻】五种图像帧

下载编译kalibr

mkdir -p Kalibr_ws/src
cd Kalibr_ws/src
git clone --recursive https://github.com/ori-drs/kalibr

(网络不好可以预先下载拷贝过去然后解压)
然后回到kalibr_ws

catkin_make(catkin build -DCMAKE_BUILD_TYPE=Release -j4)

等待大约10分钟
(中间可能会报错缺少库,根据报错下载对应的库·再重新build)

将录好的bag包和标定板参数配置文件 XX.yaml放置在Kalibr_ws文件夹下

source devel/setup.bash
rosrun kalibr kalibr_calibrate_cameras --bag 1.bag --topics /HKRCams/Cam0 --models pinhole-radtan --target april_6x6_max.yaml
#checkboard 文件直接下载对应的或者直接写一个yaml文件
target_type: 'checkerboard' 
targetCols: 11                  
targetRows: 8                  
colSpacingMeters: 0.025               
rowSpacingMeters: 0.025  

 –bag包名 –topics话题名 --models 采用什么相机模型 –traget标定板参数
(需要根据实际进行修改)

     pinhole-fov: 针孔相机模型 + 视场(FOV)畸变模型,适合广角镜头。
     pinhole-radtan:径向和切向畸变模型(常见普通镜头)。
     omni-none: 全向相机无畸变。

校准报告结果(参考)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

校准报告分析总结(参考)

1. 相机系统参数

 相机模型:DistortedPinholeCameraGeometry
     使用带有畸变的针孔模型
 畸变参数:
     [-0.0605, 0.0834, 0.0002, -0.0002],标准差较小,表明畸变估计稳定。
     推测为径向畸变(k1, k2)和切向畸变(p1, p2)的组合(与pinhole-radtan模型一致)。
 内参(投影参数):
     [fx=1276.74, fy=1277.02, cx=649.80, cy=519.71],主点接近图像中心 (假设图像分辨率      为1280x1024),符合预期。
 重投影误差:
     均值接近零,标准差约0.2像素,校准精度较高,属于优秀范围(通常 <0.5像素即可接
     受)。

2. 标定板配置

 类型:棋盘格(checkerboard),8行×11列,方格尺寸0.025米。

3. 位姿估计与误差分析

 位姿数据误差(第二页):
 极坐标误差(第三页):
     o误差随极角(0°~20°)增大略有上升,但整体保持在0.8像素以内。
     o高频区域(如极角>15°)误差稍高,可能与镜头边缘畸变补偿不足有关。
 方位角误差(第四页):
     o误差在-100°~100°范围内分布均匀,无明显方向性偏差,表明校准模型对全方位角适应良好。

4. 重投影误差与异常点

 误差分布(第五页):
     oX/Y方向误差集中在±0.5像素内,仅少数点超出±1.0像素(可能是异常点)。
     o图像索引(0~30)的误差趋势平稳,未出现系统性漂移。
 异常点(第六页):
     o部分角点被移除(图中散点),可能由于运动模糊、标定板遮挡或检测错误导致。
     o异常点数量较少,对整体校准影响有限。

<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. **标定结果发散** - 增加数据采集时的运动多样性 - 检查相机曝光参数是否过曝/欠曝 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值