Lab 8 – Kalman filter

8. Kalman filter

 

Elcano uses an Arduino Mega microcontroller to obtain a realtime fix on the current location. The implemented code uses GPS and a Kalman filter, but the result has limited accuracy. The system should be expanded to use wheel odometry, visual odometry, inertial measurement unit, and dead reckoning, as described in http://www.enviroteach.com/LandNavigation.pdf . The Kalman filter will perform the sensor fusion. All sensors are currently available.

 

This code should combine the previous results from Odometer, Compass, INU, and GPS. Obstacle detection is not used for navigation at this time. When combined with a good digital map (Lab 9), compass and odometer give a vehicle position.

 

In the future, sonar sensors could be combined with known building locations and a particle filter to get a location fix.

 

Land Navigation

 

Software

Elcano_C6_Kalman

  • Elcano_C6_Kalman.ino
  • KalmanFilter.cpp
  • Matix.cpp
  • Matrix.h
  • Common.cpp
  • Common.h
  • IO.h

 

This software uses a Kalman filter to produce a running average of GPS readings, and logs them to an SD card. For this lab, the filter dimensions need to be expanded for other instruments.

 

Status (3/11/14): Arduino based GPS with SD card data-logger and Kalman filter was working in summer 2012. Attempts to install it in late 2013 encountered difficulties. Code needs to get expanded to use other instruments.

Open Source Autonomy