Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 手眼校准OpenCV_Python_Opencv_Camera Calibration_Robotics - Fatal编程技术网

Python 手眼校准OpenCV

Python 手眼校准OpenCV,python,opencv,camera-calibration,robotics,Python,Opencv,Camera Calibration,Robotics,我有一个设置,其中(2D)摄像头安装在机器人手臂的末端执行器上-类似于OpenCV: 我想校准相机并找到从相机到末端效应器的变换。 我已经使用这个OpenCV指南校准了相机,并在棋盘上获得了未失真的图像 我的问题是如何找到从摄影机到末端效应器的转换。我可以看到OpenCV有一个函数,应该可以实现这一点。我已经有了“gripper2base”向量,但缺少了“target2cam”向量。这是基于棋盘格的大小还是我遗漏了什么? 任何正确方向的指导都将不胜感激。您已接近答案 是的,它是基于棋盘的大小。

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

我想校准相机并找到从相机到末端效应器的变换。 我已经使用这个OpenCV指南校准了相机,并在棋盘上获得了未失真的图像

我的问题是如何找到从摄影机到末端效应器的转换。我可以看到OpenCV有一个函数,应该可以实现这一点。我已经有了“gripper2base”向量,但缺少了“target2cam”向量。这是基于棋盘格的大小还是我遗漏了什么?
任何正确方向的指导都将不胜感激。

您已接近答案

是的,它是基于棋盘的大小。但该函数不是直接获取这些参数和图像,而是获取target2cam。如何获取target2cam?只需简单地将你的机器人手臂移到棋盘上方,这样照相机就可以看到棋盘并拍照。从棋盘和相机内部的图片中,您可以找到target2cam。opencv中已经给出了从棋盘计算外部变量的方法


在不同的机器人姿势下重复几次,收集多个target2cam。把它们校准后,你就会得到你所需要的。

i相机校准是不够的,因为你只修复了相机系统的内部。要获得相机的外部方向,您必须知道校准模式(棋盘格)的大小。在OpenCV文档中提到的示例中,他们将其称为校准块世界坐标系(CW,第347页,图2)。这些应该是
target2cam
向量(我还没有使用机器人手臂)。不久前,我发现了George Hotz的一段有趣的代码“实时编码SLAM”视频。有很多有用的技巧。看看你是否在ROS中实现了所有功能,在ROS中我们可以设置摄像头的TF和EF。这不是ROS-这是一个纯python实现谢谢!是的,我最终发现相机校准也考虑了棋盘的大小——然而这是一个常数,我最初在指南中遗漏了,因为他们只是插入了一个值。