当前位置: 首页>编程语言>正文

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_坐标转换,第1张

手眼标定的坐标转换

这里涉及到的坐标系有四个:机器人基坐标系base法兰上的工具坐标系tool相机坐标系camera标定板坐标系cal;此外,涉及到了四个关键的4x4齐次转换矩阵,对于眼在手上和眼在手外分别进行说明,下面是两种配置方式的坐标转换过程:

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_M3_02,第2张

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_人工智能_03,第3张

每一种配置方式,都是两个移动的坐标系两个静止的坐标系,并且这四个坐标系构成了一个闭环

[1] 对于moving camera(眼在手上)方式,如下图所示,机械臂基坐标系和标定板坐标系是静止的(不变量),两者之间存在一个固定的转换矩阵;法兰上的工具坐标系和相机坐标系是移动的,两者之间存在一个固定的转换矩阵;需要求的是法兰上的工具坐标系与相机坐标系之间的转换矩阵。其中,M1**(Base_H_Tool)可以从机器人示教器或者控制读出,Mx(Cam_H_Tool)**是需要求取的未知矩阵,M2 **(Cam_H_Cal)**可以从拍摄照片计算出来,M3 **(Base_H_Cal)**未知,但是是一个固定的转换矩阵,利用坐标转换,有如下的等式关系:Mx=M2 M3 ^ (-1) M1 即

Cam_H_Tool =  (Cam_H_Cal)X(base_H_cal)^(-1)X(Base_H_Tool)

如果我有许多个这样的等式,利用M3 (Base_H_Cal)不变,可以构建关于Mx(Cam_H_Tool)的方程组,解方程组,求得Mx(Cam_H_Tool)中各个元素的值,在这个过程中我们不必去求M3 (Base_H_Cal)计算消去具体是多少,只是利用了其固定不变这个特性而已。总结:求不变量(Cam_H_Tool)

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_M3_04,第4张

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_机器人_05,第5张

[2] 对于stationary camera (固定相机-眼再手外)方式,如下图所示,机械臂基坐标系和相机坐标系是静止的(不变量),两者之间存在一个固定的转换矩阵;法兰上的工具坐标系和标定板坐标系是移动的,两者之间存在一个固定的转换矩阵;需要求的是**相机坐标系和机械臂基坐标系之间的转换矩阵。其中,M1(Base_H_Tool)**可以从机器人示教器或者控制读出,Mx **(Cam_H_Base)**是需要求取的未知矩阵,M3 **(Cam_H_Cal)**可以从拍摄照片计算出来,M2 (tool_H_cal) 未知,但是是一个固定的转换矩阵,利用坐标转换,有如下的等式关系:Mx=M3 *M2(-1)*M1(-1),即

Cam_H_Base = (Cam_H_Cal)X(tool_H_cal)^(-1)X(Base_H_Tool)^(-1)

如果我有许多个这样的等式,利用M2**(tool_H_cal)**不变,可以构建关于Mx **(Cam_H_Base)的方程组,解方程组,求得Mx(Cam_H_Base)中各个元素的值,在这个过程中我们不必去求M2(tool_H_cal)**具体是多少,只是利用了其固定不变这个特性而已。

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_坐标转换_06,第6张

python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定,python计算眼在手上和眼在手外不同的算法 眼在手上手眼标定_M3_07,第7张


https://www.xamrdz.com/lan/5tn1924589.html

相关文章: