Combine noisy GPS, IMU (accelerometer + gyroscope), and magnetometer data using Extended Kalman Filter to get accurate position and heading