使用imufilter帧计算旋转矩阵地球

18视图(30天)
你好,
我试图用imufilter为了融合当地加速度和陀螺仪数据来计算旋转矩阵。根据 网页 ,如果一个参考系被指定为“内德”,可以获得相对于地球的旋转矩阵框架。然而,我不确定是否有任何具体的要求,乌兹别克斯坦伊斯兰运动传感器的局部框架是如何定义的。并有详细文档如何实现呢?

接受的答案

威廉•罗斯”class=
威廉•罗斯 2023年5月11日在前者
编辑:威廉•罗斯 2023年5月11日在十三10
(编辑:正确登录一个元素之一的rotInit矩阵,如下。)
你有(线性)加速体内(框架)和陀螺数据(角速度在车身骨架),在瞬间。你会做
保险丝= imufilter (“SampleRate”Fs);
q =保险丝(accelerometerReadings gyroscopeReadings);
问,四元数的mx₁向量。
或者你可以做
rotMat =保险丝(accelerometerReadings gyroscopeReadings,“定位”,旋转矩阵的);
获得Mx3x3 M旋转矩阵的数组。
手册页说 imufilter 融合正确估计取向的变化从一个假定的扇面的初始取向。”This means the output, q or rotMat, represents the orientations of the body, 相对于其初始取向 ,在瞬间。的 手册然后说 “然而,设备的 x 设在指向南时记录。正确估计方向相对于真正的初始取向或相对于内,使用 ahrsfilter ”。但是, 手册页获得ahrsfilter () 表明ahrsfilter()预计磁强计数据,而你没有。
如果你使用默认的参考系,NED框架,然后假设全球x, y, z轴指向北方,东方,respectivey。acceleromter和陀螺数据来自传感器用右手x, y, z轴。假设你知道传感器的初始取向相对全球框架。然后你可以翻译rotMat矩阵从“身体”的初始取向对全球逐帧pre-multiplying rotInit rotMat每3 x3矩阵,这是一个3 * 3矩阵表示的初始orientaiton身体在全球框架。
如果身体的初始取向与NED轴(即身体x, y, z轴指向北方,东方,分别和向下),
rotInit =眼(3);
如果身体最初是面向X指向东方,Y指向南,和Z向下
x0 = (0, 1, 0);y0 = (1, 0, 0);z0 = [0, 0, 1];
rotInit = (x0, y0, z0);
如果身体最初是面向X指向南方,Y指向西方,和Z向下
x0 = (1, 0, 0);y0 = (0, 1, 0);z0 = [0, 0, 1];
rotInit = (x0, y0, z0);
如果身体最初是面向X指向东北和45度,Y指向东南和水平,和Z指向哪里,
x0 = [0.5; 0.5; -√(2)];y0 = [-√(2); sqrt (2); 0];z0 =交叉(x0, y0);
我没有使用传感器融合和跟踪工具箱,所以我的上面的代码是没有保证的。与模拟数据做很多检查,确保程序的行为符合预期时当你使用相对简单的模拟输入数据。我用Matlab和虚拟仪器融合线性和旋转加速度数据,估计头部加速度(旋转和线性)和方向在足球标题,研究结果发表在数篇论文。所以我知道一些关于这个话题,但我不熟悉这些例程。我不认为这工具箱存在当我做那项工作。我就会使用它。
有趣的挑战与足球数据是传感器是在头部的边缘(与一个弹性头巾绑在枕骨部)。我们想估计线性和旋转加速度的大脑。这意味着我们必须把测量数据从边缘到中心。纯旋转加速度在边缘会产生线性中间加上旋转加速度,反之亦然。方程复杂,最好是四元数,不支持在虚拟仪器。万博1manbetx
4评论
威廉•罗斯”class=
威廉•罗斯 8分钟前
@Paul ,你的问题是非常合理的。正如上面我说的,我没有使用Matlab的传感器融合和跟踪工具。有一件事我学会了收集和分析线性和旋转加速度的足球标题和花样滑冰是我必须测试数据采集方法和代码广泛控制和模拟输入,确保我得到预期的结果。脚本测试的时间,花更多的时间,比脚本测试。我推荐的3 d可视化输出。我犯了很多的错误。我尽我所能识别和消除错误通过仔细测试。

登录置评。

更多的答案(0)

社区寻宝

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

开始狩猎!