0
$\begingroup$

I am new to robotics, and recently I am involving in a sensor fusion task using visual input (binocular at present), an IMU, and a GPS module. I have searched for related journal papers for a reasonable fusion method. Well, a Kalman-type algorithm definitely seems to be a popular one used in sensor fusion. But, I also read articles used the Madgwick orientation filter to fix the IMU data and feed-forward to visual odometry input (see: https://www.researchgate.net/publication/342732957_Stereo_Visual_Inertial_Pose_Estimation_Based_on_Feedforward-Feedback_Loops). Now I am getting confused: what should I use? or say, when should I use a Kalman and when should I use a Madgwick? Thx.

Or it's true to say when we get a 9 DoF IMU with magnetometer, Madgwick is better for taking magnetic field/gravitational direction into account, and Kalman performs better or easier to implement when using 6 DoF IMU?

$\endgroup$
0

1 Answer 1

1
$\begingroup$

I think you need to focus on what you want to estimate.

Usually, a Madgwick filter is an optimization based algorithm targeting the estimation of the quaternion representing the attitude and heading (i.e. the 3d orientation, roll+pitch+yaw) of your robot. In its traditional formulation you will not be able to extend it to camera info fusion, just imu and magnetometer. It's simple, fast, easy to tune and performs quite well given calibrated sensors input data (magnetometer!!!).

Kalman filters are a more general, probabilistic approach to estimation. You can easily extend your state to estimate both position and orientation, and from a range a various sensors, including camera, provided a gaussian sampling model. They are more tricky to formulate (you must derive a dynamic model of your robot) , to tune and are computationally more expensive, especially in high dimensional space and in its nonlinear variants.

If you just need to estimate orientation and you're without a camera, go for Madgwick. If a camera module is available, go for a Kalman filter. If you feel inspired, you may implement both and feed the output of Magdwick to Kalman as external orientation measurement.

$\endgroup$
1
  • $\begingroup$ Yea, I think I'm tryna hand-written implement both methods first on paper to see which one is better. Thx a lot for ur answer. :) $\endgroup$
    – chen_441
    Commented Mar 13, 2023 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.