Colour sensors calibrated

Dependencies:   mbed-rtos mbed Servo QEI

Fork of ICRSEurobot13 by Thomas Branch

Committer:
madcowswe
Date:
Wed Apr 10 03:46:23 2013 +0000
Revision:
27:7cb3a21d9a2e
Parent:
26:b16f1045108f
Child:
34:a49197572737
Update loop rewritten, not tested not set to run

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
rsavitski 25:50805ef8c499 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 27:7cb3a21d9a2e 10 typedef struct State
madcowswe 27:7cb3a21d9a2e 11 {
madcowswe 27:7cb3a21d9a2e 12 float x;
madcowswe 27:7cb3a21d9a2e 13 float y;
madcowswe 27:7cb3a21d9a2e 14 float theta;
madcowswe 27:7cb3a21d9a2e 15 } State;
madcowswe 27:7cb3a21d9a2e 16
madcowswe 16:52250d8d8fce 17 //Accessor function to get the state as one consistent struct
madcowswe 20:70d651156779 18 State getState();
madcowswe 16:52250d8d8fce 19
madcowswe 16:52250d8d8fce 20 //Main loops (to be attached as a thread in main)
madcowswe 22:167dacfe0b14 21 void predictloop(void const*);
madcowswe 22:167dacfe0b14 22 void updateloop(void const*);
madcowswe 16:52250d8d8fce 23
madcowswe 20:70d651156779 24 void start_predict_ticker(Thread* predict_thread_ptr_in);
madcowswe 16:52250d8d8fce 25
madcowswe 16:52250d8d8fce 26 enum measurement_t {SONAR0 = 0, SONAR1, SONAR2, IR0, IR1, IR2};
madcowswe 19:4b993a9a156e 27 const measurement_t maxmeasure = IR2;
madcowswe 16:52250d8d8fce 28
madcowswe 16:52250d8d8fce 29 //Call this to run an update
madcowswe 16:52250d8d8fce 30 void runupdate(measurement_t type, float value, float variance);
madcowswe 16:52250d8d8fce 31
madcowswe 16:52250d8d8fce 32 extern float RawReadings[maxmeasure+1];
madcowswe 23:6e3218cf75f8 33 extern float IRphaseOffset;
madcowswe 16:52250d8d8fce 34
madcowswe 20:70d651156779 35 extern bool Kalman_inited;
madcowswe 16:52250d8d8fce 36
madcowswe 16:52250d8d8fce 37 //Initialises the kalman filter
madcowswe 16:52250d8d8fce 38 void KalmanInit();
madcowswe 16:52250d8d8fce 39
madcowswe 16:52250d8d8fce 40 }
madcowswe 16:52250d8d8fce 41
madcowswe 16:52250d8d8fce 42 #endif //KALMAN_H