This is some awesome robot code
Dependencies: mbed-rtos mbed QEI
Fork of ICRSEurobot13 by
Processes/Kalman/Kalman.h@21:167dacfe0b14, 2013-04-09 (annotated)
- Committer:
- madcowswe
- Date:
- Tue Apr 09 19:24:31 2013 +0000
- Revision:
- 21:167dacfe0b14
- Parent:
- 20:70d651156779
- Child:
- 22:6e3218cf75f8
Working state UI
Who changed what in which revision?
User | Revision | Line number | New 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 | 21:167dacfe0b14 | 20 | void predictloop(void const*); |
madcowswe | 21:167dacfe0b14 | 21 | void updateloop(void const*); |
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 |