机器人手眼标定(九点标定)

1. 简介

        工业生产中,视觉模块经常需要和机器人联动,相机拍照计算坐标并转换成机器人取料坐标后完成取放料。现在对整个标定流程进行讲解。这里主要讲的是眼在手外,和眼在手上是有区别的。

2.标定步骤

2.1 前期准备

        确定机械手的夹具平台水平和竖直方向上分别平行机器人的X和Y轴(例如将夹具推值机器人底座,用钢尺抵住底座,另一端和夹具垂直或平行),然后确定Z轴的工作高度和初始角度。

        调整相机,确保相机成像方正不倾斜,然后调整视野大小,调整焦距使成像清晰。

2.2 九点标定

        可以先贴一张A4纸在拍照位上,在相机视野范围内,移动机器人取九个位置(尽量覆盖全视野),做好标记点。

        拍照取图然后根据标定点算出九个标定点的像素坐标,对应九个机器人物理坐标(一般根据夹具尺寸换算成夹具的边顶角坐标)求出映射矩阵
        注意:实时机器人坐标是Z轴底部的坐标,但是我们在图像上计算像素坐标时,由于不好计算夹具上的Z轴中心点在图像上的坐标,所以会把这个点偏移到夹具的边顶角上测量像素坐标(使用标定锥的话就不需要,得到的就是图像坐标和法兰盘中心的映射关系),那么对应的机器人坐标也就要在原Z轴中心点坐标偏移夹具尺寸的一半(具体正负看实际坐标系的方向),也移到了夹具的边顶角(就是将法兰盘中心移动到之前夹具边顶角的坐标处,那后续图像坐标转换之后得到的就是法兰盘中心坐标)。两个平面所有的点坐标都符合这个映射矩阵关系。

### 手眼标定(Eye-in-Hand)方法概述 手眼标定是指确定相机坐标系相对于机器人末端执行器坐标系之间的变换关系的过程。对于eye-in-hand配置,摄像机安装在机器人的末端执行器上。 ### 使用Matlab实现手眼标定的具体过程 #### 准备工作 为了完成手眼标定,在实验前需准备带有已知图案的目标板以及能够读取该目标板位置姿态数据的摄像头。确保可以获取到一系列不同位姿下的图像及其对应的机械臂关节角度信息[^1]。 #### 数据采集阶段 通过移动机器人并记录多组不同的位形下所拍摄到的画面连同此时各轴的角度值作为输入样本集。每一对{image, joint angles}构成了后续算法处理的基础素材之一[^2]。 #### 计算相对运动矩阵 利用MATLAB Robotics System Toolbox中的`rigid3d`对象来表示刚体变换,并借助工具箱内建函数计算两套坐标体系间的关系——即求解旋转和平移向量组成的齐次转换矩阵T_cam_to_ee。此步骤涉及解析几何学原理的应用,具体可通过最小二乘法或其他优化策略寻找最优解使得误差平方和达到最小化程度。 ```matlab % 假设有n个观测点的数据存储于cell数组中 for i = 1:n % 获取第i个观测时刻的手部(EE)到基座(Base)的姿态变化 T_base_to_ee{i} = ...; % 同样地获得同一时间戳上的视觉传感器(Cam)至世界(World)坐标的映射 T_world_to_cam{i} = estimateWorldToCameraTransform(pointsImage{i}, pointsObject); end ``` #### 应用手眼约束方程 基于上述得到的一系列配对好的{T_base_to_ee,T_world_to_cam},应用经典的手眼标定公式X=AX'=BX'或Y=A'XB'(取决于实际应用场景),其中A代表从Base Frame 到 End Effector Frame 的变换;B是从 Camera Frame 转换回 World Coordinate System 的操作符;而未知数 X 或 Y 就是要找寻的那个固定不变但又至关重要的 Hand-Eye Calibration Matrix。 ```matlab [X,err] = handeye(T_base_to_ee, T_world_to_cam,'eyeinhand'); disp(['Calibration error: ', num2str(err)]); ``` #### 验证准确性 最后一步是对所得结果进行验证测试,通常会选取部分之前未参与训练的新样本再次重复整个流程看能否保持一致的结果,以此评估模型泛化能力的好坏。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值