Setup constant gravity vector for imusensor object of Sensor Fusion and Tracking Toolbox

6 views (last 30 days)
I want to create an output of an imu sensor from my data set of acceleration and angular velocity. For this I'm using the "imusensor" object of the Sensor Fusion and Tracking Toolbox to include the gravity in the acceleration data set. My problem is, that the gravity vector always points in the direction of the z-axis even if the sensor rotates due to the angular velocity. So ist there a way to set up the gravity vector, so that it does not rotate with the sensor and does not always points in the direction of the z-axis?
In the example below the gravity vector always points in the direction of the z-axis, even if there is a constant angular velocity
IMU_test = imuSensor;
acc_test=zeros(100,3);
gyr_test=zeros(100,3);
gyro_test(:,1) = 1;
[accelReadings, gyroReadings] = IMU_test(acc_test,gyr_test)

Accepted Answer

Brian Fanous
Brian Fanous on 23 Nov 2020
Hi Jan
The syntax you are using on the final line assumes the IMU always has its (body) coordinate system aligned with the global coordinate system. Supply a final input argument to alter the orientation of our IMU relative to the global coordinate system.
[accelReadings, gyroReadings = IMU_test(acc_test, gyr_test, quaternion([30 40 50], ‘eulerd’, ‘ZYX’, ‘frame’); % IMU at a 30deg yaw, 40 deg pitch, 50 deg roll relative to NED.
This is detailed in the documentation here.
Brian

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!