Kalman filter for Eurobot
Kalman.h@0:a0285293f6a6, 2012-03-20 (annotated)
- Committer:
- madcowswe
- Date:
- Tue Mar 20 12:43:16 2012 +0000
- Revision:
- 0:a0285293f6a6
Algo done, vars not done
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
madcowswe | 0:a0285293f6a6 | 1 | #include "Matrix.h" |
madcowswe | 0:a0285293f6a6 | 2 | #include "RFSRF05.h" |
madcowswe | 0:a0285293f6a6 | 3 | |
madcowswe | 0:a0285293f6a6 | 4 | //const int wheelmm = 314; |
madcowswe | 0:a0285293f6a6 | 5 | //const int robotCircumference = 1052; |
madcowswe | 0:a0285293f6a6 | 6 | //TODO make a globals and defines header file |
madcowswe | 0:a0285293f6a6 | 7 | const int wheelbase = 400; |
madcowswe | 0:a0285293f6a6 | 8 | |
madcowswe | 0:a0285293f6a6 | 9 | class Kalman { |
madcowswe | 0:a0285293f6a6 | 10 | public: |
madcowswe | 0:a0285293f6a6 | 11 | Kalman(); |
madcowswe | 0:a0285293f6a6 | 12 | |
madcowswe | 0:a0285293f6a6 | 13 | void predict(float left, float right); |
madcowswe | 0:a0285293f6a6 | 14 | void update(int sonarid, float dist); |
madcowswe | 0:a0285293f6a6 | 15 | |
madcowswe | 0:a0285293f6a6 | 16 | //State variables |
madcowswe | 0:a0285293f6a6 | 17 | Matrix X; //(3,1) |
madcowswe | 0:a0285293f6a6 | 18 | Matrix P; //(3,3); |
madcowswe | 0:a0285293f6a6 | 19 | |
madcowswe | 0:a0285293f6a6 | 20 | private: |
madcowswe | 0:a0285293f6a6 | 21 | Matrix Q; //perhaps calculate on the fly? dependant on speed etc? |
madcowswe | 0:a0285293f6a6 | 22 | float R; |
madcowswe | 0:a0285293f6a6 | 23 | |
madcowswe | 0:a0285293f6a6 | 24 | RFSRF05 sonararray;//(p13,p21,p22,p23,p24,p25,p26,p5,p6,p7,p8,p9); |
madcowswe | 0:a0285293f6a6 | 25 | static const float beaconx = 0; |
madcowswe | 0:a0285293f6a6 | 26 | static const float beacony = 0; |
madcowswe | 0:a0285293f6a6 | 27 | }; |