Revision 1:4964fa534202, committed 2012-04-26
- Comitter:
- narshu
- Date:
- Thu Apr 26 19:28:32 2012 +0000
- Parent:
- 0:e238496b8073
- Child:
- 2:8aa491f77a0b
- Commit message:
Changed in this revision
--- a/Kalman.cpp Thu Apr 26 19:11:11 2012 +0000
+++ b/Kalman.cpp Thu Apr 26 19:28:32 2012 +0000
@@ -14,9 +14,32 @@
#include <tvmet/Vector.h>
using namespace tvmet;
-Kalman::Kalman(Motors &motorsin) :
+Kalman::Kalman(Motors &motorsin,
+ PinName Sonar_Trig,
+ PinName Sonar_Echo0,
+ PinName Sonar_Echo1,
+ PinName Sonar_Echo2,
+ PinName Sonar_Echo3,
+ PinName Sonar_Echo4,
+ PinName Sonar_Echo5,
+ PinName Sonar_SDI,
+ PinName Sonar_SDO,
+ PinName Sonar_SCK,
+ PinName Sonar_NCS,
+ PinName Sonar_NIRQ) :
ir(*this),
- sonararray(p10,p21,p22,p23,p24,p25,p26,p5,p6,p7,p8,p9),
+ sonararray(Sonar_Trig,
+ Sonar_Echo0,
+ Sonar_Echo1,
+ Sonar_Echo2,
+ Sonar_Echo3,
+ Sonar_Echo4,
+ Sonar_Echo5,
+ Sonar_SDI,
+ Sonar_SDO,
+ Sonar_SCK,
+ Sonar_NCS,
+ Sonar_NIRQ),
motors(motorsin),
predictthread(predictloopwrapper, this, osPriorityNormal, 512),
predictticker( SIGTICKARGS(predictthread, 0x1) ),
--- a/Kalman.h Thu Apr 26 19:11:11 2012 +0000
+++ b/Kalman.h Thu Apr 26 19:28:32 2012 +0000
@@ -19,58 +19,74 @@
public:
enum measurement_t {SONAR1 = 0, SONAR2, SONAR3, IR1, IR2, IR3};
static const measurement_t maxmeasure = IR3;
-
- Kalman(Motors &motorsin);
-
+
+ Kalman(Motors &motorsin,
+ PinName Sonar_Trig,
+ PinName Sonar_Echo0,
+ PinName Sonar_Echo1,
+ PinName Sonar_Echo2,
+ PinName Sonar_Echo3,
+ PinName Sonar_Echo4,
+ PinName Sonar_Echo5,
+ PinName Sonar_SDI,
+ PinName Sonar_SDO,
+ PinName Sonar_SCK,
+ PinName Sonar_NCS,
+ PinName Sonar_NIRQ);
+
void predict();
void runupdate(measurement_t type, float value, float variance);
-
+
//State variables
Vector<float, 3> X;
Matrix<float, 3, 3> P;
Mutex statelock;
-
+
float SonarMeasures[3];
float IRMeasures[3];
float SonarMeasure_Offset[3];
-
+
bool Kalman_init;
-
+
//The IR is public so it's possible to print the offset in the print function
IR ir;
-
+
//Initialises the kalman filter
void KalmanInit();
-
+
private:
-
+
//Sensor interfaces
RFSRF05 sonararray;
Motors& motors;
-
+
Thread predictthread;
void predictloop();
- static void predictloopwrapper(void const *argument){ ((Kalman*)argument)->predictloop(); }
+ static void predictloopwrapper(void const *argument) {
+ ((Kalman*)argument)->predictloop();
+ }
RtosTimer predictticker;
-
+
// Thread sonarthread;
// void sonarloop();
// static void sonarloopwrapper(void const *argument){ ((Kalman*)argument)->sonarloop(); }
// RtosTimer sonarticker;
-
- struct measurmentdata{
+
+ struct measurmentdata {
measurement_t mtype;
float value;
float variance;
} ;
-
+
Mail <measurmentdata, 16> measureMQ;
-
+
Thread updatethread;
void updateloop();
- static void updateloopwrapper(void const *argument){ ((Kalman*)argument)->updateloop(); }
-
-
+ static void updateloopwrapper(void const *argument) {
+ ((Kalman*)argument)->updateloop();
+ }
+
+
};
#endif //KALMAN_H
\ No newline at end of file