MATLAB: What is the IMU Sensor measuring in the Sensor Fusion and Tracking Toolbox

accelerometerimuSensor Fusion and Tracking Toolbox

In the IMU Sensor of the Sensor Fusion and Tracking Toolbox where the world frame is NED and the sensor frame is Front-Right-Down it seems the IMU measurements are the opposite of the specific force, which according to [1] (eq. 3.97) is where P is a platform frame or body frame. The same definition is given by multiple other well known authors such as [2] where i is a space-fixed axis and is a the position vector with respect to the origin. Same for [3] in which the specific force is defined as where is the gravitation force. Following the previous definition, an IMU at rest on a table in a NED world with an FRD coordinate frame should measure the force of the table pushing up on it. Thus the measurement should be and I can confirm this with an SBG Ellipse IMU I have at hand. Now suppose the IMU slides forward at on the table then the specific force measurement should be .
It seems mathworks has decided to instead define the specific force as and my question here is: Why was this convention chosen and is there some documentation explaning this choice?
As an example, here I generate an IMU trajectory with +1.0 acceleration on the x-axis using code modified from the examples page.
fs = 100;
nsamples = fs * 1;
traj = kinematicTrajectory('SampleRate',fs);
accBody = zeros(nsamples,3);
accBody(:,1) = 1;
angVelBody = zeros(nsamples,3);
[~,orientationNED,~,accNED,angVelNED] = traj(accBody,angVelBody);
IMU = imuSensor('accel-mag','SampleRate',fs);
[accelReadings,magReadings] = IMU(accNED,angVelNED,orientationNED);
figure(1)
t = (0:(nsamples-1))/fs;
plot(t,accelReadings)
legend('X-axis','Y-axis','Z-axis')
ylabel('Acceleration (m/s^2)')
title('Accelerometer Readings')
Which results in
We can observe that even though I accelerate +1 in x I measure -1 in x.
[1] Jay Farrell. 2008. Aided Navigation: GPS with High Rate Sensors (1 ed.). McGraw-Hill, Inc., New York, NY, USA. page 100
[2] Titterton, David; Weston, John: 'Strapdown Inertial Navigation Technology' (Radar, Sonar & Navigation, 2004). page 24
[3] Groves, Paul D. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd edition. page 67-68

Best Answer

Hi Guillaume,
Thank you for the detailed explanation and apologies for the confusion.
You are correct that we have defined the specific force as gravity minus acceleration. This was done since the IMU sensor model and the correpsonding orientation filters are based off the Open Source Sensor Fusion package.
In this package, the accelerometer reading is defined as "Gravity-Acceleration" for the "Aerospace (NED)" reference frame. More information on this can be found in the "Coordinate Systems" document in the package link above.
Thanks,
Ryan