手眼校准 OpenCV

Eye-In-Hand Calibration OpenCV

我有一个设置,其中 (2D) 相机安装在机器人手臂的末端执行器上 - 类似于 OpenCV documentation

我想校准相机并找到从相机到末端执行器的转换。 我已经使用这个 OpenCV 指南 Camera Calibration 校准了相机,其中有一个棋盘格,其中获得了未失真的图像。

我的问题是找到从相机到末端执行器的转换。我可以看到 OpenCV 有一个函数 calibrateHandEye(),据推测应该可以实现这一点。我已经有了“gripper2base”向量,但缺少“target2cam”向量。这应该基于棋盘方块的大小还是我缺少什么? 任何正确方向的指导将不胜感激。

你离答案很近了。

是的,它是根据棋盘的大小来计算的。但是这个函数不是直接获取那些参数和图像,而是使用 target2cam。如何获得target2cam?只需简单地将您的机器人手臂移动到棋盘上方,以便相机可以看到棋盘并拍照。从棋盘和相机内在的图片,你可以找到target2cam。从棋盘计算extrinsic在opencv中已经给出了。

以不同的机器人姿势重复几次并收集多个 target2cam。把它们放在 calibrateHandEye() 中,你会得到你需要的。