根据起点,方向四元数和行进距离查找下一个3D点

问题描述 投票:0回答:1

给定第二个3D点(P1),我需要使用什么公式:

  1. 第一点P0 = [x0,y0,z0]
  2. 方向四元数Q0 = [q0,q1,q2,q3]
  3. 行进距离S

我猜想,行进的距离S需要分成X,Y和Z的组成部分。是否有使用四元数的简单方法?

math quaternions robotics slam
1个回答
0
投票

方向向量的成分是:

x = 2 * (q1*q3 + q0*q2)
y = 2 * (q2*q3 - q0*q1)
z = 1 - 2 * (q1*q1 + q2*q2)

[此公式是根据四元数到矩阵公式乘以(0,0,1)向量得出的。

归一化D=(x,y,z)(如果不是单位,并计算P_New.x= P0.x + S * D.x和其他分量。


要获得方向的向上和向左矢量,请使用下面引用的矩阵的另一列:

Link:四元数乘法和正交矩阵乘法均可用于表示旋转。如果四元数由qw + i qx + j qy + k qz表示,则表示相同旋转的等效矩阵为:

1 - 2*qy2 - 2*qz2   2*qx*qy - 2*qz*qw   2*qx*qz + 2*qy*qw
2*qx*qy + 2*qz*qw   1 - 2*qx2 - 2*qz2   2*qy*qz - 2*qx*qw
2*qx*qz - 2*qy*qw   2*qy*qz + 2*qx*qw   1 - 2*qx2 - 2*qy2
© www.soinside.com 2019 - 2024. All rights reserved.