机械臂的手眼标定 opencv实现

相机的手眼标定

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

在这里插入图片描述参考文献:
【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

小结

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

  • 11
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
Python 和 OpenCV(Open Source Computer Vision Library)结合常用于机器人视觉和机器臂应用中,包括手眼标定(Hand-Eye Calibration),这是一个关键步骤,用于同步机械臂末端执行器(如摄像头或传感器)和相机系统的位置。手眼标定有助于确保机械臂能准确地根据从摄像头捕获的图像来定位物体。 具体流程如下: 1. **安装依赖**:首先确保已安装 Python、OpenCV、NumPy 和相关库(如Scikit-image等)。 ```python pip install opencv-python numpy matplotlib ``` 2. **数据收集**:在实际环境中,让机械臂移动到固定位置,并在每个位置抓取一张目标点清晰的照片。这些照片将作为校准输入。 3. **特征检测**:使用 OpenCV 提供的关键点检测算法(如 SIFT, SURF 或 ORB)提取图像中的兴趣点。 ```python import cv2 orb = cv2.ORB_create() keypoints, descriptors = orb.detectAndCompute(image, None) ``` 4. **标记坐标**:为每个特征点标记真实世界的位置。这通常通过外部传感器(如激光测距仪或运动捕捉设备)完成。 5. **拍摄对应视图**:在相同的世界坐标系下,让机械臂模仿这些标记位置并再次拍照。 6. **匹配关键点**:通过比对两组图片的关键点描述符找到配对。 7. **拟合变换矩阵**:利用特征匹配计算出机械臂端部坐标与相机坐标之间的关系矩阵,通常是旋转和平移矩阵。 8. **验证标定结果**:在不同角度和姿态下重复上述步骤,检查校准是否稳定。 9. **保存和使用**:将校准参数存储起来,后续使用时可以通过读取参数直接调整机械臂的动作。 相关问题: 1. 手眼标定的具体应用场景有哪些? 2. 如何评估机械臂手眼标定的精度? 3. 在实际操作中如何处理手眼标定过程中可能出现的噪声或异常?
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值