点击下方卡片,关注「计算机视觉工坊」公众号
选择星标,干货第一时间送达
来源:计算机视觉工坊
「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
一 手眼标定原理和术语简介
1.1 基本概念
-
手眼标定:“手”即机器人,“眼”即3D相机,手眼标定是校准“手”与“眼”之间的空间关系,即确定相机坐标系与机器人末端坐标系之间的刚性变换矩阵(包含旋转和平移),以便将视觉信息准确转化为机器人动作,从而实现准确的视觉引导抓取放置。
1.2 标定方法分类
根据相机安装位置的不同,手眼标定分为两种:
-
Eye-in-Hand(眼在手上):相机固定在机器人末端,随机械臂移动,适用于近距离高精度场景。 -
Eye-to-Hand(眼在手外):相机固定在工作空间中,不随机械臂移动,适用于大范围工作场景。
推荐两款相机:
1.3 标定原理
-
利用标定板在不同位姿下的图像坐标数据,结合机器人示教器记录的坐标,求解相机相对于机械臂基座坐标系的位姿。
1.4 标定术语
-
相机内参:相机内参是相机内部的基本参数,包括镜头焦距、主点坐标、畸变系数等,反映了相机的内部成像特性。 -
相机外参:相机外参反映了相机在外部空间中的位置和朝向,包括旋转矩阵和平移向量两个参数。 -
相机精度:相机的精度是指一个像素表示实际物体的大小,精度与相机的视野和分辨率有关,值越小精度越高。
-
标定方式:采集标定板样本的方式,分为随机姿态采样标定和针尖工具戳点标定,都属于手动标定。 -
点云误差(平均距离):表示点云波动,值越小,说明点云波动越小。 -
重投影像素误差:表示相机内参畸变系数,若重投影像素误差大于0.1,说明相机内参畸变系数过大。
1.5 手眼标定的流程
-
标定前准备:为手眼标定准备所需的物料和条件; -
标定信息配置:根据相机安装方式、标定方式等选择手眼标定配置; -
标定前检查:检查机器人、标定板等是否完成安装并满足标定要求; -
采集样本:拍照采集标定板样本; -
标定结果检查与分析:对结果进行检查和分析,判断标定精度是否满足实际需求; -
选择标定配置:为作业场景选择相应的标定配置。
二 眼在手上标定过程
-
眼在手上(EyeInHand):相机固定安装在机械臂的末端工具上,随着机械臂的运动而运动,相机相对于机器人末端法兰是固定的,标定板相对于机器人基座是固定的。
相机固定安装在机械臂的末端工具上,机器人类型为三轴机器人,标定流程请参照眼在手上三轴机器人标定。
相机固定安装在机械臂的末端工具上,机器人类型为四轴机器人,标定流程请参照眼在手上四轴机器人标定。
相机固定安装在机械臂的末端工具上,机器人类型为六轴机器人,标定流程请参照眼在手上六轴机器人标定。
三 眼在手外标定过程
-
眼在手外(EyeToHand):相机固定安装在机械臂的外部,不随机械臂运动而运动,相机相对于机器人基座是固定的,标定板相对于机器人末端法兰是固定的。
相机固定安装在机械臂的外部,机器人类型为三轴机器人,标定流程请参照眼在手外三轴机器人标定。
相机固定安装在机械臂的外部,机器人类型为四轴机器人,标定流程请参照眼在手外四轴机器人标定。
相机固定安装在机械臂的外部,机器人类型为六轴机器人,标定流程请参照眼在手外六轴机器人标定。
四 自动标定过程
自动标定需要配合标准的机械臂程序,机械臂烧录流程请参考机器人标准程序文档。
操作流程请参考随机姿态自动采样。
五 标定常见问题与解决方案
-
标定样本接近问题;
多数情况是标定板固定套件不合适,移动空间受限,在添加4~5个样本后,后续样本极难添加,1.7.3版本后可在后端解除样本限制。
默认配置路径:.../extra_config/frozen_config.json 步骤如下:
-
global_config.algo_param增加参数calibration-check_sample【标定-函数名】
{
"global_config": {
"algo_param": { "calibration-check_sample": {"min_angle_diff":0.0}}
},
"pipeline_config": {}
}
}
-
标定误差过大。
当出现标定结果误差几十明显错误时候,注意标定过程中机械臂发送数据,可能是角度弧度问题,或者欧拉角选择错误。样本添加时,多同心圆只识别到标定板上面部分圆心,点云误差或是重投影误差显示为0。机械臂添加样本时候尽量避开接近奇异点的样本。
-
标定校验结果正常,但是实际走点位不对。
原因分析:
-
实际走点使用的工具坐标系方向与抓取点设置的坐标系方向不一致。 -
眼在手上标定时选用的工具坐标系与拍照获取当前位置使用的坐标系不一致。 -
使用用户坐标系标定,实际切换成基座标系走点位。 -
机械臂系统差异,已知的纳博特和宝元系统个别机型标定后XYZ是正常的,但是rz需正负取反。
解决方案: 标定过程中一定要注意机械臂的坐标系,通常机械臂端参考坐标系为基座标系,工具坐标系选择默认法兰坐标。在使用用户坐标系标定时候,一定要将示教器切换到对应用户坐标系,比对发送数据是否基于当前的用户坐标系。
-
左手坐标系标定。
左手坐标系标定时候需要将输入的xyz值的某一项乘以-1作为样本的输入坐标值。视觉计算后的抓取点在xyz选择的这一项对应乘-1做为最终的输出抓取点发送到机械臂。
附录
联系方式

