使用四元数去旋转矢量

时间:2012-07-19 20:59:02

标签: matlab rotation quaternions

我有一组沿x,y,z方向的加速度值(传感器主体框架)。在运行期间,传感器倾斜并多次改变方向。使用陀螺仪,磁力计和加速度计,我能够以四元数格式融合并提取Roll,Pitch和Yaw角度(校准Q)。

现在,将加速度值转换为全局X,Y,Z位置。我只是简单地说 1.通过将标量部分设置为0将加速度值转换为四元数(称之为Acc) 2.将加速度四元数乘以如下:Qtranspose * Acc * Q ??

或者我的结论是错的?我们如何消除价值观?

感谢

1 个答案:

答案 0 :(得分:0)

如果你已经有一个准确的四元数方向 q ,那么加速度的'未旋转'矢量就像你说的那样:

Ag = q* A q

Ag = q A q*

取决于您用于四元数乘法的约定。 (只需尝试两者,看看哪一个给你正确的重力矢量)。

注意A和Ag是'纯四元数' - 这是一个四元数,标量分量为0,轴分量为加速度矢量。 换句话说,如果你的四元数是q = [w x y z],那么A = [0 ax ay az]。然后,您可以丢弃Ag的标量分量以获得未旋转的矢量。 确保加速度矢量的顺序与四元数向量顺序一致。