- github地址:https://github.com/ethz-asl/kalibr
- Wiki文档:https://github.com/ethz-asl/kalibr/wiki/camera-imu-calibration
- 项目的编译:https://blog.csdn.net/weixin_43846627/article/details/115483883
一、相机标定(仅适用于双目及以上相机)
1.准备标定板
Kalibr官方给出了多种标定板的样式,也集成了标定板生成的工具。
标定板生成:
kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]
可以通过此命令来规定标定板中标记的行列数,每一个小标记的大小。
![标定板参数含义](https://img-blog.csdnimg.cn/img_convert/d6b877c244893a7a35588ec0af43ae8f.png)
在标定板准备好之后准备一个标定板对应的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.数据包的录制
包含各个轴的运动即可。在录制图像topic的同时录制imu的topic,之后imu和相机标定时不需要再次录制。
3.运行
kalibr_calibrate_cameras --bag [filename.bag] --topics [TOPIC_0 ... TOPIC_N] --models [MODEL_0 ... MODEL_N] --target [target.yaml]
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])
畸变模型
- radial-tangential (radtan):(distortion_coeffs: [k1 k2 r1 r2])
- equidistant (equi):(distortion_coeffs: [k1 k2 k3 k4])
- fov (fov):(distortion_coeffs: [w])
- none (none):(distortion_coeffs: [])
二、相机和IMU的标定
1.标定前准备
标定板、标定板的参数信息、相机的内参、IMU的内参、数据包
数据包录制时要仅可能的激活IMU的所有轴。
2.运行
kalibr_calibrate_imu_camera --bag [filename.bag] --cam [camchain.yaml] --imu [imu.yaml] --target [target.yaml]
之后就等待标定结果就可以了。(PS:运行时间非常非常久,终端没反应不是卡了而是在非常缓慢的标定计算)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)