焊接机器人基于二维标定模板的双目摄像机标定方法步骤总结
Step1:将二维标定模板放在实验平台的不同位置πj(j=1,2 ...., N),用左右摄像机对不同位置的标定模板拍摄图片,提取二维图像中的角点并记录坐标值。
Step2:分别在左右摄像机图像坐标系的中心点附近寻找角点,并找到其在二维平面模板上的对应点,记录下对应点在基坐标系下的坐标,计算转换矩阵@@@,根据转换矩阵@@@计算摄像机的内部参数和外部参数〔Ri Ti]。
Step3:对上述摄像机内外参数进行非线性优化,使用Levenberg-Marquarat算法对式(3-24)的目标代价函数进行参数优化,使得R满足正交性及F取得最小值。
Step4:根据左右摄像机计算的外部参数[R1 T1]和[R2 T2]以及式(3-23)计算它们之间的相对位置关系[R T]。
仿真实验
(1)为了验证算法的有效性,实验在Intel Core i5 CPU , 2.8GHz主频,4G内存、Windows 2007操作系统平台下进行,采用的编程环境是Matlab R2010a,利用Matlab平台建立双目仿真摄像机以及仿真的二维标定模板。
仿真实验中将左右摄像机的分辨率设置为640x480,将仿真摄像机的内部参数设置为同时将左右摄像机在同一平面内水平放置,距离间隔60cm,根据二维标定模板个数的要求,构建6个7x9网格作为模板,将标定模板每个网格的交点作为特征角点,设定标定模板到仿真摄像机的距离为300cm左右,建立摄像机坐标系和基坐标系,计算出左右摄像机坐标系的转换矩阵[R T]。
根据上述设定的左右摄像机与标定模板的各个参数,绘制双目摄像机与二维标定模板的仿直示意图,如图3.6所示。
对于二维标定模板中的角点,根据式(3-6)计算出它们在像素坐标系下的坐标,同时为了使实验具有真实性,在仿真过程中加入噪声的影响,噪声由0.1像素均匀增加到1.0个像素,同时对每一副加入噪声的标定模板独立进行200次的仿真实验,将实验得到的结果同给定的摄像机内部参数进行比较,绘制误差曲线如图3.7所示。
由图3.7可以看出,随着噪声信号的加强,摄像机内部参数的标定值与实际值误差越来越来,但是总体误差比例相对较小,证明了本算法的可行性。
在得到线性摄像机模型的内部参数后,利用非线性优化算法进行优化,得到新的误差参数曲线如图3.8所示。
由图3.8可以看出,经过非线性优化后,摄像机内部参数的误差比例明显下降,标定结果更加准确。
(2)本文使用制作的二维标定模板对实际的Canon PowerShot A560摄像机进行标定,两部摄像机平行放置,同时采集二维标定模板的左右图像,采集图像的分辨率设置为640x480,根据拍摄的图像和本文的算法计算摄像机的内外参数。具体过程如下:
1.二维标定模板的制作:在标准的A4纸上画出黑白相间的网格,其大小为9x11,每个网格的长宽分别时2.6cm x 2.6cm,将其贴在平面模板上。
2.两台摄像机平行放置,将二维标定模板摆在不同的位置,用左右摄像机同时采集图像,如图3.9,3.10所示,每台相机拍摄了15副照片。
3.根据左右相机拍摄的二维标定模板的照片,计算出摄像机的内外参数,并进行非线性优化。
为了减少镜头畸变和噪声等原因对实验造成的影响,在进行标定实验时先根据本文的标定算法计算摄像机的内参数和外参数,然后利用Levenberg-Marquarat算法进行非线性优化,将经过优化后的参数作为最后的结果。具体结果如表3.1所示。
焊接机器人由表3.1可以看出,经过非线性优化对的影响较小,对
的优化结果较明显。