使用kalibr标定时要注意什么

本文主要介绍"使用kalibr标定时要注意什么",希望能够解决您遇到有关问题,下面我们一起来看这篇 "使用kalibr标定时要注意什么" 文章。

1. 模型的选择

这里主要是总结在各种issue中大家提出的使用kalibr中模型选择的问题,以及各种模型之间利弊;

pinhole-radtan: 最常见的针孔模型+布朗畸变模型, 适用于大多数的角度小于120的相机, 其中畸变参数包含了径向畸变k1,k2和切向畸变p1,p2; 如果相机的畸变情况不是很严重,这个模型基本都可以; 比如我的DOV为150的相机, 也可以用这个且去畸变效果很好;

pinhole-equi:针孔模型+等距畸变模型,也就是KB模型所需要选择的类型,该模型的使用范围也很广,大部分的鱼眼镜头也可以,注意8参数的KB模型的畸变参数为k1,k2,k3,k4,虽然也是四个数,但与前一个模型不同的是,这里只有径向畸变的参数,而没有切向畸变tangential distortion,投影时对应的公式也不同;同时这也是opencv中cv::fisheye使用的模型;

Omni-radtan: 适用于大部分的鱼眼镜头;

ds/eucm: 也是使用于鱼眼镜头,参数更少,更紧凑.但是同样也没有切向畸变;这两个模型的好处就是在精度和速度之间有很好的平衡,比较适用于实时的,基于优化的slam;

对于角度很大的鱼眼相机,如180, 210等,即使模型合适, kalibr也存在初始化错误的可能,因此可以多采集几个ros包试一下;

如果处在选模型阶段,可以先从KB模型开始, 也就是先使用pinhole-equi模型标定一下,检查去畸变效果;

同时需要注意的是虽然KB模型和pinhole-fov模型从理论上可以适用于大于180的鱼眼相机,但是kalibr的中的测试都是基于针孔模型, 结果显示这两个模型对大于180度的相机的表现效果并不好; 

角度>180其实可以使用eucm-none进行标定;

2. 标定时注意事项:

采集数据集时尽量保证标定板出现在相机图像的各个角度和各个角落,否则标定结果可信度不高, 对畸变大的相机有可能还会出现初始化错误等提示;

kalibr推荐的帧率为4HZ, 这里有一个降帧的命令:

rosrun topic_tools throttle messages old_topic 4.0 new_topic

用这个命令可以将原本的rosbag中的old_topic降帧成4hz的new_topic, 然后边rosbag play, 边rosbag record new_topic 即可;

关于 "使用kalibr标定时要注意什么" 就介绍到这。希望大家多多支持编程宝库

如何快速移植软件开发套件SDK:本文主要介绍"怎么快速移植软件开发套件SDK",希望能够解决您遇到有关问题,下面我们一起来看这篇 "怎么快速移植软件开发套件SDK" 文章。最近在开发的一个项目因为是要用在车中,我们所选的芯片NXP的KEAZ ...