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:验证:换位姿测精度,误差稳定即完成。

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

相关推荐
大熊背12 小时前
《Color constancy by characterization of illumination chromaticity》之色度色域最大化算法(一)
数码相机·算法·白平衡·色度色域
xwz小王子12 小时前
【通用世界模型】把机器人动作变成像素流!NVIDIA 提出 Hydra-0:跨人类、单臂与双臂统一预测和控制
数码相机·机器人
菩提树下的凡夫1 天前
激光振镜双目结构光3D相机丢点问题
数码相机·3d
YMWM_2 天前
查看realsense相机序列号脚本
开发语言·python·数码相机
视觉工程师07063 天前
工业相机选择CCD 还是 CMOS
数码相机·视觉检测
FLJwu3 天前
运动相机 ID 外观与壳体开模实战 02:壳体注塑缺陷|缩水、气泡、披风、熔接痕量产改善方案|20 年源头工厂量产经验
经验分享·数码相机·相机
高升说4 天前
多相机同步怎么选:硬件同步与软件同步的原理、对比与选型流程
人工智能·数码相机
明志数科4 天前
从300克Ego头环看第一人称数据采集趋势:设备轻量化之后,场景端壁垒在哪
数码相机·学习
FLJwu4 天前
运动相机 ID 外观与壳体开模实战 01:ID 造型、拔模角度、壁厚设计 OEM 量产避坑|20 年源头工厂量产经验
经验分享·数码相机·相机
qq_526099134 天前
视觉检测工控机丢帧、掉线、卡顿,分别是什么原因?按这张表查
数码相机·计算机视觉