2019NHK_teamA_auto_measuring wheel

Dependencies:   QEI R1370MeasuringWheel

Committer:
ec30109b
Date:
Tue Sep 03 05:33:38 2019 +0000
Revision:
8:8ea251946b2a
Parent:
3:30045028d27e
keisokurin

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tanabe2000 0:505dd5510add 1 #ifndef MEASURING_WHEEL_H
tanabe2000 0:505dd5510add 2 #define MEASURING_WHEEL_H
tanabe2000 0:505dd5510add 3
tanabe2000 0:505dd5510add 4 #include "mbed.h"
tanabe2000 0:505dd5510add 5 #include "QEI.h"
tanabe2000 3:30045028d27e 6 #include "R1370.h"
ec30109b 8:8ea251946b2a 7 #include "pin_config.h"
ec30109b 8:8ea251946b2a 8 #include "SerialMultiByte.h"
ec30109b 8:8ea251946b2a 9 #include "Dense.h"
ec30109b 8:8ea251946b2a 10
ec30109b 8:8ea251946b2a 11 #define FIRST_HEDDER 0xEE
ec30109b 8:8ea251946b2a 12 #define SECOND_HEDDER 0xFF
ec30109b 8:8ea251946b2a 13 #define BUFFER_SIZE 6
tanabe2000 0:505dd5510add 14
tanabe2000 0:505dd5510add 15 class MeasuringWheel
tanabe2000 0:505dd5510add 16 {
tanabe2000 0:505dd5510add 17 public :
tanabe2000 0:505dd5510add 18 MeasuringWheel(PinName channel1_1, PinName channel1_2, PinName channel2_1, PinName channel2_2, PinName channel3_1, PinName channel3_2);
tanabe2000 0:505dd5510add 19
ec30109b 8:8ea251946b2a 20 double getOutX();
ec30109b 8:8ea251946b2a 21 double getOutY();
tanabe2000 1:3f01bf4d7e56 22 void transmissionXY();
ec30109b 8:8ea251946b2a 23 double getWheel1(),getWheel2(),getWheel3();
ec30109b 8:8ea251946b2a 24 double getjyroAngle();
ec30109b 8:8ea251946b2a 25 double yaw;
tanabe2000 0:505dd5510add 26 private :
ec30109b 8:8ea251946b2a 27 static const double PIII = 3.14159265358979;
ec30109b 8:8ea251946b2a 28 double diameter[3];
ec30109b 8:8ea251946b2a 29 double distance[3];
ec30109b 8:8ea251946b2a 30 double radian[3];
ec30109b 8:8ea251946b2a 31 Eigen::Matrix3d coefficient;
ec30109b 8:8ea251946b2a 32 Eigen::Vector3d wheel;
ec30109b 8:8ea251946b2a 33 Eigen::FullPivHouseholderQR<Eigen::Matrix3d> dec;
ec30109b 8:8ea251946b2a 34 Eigen::Vector3d ans;
ec30109b 8:8ea251946b2a 35 double miniX,miniY,X,Y,subX,subY,minusX,minusY,dphi, phi;
ec30109b 8:8ea251946b2a 36 int loopCounter;
tanabe2000 0:505dd5510add 37 void computeXY();
tanabe2000 3:30045028d27e 38 void threadloop();
tanabe2000 0:505dd5510add 39
tanabe2000 0:505dd5510add 40 QEI w1;
tanabe2000 0:505dd5510add 41 QEI w2;
tanabe2000 0:505dd5510add 42 QEI w3;
ec30109b 8:8ea251946b2a 43 SerialMultiByte serial;
tanabe2000 3:30045028d27e 44 R1370 r1370;
ec30109b 8:8ea251946b2a 45 double Cdif, yawdegree;
tanabe2000 3:30045028d27e 46 Thread thread;
tanabe2000 3:30045028d27e 47 uint16_t X_, Y_,ofsetX, ofsetY, yawdegree_;
tanabe2000 3:30045028d27e 48 char upBitX, upBitY, upBitAngle;
tanabe2000 3:30045028d27e 49 char downBitX,downBitY, downBitAngle;
tanabe2000 0:505dd5510add 50 char get;
ec30109b 8:8ea251946b2a 51 void resetposition();
ec30109b 8:8ea251946b2a 52 uint8_t txdata[BUFFER_SIZE];
ec30109b 8:8ea251946b2a 53
ec30109b 8:8ea251946b2a 54
ec30109b 8:8ea251946b2a 55
tanabe2000 0:505dd5510add 56 };
tanabe2000 1:3f01bf4d7e56 57
ec30109b 8:8ea251946b2a 58 #endif