Ecompass algorithm and Kalman Filter

1 次查看(过去 30 天)
Hi , I used ecompass algorithm to analyze magnetometer and accelerometer signals. To process my data I need a kalman filter with input: (quaternions / angles of euler) and gyroscope. how can i implement it?
  3 个评论
Mattia Vesperini
Mattia Vesperini 2020-1-27
编辑:Mattia Vesperini 2020-1-27
I consulted this link, I can't understand how to input my data in kallmanfilter. I attach my code:
orientation = ecompass(accelerometerReading,magnetometerReading);
rotationvector=rotvecd (orientation);
quaterionEulerAngles = eulerd (orientation, 'ZYX' , 'frame' )

请先登录,再进行评论。

回答(1 个)

Vimal Rathod
Vimal Rathod 2020-1-31
To use the kalman filter to analyze the signals you first have to create a state-space model which will be directly passed with the noise covariance to the kalman function.
Refer the following link to know more about how to create a state-space model.
Refer the following link to know more about how to apply kalman filter using a state space model
Incase you just want to estimate the orientations from the readings of accelerometer and gyroscope readings, you could use the imufilter function which returns a kalman filter object which could be used on the signal readings directly.
Refer to the following link for more informantion about the imufilter function and about the FUSE object which will be returned when imufilter is used.
Refer to the sample code below to know how it is used. In the below example the simpler version is given but you could set different properties for the filter by passing different inputs in the imufilter function.
% returns a kalman filter object.
FUSE = imufilter;
%generates estimates about orientation and angular velocities
[orientation,angularVelocity] = FUSE(accelReadings,gyroReadings);
Hope this helps!

Community Treasure Hunt

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

Start Hunting!

Translated by