机械臂的手眼标定 opencv实现

相机的手眼标定

背景:在机械手臂上安装相机就相当于给机器人安装上了眼睛,但是从相机坐标系怎么转换到基座标系呢?这个时候就需要用到机械手臂的标定。
如下图所示:
机械臂的手眼标定 opencv实现_第1张图片
上图描述了手眼校准问题,其中需要估计安装在机器人抓手(“手”)上的相机(“眼”)之间的转换。也就是标定出 gTc
首先将标定板放置到一个位置,相机拍摄标定板,通过单目或者双目标定可以得到从标定板的世界坐标系到相机坐标系的转换关系。
由于两次位姿从基坐标系到手部坐标的转换关系是已知的,这个时候最重要的目标就是求解从相机坐标系到手部坐标系的关系。整个过程可以由以下的齐次变换矩阵:
手部坐标系到基座标系的转换关系
机械臂的手眼标定 opencv实现_第2张图片
标定板世界坐标系到相机坐标系的齐次变换:
机械臂的手眼标定 opencv实现_第3张图片
手部坐标系到相机坐标系的齐次变换:
机械臂的手眼标定 opencv实现_第4张图片
所以从本质上来说就是求解AX=XB方程组:
机械臂的手眼标定 opencv实现_第5张图片
由此一来便可以求解出gTc。下面介绍opencv实现函数:

void cv::calibrateHandEye (InputArrayOfArrays R_gripper2base, 
		InputArrayOfArrays t_gripper2base, 
		InputArrayOfArrays R_target2cam, 
		InputArrayOfArrays t_target2cam, 
		OutputArray R_cam2gripper, 
		OutputArray t_cam2gripper, 
		HandEyeCalibrationMethod method = CALIB_HAND_EYE_TSAI )

机械臂的手眼标定 opencv实现_第6张图片参考文献:
【1】R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration
【2】F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group
【3】R. Horaud, F. Dornaika Hand-Eye Calibration
【4】N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration
【5】K. Daniilidis Hand-Eye Calibration Using Dual Quaternions

小结

此次主要记录一下手眼标定方法,如果后期有机会将把实际的代码和实验情况贴上,希望大家多多批评指正

你可能感兴趣的:(数字图像处理OpenCV)