为什么,四元数的值从传感器融合工具箱切换吗?
18视图(30天)
显示旧的评论
大家好,
我使用
传感器融合和跟踪工具。
我有原始数据从加速度计和陀螺仪。我导入matlab和记录他们imufilter为了估计取向。(我想要比较的结果与自己的算法matlab要使用其中方向)
然而,四元数估计从工具箱中有一个意想不到的行为。
我(轴)值与w切换值(实部)。例如,最初的四元数句话像0.0023 + 0.99我-0.001 k + 0.001 j。
并沿着数据集. .似乎他们是如此相似我的方向输出,除了我和w组件交换的价值。我想知道为什么吗?或者我做错了什么。谢谢你!
更新:
我现在改变了四元数法向量使用(契约),我注意到以下的结果相比,当我从我的工具箱和结果完成(假设Q = [w x, y, z]):
- 标量w组件是在我(x),倒生的迹象
- 在w x compnent位置具有相同的信号
- y分量是在z位置倒生的迹象
- 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向量分量。确保您的代码是相同的。
布莱恩Fanous
2019年12月11日
Hensham
可能会有一些问题。首先,如果您正在使用NED imufilter公约,那么你必须确保您的输入传感器数据也使用该公约(即放在一个平面上你的加速度计z轴进行了积极的价值,顺时针旋转为正值的陀螺仪,等等)。这里有一个演示说明,:
另外需要注意的是imufilter的四元数输出意味着什么。
imufilter给出了四元数q将数量在父(全球)框架对孩子(传感器)框架,框架一起使用时旋转。这是
x_global x_sensor = framerotate (q)。
确保您正在使用的图书馆也是这样做的。