为什么,四元数的值从传感器融合工具箱切换吗?

18视图(30天)
大家好,
我使用 传感器融合和跟踪工具。 我有原始数据从加速度计和陀螺仪。我导入matlab和记录他们imufilter为了估计取向。(我想要比较的结果与自己的算法matlab要使用其中方向)
然而,四元数估计从工具箱中有一个意想不到的行为。
我(轴)值与w切换值(实部)。例如,最初的四元数句话像0.0023 + 0.99我-0.001 k + 0.001 j。
并沿着数据集. .似乎他们是如此相似我的方向输出,除了我和w组件交换的价值。我想知道为什么吗?或者我做错了什么。谢谢你!
更新: 我现在改变了四元数法向量使用(契约),我注意到以下的结果相比,当我从我的工具箱和结果完成(假设Q = [w x, y, z]):
  1. 标量w组件是在我(x),倒生的迹象
  2. 在w x compnent位置具有相同的信号
  3. y分量是在z位置倒生的迹象
  4. z组件是在y位置相同的信号

答案(3)

吉姆·里格斯
吉姆·里格斯 2019年11月29日
有两种不同的方法常用来表示四元数。
Q = (a, b, c, d) d是标量,,a, b, c的向量。
Q = (a, b, c, d),一个是标量的部分和b, c, d代表向量的部分。
Matlab目前使用后者表示;一个标量,b, c, d向量分量。确保您的代码是相同的。
3评论
Hesham Safyeldin
Hesham Safyeldin 2019年12月3日
@james,谢谢你的回答
输入数据连接问题的一些数据。然而,现在解决了。这是一个参考系问题。
但也许我可以问你别的。
为什么总是四元数的结果从工具箱不拆开(1,0,0,0). .他们很接近但不相等。

登录置评。


Hesham Safyeldin
Hesham Safyeldin 2019年12月3日
它原来是一个 “参照系” 问题。
我想我的传感器提供了数据在“ENU表示”默认在Matlab是内德。说实话我不懂太多的影响区别这两个参考帧。但是当我改变了参照系,问题似乎是解决。

布莱恩Fanous
布莱恩Fanous 2019年12月11日
Hensham
可能会有一些问题。首先,如果您正在使用NED imufilter公约,那么你必须确保您的输入传感器数据也使用该公约(即放在一个平面上你的加速度计z轴进行了积极的价值,顺时针旋转为正值的陀螺仪,等等)。这里有一个演示说明,:
另外需要注意的是imufilter的四元数输出意味着什么。 imufilter给出了四元数q将数量在父(全球)框架对孩子(传感器)框架,框架一起使用时旋转。这是
x_global x_sensor = framerotate (q)。
确保您正在使用的图书馆也是这样做的。

社区寻宝

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

开始狩猎!