【问题标题】:How to find the rotation matrix between two coordinate systems?如何找到两个坐标系之间的旋转矩阵?
【发布时间】:2016-03-27 07:24:05
【问题描述】:

有两个坐标系。我们知道原点的 3D 坐标和第二坐标系的轴相对于第一坐标系的 3D 矢量。那么如何求出第一个坐标系到第二个坐标系的旋转矩阵呢?

【问题讨论】:

    标签: math matrix geometry computer-vision


    【解决方案1】:

    令 A 为定义两个坐标系之间关系的 4x4 矩阵。

    那么两者的夹角为:

    θ = arcos(trace(A)/2.0)

    【讨论】:

      【解决方案2】:

      我写了一篇关于它的文章,用源代码演示了如何做到这一点。简短的回答是你用不同轴的点积构建一个 3x3 矩阵

      http://www.meshola.com/Articles/converting-between-coordinate-systems

      【讨论】:

      • 死链接,2021 年 4 月 22 日。
      【解决方案3】:

      我认为基础的改变可以帮助你Wiki Link。它很容易实现。

      【讨论】:

        【解决方案4】:

        所描述的问题可以解决如下。让

        M = m_11 m_12 m_13
            m_21 m_22 m_23
            m_31 m_32 m_33
        

        表示所需的旋转矩阵。我们需要

         1 0 0 * M + t = x_x x_y x_z
         0 1 0           y_x y_y y_z
         0 0 1           z_x z_y z_y
        

        其中t 表示翻译;我们看到,这个矩阵等式可以通过从左边乘以单位矩阵来解决,单位矩阵是它自己的逆矩阵;因此我们得到以下等式。

         M + t = x_x x_y x_z
                 y_x y_y y_z
                 z_x z_y z_y
        

        这可以通过从两边减去t来重新排列,得到所需的矩阵M,如下所示。

         M = x_x x_y x_z - t = x_x-t_x x_y-t_y x_z-t_z 
             y_x y_y y_z       y_x-t_x y_y-t_y y_z-t_z
             z_x z_y z_y       z_x-t_x z_y-t_y z_z-t_z
        

        请注意,这相对容易,因为初始矩阵由标准基的基本向量组成。一般来说,它比较困难,涉及basis transformation,基本上可以通过Gaussian elimination完成,但在数值上可能很难。

        【讨论】:

        • 请注意,对于旋转矩阵,应该从 M 的所有列中减去平移向量,因此 `R = x_x - x x_y - x x_z - x ...' 等等
        • 我不熟悉使用的符号; t 是否表示涉及翻译?这是有道理的,但是最初的问题只需要轮换。
        • 我认为是的,作者的 [R|t] 意味着旋转+平移(注意非零原点)。您的矩阵 M 对于纯旋转情况是正确的,对于 R+t 有必要使用相对坐标
        • 是的,[R|t] 表示旋转和平移。我们是否需要从矩阵M中减去平移向量(t)。我认为三个轴的3D向量与原点之间没有关系。 (x_x, x_y, x_z) 是一个 3D 向量,仅表示 X 轴相对于坐标系 1 的方向。即使没有平移,该向量也将相同。
        • @Udaya 翻译必须单独处理,因为翻译不能用矩阵乘法表示(至少 nt 在相同的维度内)。出于这个原因,通常使用affine transformation(其中人为引入了一个额外的维度,稍后通过投影将其移除) - 因此,所有需要的转换(旋转、缩放和平移)都可以表示为矩阵乘法。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-28
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多