2019NHK_teamA_auto_measuring wheel

Dependencies:   QEI R1370MeasuringWheel

measuring_wheel.h

Committer:
ec30109b
Date:
2019-09-03
Revision:
8:8ea251946b2a
Parent:
3:30045028d27e

File content as of revision 8:8ea251946b2a:

#ifndef MEASURING_WHEEL_H
#define MEASURING_WHEEL_H

#include "mbed.h"
#include "QEI.h"
#include "R1370.h"
#include "pin_config.h"
#include "SerialMultiByte.h"
#include "Dense.h"

#define FIRST_HEDDER 0xEE
#define SECOND_HEDDER 0xFF
#define BUFFER_SIZE 6

class MeasuringWheel
{
public :
    MeasuringWheel(PinName channel1_1, PinName channel1_2, PinName channel2_1, PinName channel2_2, PinName channel3_1, PinName channel3_2);

    double getOutX();
    double getOutY();
    void transmissionXY();
    double getWheel1(),getWheel2(),getWheel3();
    double getjyroAngle();
    double yaw;
private :
    static const double PIII = 3.14159265358979;
    double diameter[3];
    double distance[3];
    double radian[3];
    Eigen::Matrix3d coefficient;
    Eigen::Vector3d wheel;
    Eigen::FullPivHouseholderQR<Eigen::Matrix3d> dec;
    Eigen::Vector3d ans;
    double miniX,miniY,X,Y,subX,subY,minusX,minusY,dphi, phi;
    int loopCounter;
    void computeXY();
    void threadloop();

    QEI w1;
    QEI w2;
    QEI w3;
    SerialMultiByte serial;
    R1370 r1370;
    double Cdif, yawdegree;
    Thread thread;
    uint16_t X_, Y_,ofsetX, ofsetY, yawdegree_;
    char upBitX, upBitY, upBitAngle;
    char downBitX,downBitY, downBitAngle;
    char get;
    void resetposition();
    uint8_t txdata[BUFFER_SIZE];



};

#endif