我需要旋转源3D向量,以通过仅绕两个轴旋转yz。
。我的机制,有2个电动机围绕y旋转,然后围绕Z旋转。
我认为,仅使用2个角度将源向量旋转到随机目标3D向量,我需要将其旋转到最接近目标矢量。
我只需要对齐方向,而不是坐标。
使用旋转矩阵,四元组等的最佳方法是什么?
?i可以计算从源向量到目标的最短最短。然后将目标向量乘以此Quat的倒数。然后从旋转矩阵中获取Yz角,以z矢量为z向量,但我认为这是错误的。
解决方案应分析。
为了清晰,让我定义单位向量
E1 = (1,0,0)
E2 = (0,1,0)
E3 = (0,0,1)
给定一个旋转矩阵r,目标是将其解散为两个旋转矩阵,旋转一个围绕轴E2的角度为" a",绕轴E3:
一个角度" b"。R = exp(a E2) exp(b E3)
将两侧乘以E3
R E3 = exp(a E2) exp(b E3) E3
我们得到:
W = exp(a E2) E3
其中w是vector e3由r:w = r e3
旋转a = atan2( W • E1, W • E3)
其中(•)是点产品。
现在进行R的转置我们得到:
R^T = exp(b E3)^T exp(a E2)^T
将两侧乘以E2:
R^T E2 = exp(b E3)^T exp(a E2)^T E2
R^T E2 = exp(-b E3) exp(-a E2) E2
S = exp(-b E3) E2
其中s是vector e2由r^t旋转:s = r^t e2
b = - atan2( S • E1, S • E2)
我刚刚得出了这些方程式,因此未经测试,可能会有一些错误。按原样进行。