3D相机眼在手上的标定方法

浙江大学校长马琰铭:高等教育不能只"喂知识 ",AI时代要培养"**会提问,敢创造"**的人。

眼在手上就是相机装在机械手末端,随机械手一起动。目的是根据3D相机的数据求接触目标的3D坐标,通过标定的转换矩阵,求解出机械手的抓取坐标。

1、涉及的坐标系关系

如下图所示

机器人基坐标系 Base:机器人底座原点;

法兰坐标系 arm:机械手末端法兰;

相机坐标系 Cam:装在法兰上,和法兰刚性连接;

工具末端坐标系tool:显然机械臂在工作过程中,机械臂末端会搭载工具,而我们往往希望工具移动到某个位置,而不是机械臂末端运动到某个位置,这时我们就需要为工具建立一个它自己的坐标系,也就是工具末端坐标系。

手眼矩阵 HCamFlange​:固定不变(一次标定终身用);

工件位姿 HObjCam​:相机拍到的圆柱位姿。

如上图是一个机械臂,在关节末端附近安装了摄像头, 并搭配了机械夹爪作为工具

机械臂手眼标定就是要找出相机坐标系到末端关节坐标系的转换关系。

2、相机安装及标定要求

3D 相机 固定在机械手末端法兰,相机朝下 / 斜朝下拍摄要抓取的目标。

标定板固定不动,移动手眼在不同姿态,获取图像数据和末端关节的位姿。

3、标定工作原理

眼在手上(Eye-in-Hand)3D 相机标定,如下图所示,核心是用固定标定板 + 少量位姿 + 成熟求解器,快速算出相机到机械臂末端的固定变换矩阵。

首先将相机固连在机械臂末端,根据方程:A·X = X·B

A两次运动末端相对位姿(已知)

B两次运动相机相对标定板位姿(已知)

X待求手眼矩阵(相机到末端)

关系推到可参考https://blog.csdn.net/leo0308/article/details/141498200?spm=1011.2415.3001.5331

则可以得到物体在基坐标系下的位姿:

标定时, 我们要保持物体位置不变, 机械臂基座不动,那么Posebase就是不变的。通过移动机械臂到N(为了保证标定效果, N一般取10~20)个不同位姿, 那么就得到了N个位姿变换关系:

机器人基座的位姿是固定不变的,这个关系是我们能进行标定的核心。

即可得到经典的AX=XB,其中A和B是已知的, 求解X。 这个问题的求解方法有很多。opencv中也集成了响应的方法可以直接求解。

4、手眼标定步骤

step1:准备好一张棋盘格标定板, 放置在一个平整的工作面上, 保证机械臂的摄像头可以清晰地看到这个标定板。机械臂运动:带动相机到**8--12 个不同位姿。**保持标定板不动, 机械臂的基座不动,转动机械臂到任意位姿, 记录下当前机械臂的位姿,并保存当前摄像头拍摄的标定板图片。 重复这个过程10 ~20次。

注意:姿态差异大,避免共线、共面且标定板始终在视野内。

step2:数据同步:每位姿记录机器人的末端 6D 位姿、保存标定板图像和点云数据。

step3:求解:用算法解算 X=T_末端→相机;重投影误差≤0.1mm为合格。

step4:验证:换位姿测精度,误差稳定即完成。

注意:相机一定固定紧,不能有松动、晃动的情形,否则影响测量精度。

相关推荐
亨得利先生2 小时前
户外双目3D相机哪家好?SICK Visionary 系列户外选型指南与 Visionary-B Two 分析
数码相机·相机·户外相机·户外3d相机·sick
格林威1 天前
C#高位深相机图像保存:12位16位图像保存方案,OpenCvSharp和Halcon实现
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
CoderIsArt2 天前
基于Halcon的T恤印花缺陷检测程序
人工智能·数码相机·计算机视觉
高升说2 天前
双目立体视觉:视差测距为何离不开散斑
数码相机
安之眼Angleyes2 天前
运动相机的“盲拍”困局与AX10的解法:AR实时预览+AI双引擎,让所见即所得
人工智能·数码相机·ar
高升说3 天前
光与影的邂逅-09-太亮的地方
数码相机·深度相机
高升说3 天前
光与影的邂逅-08-丢失的光
数码相机·深度相机
CVer儿4 天前
ras转为lps坐标系
数码相机
恒锐丰小瑞4 天前
率能SS6810R 40V/1A/双通道H桥驱动芯片,PWM电流控制与混合衰减模式(eTSSOP20),用于POS打印机/安防相机/机器人
单片机·嵌入式硬件·数码相机·机器人
sltin5 天前
需求到落地:我如何在微信小程序里实现证件照换底、隐私打码与水印相机
数码相机·微信小程序·小程序