I want to know if it is possible to get displacement data out of the orientation data in the form of a quaternion?

1 view (last 30 days)
I'm trying to us the Sensor Fusion toolbox to fuse accel and gyro data, then get displacement. Here is what I've tried:
>> me = loadTest('Me');
>> accel = me.sdChest(:,2:4);
>> gyro = me.sdChest(:,5:7);
>> FUSE = imufilter;
>> accel = table2array(accel);
>> gyro = table2array(gyro);
>> [orientation,angularVelocity] = FUSE(accel,gyro);
Now I want to get displacement data out. I get the orientation in the form of a quaterion, don't know how to get displacement.
Using: >> [position,orient ] = pose(FUSE); doesn't work
I understand that to get displacement you have to differentiate accel two times, but I was hoping a funtion was available for this.

Accepted Answer

Roshni Garnayak
Roshni Garnayak on 22 Aug 2019
Integrating the acceleration data two times will also integrate the measurement errors that occur in the accelerometer and gyroscope data. Moreover, effects of random noise and offset will also affect the displacement computation. This will result in inaccurate values of displacement.
It is advisable to fuse data from both inertial sensors and GPS to obtain pose and hence displacement.
To know how to determine pose using inertial sensors and GPS, refer to the following link:

More Answers (0)

Community Treasure Hunt

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

Start Hunting!