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

7 次查看(过去 30 天)
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.

采纳的回答

Roshni Garnayak
Roshni Garnayak 2019-8-22
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:

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by