只要照着这个流程做下来就行了。
当然首先要弄一个棋盘老液睁格做标定板,标定图片需要使用标定板在不同位置、不同角度、不同姿态下拍摄,最少需要3张,以埋空10~20张为宜。
ros单目相机标定为啥xy到不了满格1、相机标定第一步,准备一张标定板,打印出来下载
2、打开相机
利用usb_cam驱动 ,参考ros.wiki.usb_cam因为相机启动时自动检查矫正文件
3、打开矫正窗口
一般来说正常安装ros都是包含了camera_calibration,输入命令检查一下, 之后执行相机矫正py文件,从Damondback版本开始,ROS就支持慎禅使用多个标定板来进行标定了,如果你使用多个标定板进行标定,请输入复数个–size和–square参数来说明各个标定板的大小
4、采集样本数据
为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里:标定板出现在视野中的左边,右边,上边和下边,标定板既有倾斜的,也有水平的,离得近的远的都要有,最好保证所有的进度条都是绿色满格的 。如果没有的话检查你命令输入是否输入正确,例如:8x6,中间不能用 "*" ,是字母 "x",--size,--square前面是宽如尘两个"-",还要注意你的相机发出的话题是不是usb_cam/image_raw
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野上下左右中的倾斜位置。
5、计算矫正参数
点击CALIBRATE按钮,稍等1-2分钟,可以在命令窗中看到标定参数,点击COMMIT将结果保存到电橡液脑路径:/home/sun/.ros/camera_info/head_camera.yaml,再次启动相机时就不会有Camera Calibration文件找不到的警告了。
相机内参数(包括焦距、主点、畸变系数、扭曲因子)是由相机物理属性决定的。按道理如果不改变相机的物理属性,标定结果应该是不变的。
但是每次标定的结果为什么又会变化呢?
不外有两种原因:
1、相机标定过程中可能受收到很多外部物理因素(像差、散焦、传感器噪声、量化误差等)的影响。
2、所用算法的稳定性较差,当前在相机标定领域公认的健壮性较好的优化算誉败敏法枯饥仍然是bundle adjustment(光束平差法)。
可庆枝以从上述两个方面找找每次试验结果会差别很大的原因。
估计是算法的稳定性差的可能性大!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)