sensorskalman-filterfusionsensor-fusion

2 sensor readings fusion (Yaw, pitch)


Currently I am implementing a head tracking solution that takes yaw and pitch from 2 difference sources; a gyro and a magnetic field sensor.

I have both the values passed into my program and now I am attempting to determine the best way to keep the precision of the gyro with the lossless nature of a fixed emitter mf sensor. Currently I am using newYaw = currentGyroYaw + 0.05*(difference between) to slowly drag the gyro to anchor to the mf, but it has some fairly constant movement.

It has been suggested that I try and use a Kalman filter but I've been looking up resources all day about it but can't seem to figure out how to apply it to my scenario; and what all the values would be in my case.

If anyone could help psuedo the steps and calculations I would need to take 2 yaw/pitch values and produce a new more accurate set it would be greatly appreciated. Thanks.


Solution

  • Basically, this technique is called sensor fusion. Yes, you can use Kalman filter based sensor fusion. Please read this https://home.wlu.edu/~levys/kalman_tutorial/kalman_14.html where it explains without knowing any information about motion model how to perform sensor fusion with an example.

    If I explain a little bit more about your problem, you have two sensors which give yaw and pitch. If I follow the same notation which I referred above, C matrix should like, enter image description here. where I assume that those two reading which comes from two sensors has the same influence. You have to change the dimensionality other matrics. Here (https://github.com/GPrathap/RobotTrajectoryEstimation) you can find some example which I have done. Hope this will help you to resolve your problem.