我从Y=up,X=right坐标系中的传感器数据中得到一个四元数,Z= backwards.Mine是X=forward,Y=right,Z=up。
所以OX=Y,OY=Z和OZ=-X。
我有一个可以将四元数转换为4x4矩阵的函数,但不知道从哪里开始。任何帮助都将不胜感激。
发布于 2018-08-11 07:02:30
假设您有两个坐标系F1和F2。为简单起见,假设两者具有相同的来源。现在让我们,
qo_f1 = orientation of frame F1 as seen from frame F2
qo_f2 = orientation of frame F2 is as seen from F1
q_f1 = some quaternion in F1 frame
q_f2 = q_f1 as seen from F2
然后,
q_f2 = qo_f2 * q_f1 * qo_f2.inverse()
说明
要通过四元数Q旋转任何对象,只需执行q*p*q.inverse()
。如果p是一个向量,那么首先将它转换为“伪”四元数,方法是将w=0和x,y,z设置为向量。如果p是四元数,那么你就可以开始了。
发布于 2022-01-17 22:06:02
您只需要将其乘以q,Q是将点从Coord2转换为Coord1等效值的四元数。解释:
q2 * point2 * (q2)^(-1) = (q1 * (q^(-1))) * point2 * (q1 * (q^(-1)))^(-1)
= q1 * (q^(-1)) * point2 * q * (q1^(-1)) = q1 * ((q^(-1)) * point2 * q) * (q1^(-1))
= q1 * point1_equivalent * (q1^(-1))
https://stackoverflow.com/questions/18818102
复制相似问题