示例演示如何融合来自 3 轴加速度计、3 轴陀螺仪、3 轴磁力计(通常称为磁、角速率和重力的 MARG 传感器)和 1 轴高度计的数据,以估计方向和高度。
此仿真以多种速率处理传感器数据。IMU(加速度计和陀螺仪)通常以最高速率运行。磁力计通常以低于 IMU 的速率运行,高度计以最低速率运行。更改采样率会导致融合算法的某些部分运行更频繁,并可能影响性能。
- % Set the sampling rate for IMU sensors, magnetometer, and altimeter.
- imuFs = 100;
- altFs = 10;
- magFs = 25;
- imuSamplesPerAlt = fix(imuFs/altFs);
- imuSamplesPerMag = fix(imuFs/magFs);
-
- % Set the number of samples to simulate.
- N = 1000;
-
- % Construct object for other helper functions.
- hfunc = Helper10AxisFusion;
传感器主体围绕所有三个轴旋转,同时垂直摆动位置。随着仿真的继续,振荡的幅度会增加。
- % Define the initial state of the sensor body
- initPos = [0, 0, 0]; % initial position (m)
- initVel = [0, 0, -1]; % initial linear velocity (m/s)
- initOrient = ones(1, 'quaternion');
-
- % Define the constant angular velocity for rotating the sensor body
- %