旋转矩阵的逆矩阵不工作:python,ROS

旋转矩阵的逆矩阵不工作:python,ROS,python,matrix,inverse,Python,Matrix,Inverse,为了将图像从我的机器人的相机框架转换到它的底架,我需要它的旋转矩阵,我有 然而,在某个时刻,我需要旋转矩阵的逆矩阵,即3x3矩阵,来计算其他一些参数。得到的参数根本没有意义,所以我检查了这个倒数是否正确,结果却不是 当我将两个矩阵相乘时,我得不到单位矩阵。相反,我有一个矩阵的形式 ([[ 1.00000000e+00, 0.00000000e+00, -2.77555756e-17], [ -1.11022302e-16, 1.00000000e+00, -2.77

为了将图像从我的机器人的相机框架转换到它的底架,我需要它的旋转矩阵,我有

然而,在某个时刻,我需要旋转矩阵的逆矩阵,即3x3矩阵,来计算其他一些参数。得到的参数根本没有意义,所以我检查了这个倒数是否正确,结果却不是

当我将两个矩阵相乘时,我得不到单位矩阵。相反,我有一个矩阵的形式

 ([[  1.00000000e+00,   0.00000000e+00,  -2.77555756e-17],
       [ -1.11022302e-16,   1.00000000e+00,  -2.77555756e-17],
       [  0.00000000e+00,   0.00000000e+00,   1.00000000e+00]]))

这看起来很奇怪,但它不包含主对角线上的1和一些0。所以我不确定整个事情是错的,还是只是其中的一部分,不管怎样,我都不知道如何修复它,有什么想法吗?

你的结果是身份矩阵。像“-2.77555756e-17”这样的数字是计算单元有限精度的结果


您可以参考和

您的结果是单位矩阵。像“-2.77555756e-17”这样的数字是计算单元有限精度的结果


您可以参考和

实际上,您显示的矩阵是单位矩阵,在浮点计算的范围内

Python在8字节IEEE标准中存储浮点数,该标准可以存储15或16位有效十进制数字。除法产生的大多数数字不能准确存储,只能大致存储。当使用接近1的数字进行计算时,将得到接近1E-15的“零”值


<所有的“零值”都小于1E-15的绝对值,所以你应该认为它们是零。不精确的数字来自计算矩阵的逆矩阵时出现的除法。

实际上,您显示的矩阵是单位矩阵,在浮点计算的限制范围内

Python在8字节IEEE标准中存储浮点数,该标准可以存储15或16位有效十进制数字。除法产生的大多数数字不能准确存储,只能大致存储。当使用接近1的数字进行计算时,将得到接近1E-15的“零”值


<所有的“零值”都小于1E-15的绝对值,所以你应该认为它们是零。不精确的数字来自计算矩阵的逆矩阵时出现的除法。

发布实际矩阵以及如何获得逆矩阵将非常有助于回答您的问题。如果您仔细查看发布的矩阵,它与单位矩阵非常接近。请注意,浮点数运算是近似的。发布实际矩阵以及如何得到逆矩阵将非常有助于回答您的问题。如果您仔细查看发布的矩阵,它与单位矩阵非常接近。请注意,浮点数运算是近似的。