2019NHK_teamA_auto_measuring wheel
Dependencies: QEI R1370MeasuringWheel
measuring_wheel.h@8:8ea251946b2a, 2019-09-03 (annotated)
- Committer:
- ec30109b
- Date:
- Tue Sep 03 05:33:38 2019 +0000
- Revision:
- 8:8ea251946b2a
- Parent:
- 3:30045028d27e
keisokurin
Who changed what in which revision?
User | Revision | Line number | New 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 |