ICRS Eurobot 2013

Dependencies:   mbed mbed-rtos Servo QEI

Committer:
madcowswe
Date:
Tue Apr 09 15:33:36 2013 +0000
Revision:
20:70d651156779
Parent:
19:4b993a9a156e
Predict loop running, update loop not done.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
madcowswe 16:52250d8d8fce 1 #ifndef KALMAN_H
madcowswe 16:52250d8d8fce 2 #define KALMAN_H
madcowswe 16:52250d8d8fce 3
madcowswe 16:52250d8d8fce 4 //#include "globals.h"
madcowswe 20:70d651156779 5 #include "rtos.h"
madcowswe 16:52250d8d8fce 6
madcowswe 16:52250d8d8fce 7 namespace Kalman
madcowswe 16:52250d8d8fce 8 {
madcowswe 16:52250d8d8fce 9
madcowswe 20:70d651156779 10 typedef struct State {
madcowswe 16:52250d8d8fce 11 float x;
madcowswe 16:52250d8d8fce 12 float y;
madcowswe 16:52250d8d8fce 13 float theta;
madcowswe 20:70d651156779 14 } State ;
madcowswe 16:52250d8d8fce 15
madcowswe 16:52250d8d8fce 16 //Accessor function to get the state as one consistent struct
madcowswe 20:70d651156779 17 State getState();
madcowswe 16:52250d8d8fce 18
madcowswe 16:52250d8d8fce 19 //Main loops (to be attached as a thread in main)
madcowswe 20:70d651156779 20 void predictloop(void const *dummy);
madcowswe 20:70d651156779 21 void updateloop(void const *dummy);
madcowswe 16:52250d8d8fce 22
madcowswe 20:70d651156779 23 void start_predict_ticker(Thread* predict_thread_ptr_in);
madcowswe 16:52250d8d8fce 24
madcowswe 16:52250d8d8fce 25 enum measurement_t {SONAR0 = 0, SONAR1, SONAR2, IR0, IR1, IR2};
madcowswe 19:4b993a9a156e 26 const measurement_t maxmeasure = IR2;
madcowswe 16:52250d8d8fce 27
madcowswe 16:52250d8d8fce 28 //Call this to run an update
madcowswe 16:52250d8d8fce 29 void runupdate(measurement_t type, float value, float variance);
madcowswe 16:52250d8d8fce 30
madcowswe 16:52250d8d8fce 31 extern float RawReadings[maxmeasure+1];
madcowswe 19:4b993a9a156e 32 extern float IRpahseOffset;
madcowswe 16:52250d8d8fce 33
madcowswe 20:70d651156779 34 extern bool Kalman_inited;
madcowswe 16:52250d8d8fce 35
madcowswe 16:52250d8d8fce 36 //Initialises the kalman filter
madcowswe 16:52250d8d8fce 37 void KalmanInit();
madcowswe 16:52250d8d8fce 38
madcowswe 16:52250d8d8fce 39 }
madcowswe 16:52250d8d8fce 40
madcowswe 16:52250d8d8fce 41 #endif //KALMAN_H