这里说的9点标定是指的2D平面,不涉及3D的手眼标定范畴
9点标定分相机固定还是相机移动两种情况(主要是区分标定时相机位置是否发生移动)

1.相机固定

1.相机固定(假设相机所在机械手坐标R_base),那就意味着机械手带目标点移动9个位置,通过相机一一拍照,此刻记录有对应的9组坐标(机械手移动的9个位置肯定必须要在相机视野内)
2.像素坐标P1,P2…P9
3.机械手坐标R1,R2…R9
4.此时可以直接计算一个2*3的仿射矩阵H

-后续实际使用时,根据目标点在相机的坐标P,可以直接计算得到R,引导机械手直接抓取目标点即可。
-如果后续相机位置发生移动,相机位置变为R_base‘,那么通过H换算出来的坐标R+(R_base’-R_base)就是目标点的真实机械手坐标。

2.相机移动

这里的相机移动指的是在标定过程中,目标点不动,相机跟随机械手进行移动拍摄
此种情况就会涉及到相机坐标系和机械手坐标系的区别
相机坐标系:相机所在的安装位置的坐标系,标定过程它位置会发生移动改变。
机械手坐标系:机械手可以抓取目标点的坐标系,它基于世界坐标,是我们实际所需要得到的坐标。
标定过程:
1.放置一个目标点在工作平台,此刻机械手可以正确抓取的机械手坐标为R_robot。
2.相机移动9个位置进行拍摄得到9个像素坐标P1,P2…P9
3.此时我们需要想象一个虚拟的相机坐标系,将第5个点作为后续实际使用时的相机拍摄位置R_base
4.相机移动时我们已知每次的移动mm距离d,构造一个以第5点为(0,0),左上点为(- d, - d)的9组坐标
5.此时可以计算一个2*3的仿射矩阵

-后续实际使用时,相机在R_base位置拍摄,根据目标点在相机的坐标P,计算得到的相机坐标系坐标R,换算为机械手可直接抓取目标点的坐标为(0 - R)+R_robot
-如果后续相机拍摄位置发生移动,相机位置变为R_base’,那么目标点的真实机械手坐标为(0 - R)+R_robot+(R_base’ - R_base)

-我这是笨人笨办法,可能存在流程简单的操作。
-如果觉得有帮助的话,就点点赞吧

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐