使用四元数计算相对取向的问题
13个视图(30天)
显示旧的评论
我使用一个IMU提供绝对定向传感器的框架
年代
相对于固地框架
N
在一个单位四元数的形式
(即从坐标系旋转
N
帧
年代
)。第一个字段所提供的四元数是标量的部分,我相信同意MATLAB符号。在我的实验中,我第一次得到一个初始取向(当传感器相对静态)
,我想获得的相对定向传感器的形式ZYX股票欧拉角(更准确地说
)。
这是我试过的程序:
首先,我反初始取向,
=
然后,我用获得的结果相对四元数如下,
=
(我也试过
,但并没有给出正确的结果)。
最后,可视化结果,我相对定向转化为欧拉角。我也有参考轨迹计算在动作捕捉软件使用相同的数据。然而,我的结果看起来完全不同的(错误的)所示,
奇怪的是,如果我手动设置
Z
和
Y
旋转的
为零(然后结果转换回四元数形式),角轨迹完全匹配(除了抵消的
Z
和
Y
)。
我做错了什么?
这是我使用的MATLAB代码。注意,initQ
和“relQ”
。
%的平均四元数使用meanrot获取初始取向。
【(1),(2),(3),问(4)]=部分(meanrot(四元数(initData));
initQ =问;
%第二种方法,如果我手动设置前两个旋转为零。
% initEul = quat2eul (q,“ZYX股票”);
% initEul (2) = 0;
% initEul (1) = 0;
% initQ = eul2quat (initEul ZYX股票);
relQ = quatmultiply (mocapData quatinv (initQ));
eulerAngles = quat2eul(四元数(relQ),“ZYX股票”)* 180 /π;