使用四元数计算相对取向的问题

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 /π;

接受的答案

布莱恩Fanous
布莱恩Fanous 2021年1月20日
编辑:布莱恩Fanous 2021年1月20日
我理解你有两个四元数 和第三个旋转,你正在寻找表示这两个之间的不同取向,叫它 p 。这些应该是相关的:
*四元数的乘法。记住四元数乘法是不可交换的。
解出 p 您只需要 乘以共轭
你可以通过交换你的论点在quatmultiply代码或使用四元数/ ldivide
qstart = meanrot(四元数(initData))
relQ = qstart。\ mocapData;

答案(1)

布莱恩Fanous
布莱恩Fanous 2021年1月20日
编辑:布莱恩Fanous 2021年1月20日
点,
你能解释你的设置更吗?你希望达到的目标是什么,为什么你这两个四元数乘法?从你的描述听起来 都是四元数表示需要全球框架的旋转传感器坐标系,但只是在不同时间的实例。你能描述一个小更吗?你是想找方向的变化从最初的取向?
1评论
我
2021年1月20日
编辑: 2021年1月20日
是的,我试图找到方向的变化从最初的方向。乌兹别克斯坦伊斯兰运动被放在一个人的脚。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!