Eigen Revision

Dependencies:   mbed LPS25HB_I2C LSM9DS1 PIDcontroller Autopilot_Eigen LoopTicker GPSUBX_UART_Eigen SBUS_without_mainfile MedianFilter Eigen UsaPack solaESKF_Eigen Vector3 CalibrateMagneto FastPWM

Committer:
osaka
Date:
Wed Oct 20 01:50:52 2021 +0000
Revision:
87:89bbbcdb667b
Parent:
83:e69ab831031c
Child:
88:be349faa1976
Pmod nav

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cocorlow 56:888379912f81 1 #include "global.hpp"
cocorlow 56:888379912f81 2
NaotoMorita 67:41fcdfb7cc5a 3
cocorlow 56:888379912f81 4 // var
cocorlow 56:888379912f81 5
cocorlow 56:888379912f81 6 // communication
cocorlow 56:888379912f81 7 I2C i2c(PB_9,PB_8); // sda, scl
NaotoMorita 82:c183c29d2427 8 UsaPack pc(USBTX, USBRX, 115200); // log - tail
NaotoMorita 76:7fd3ac1afe3e 9 Serial sd(PG_14,PG_9);
osaka 87:89bbbcdb667b 10 Serial twelite(PE_8,PE_7);
cocorlow 56:888379912f81 11
cocorlow 56:888379912f81 12 // io
cocorlow 56:888379912f81 13 DigitalIn userButton(USER_BUTTON);
NaotoMorita 70:99f974d8960e 14 SBUS sbus(PD_5, PD_6);
NaotoMorita 70:99f974d8960e 15
cocorlow 56:888379912f81 16 // control
NaotoMorita 70:99f974d8960e 17 FastPWM servoRight(PE_9);
NaotoMorita 70:99f974d8960e 18 FastPWM servoLeft(PE_11);
NaotoMorita 70:99f974d8960e 19 FastPWM servoThrust(PE_13);
NaotoMorita 74:f67062e7813e 20 PID pitchPID(10.0f,0.0f,0.0f,PID_dt); //rad
NaotoMorita 74:f67062e7813e 21 PID pitchratePID(1.0f, 0.0f, 0.0f, PID_dt);//rad/s
NaotoMorita 74:f67062e7813e 22 PID rollPID(5.0f,0.0f,0.0f,PID_dt);
NaotoMorita 74:f67062e7813e 23 PID rollratePID(0.5f, 0.0, 0.0, PID_dt);//rad/s
NaotoMorita 76:7fd3ac1afe3e 24 ScErrStateEKF ekf; // EKF class
NaotoMorita 76:7fd3ac1afe3e 25 int obsCount = 0;
cocorlow 56:888379912f81 26
NaotoMorita 70:99f974d8960e 27 float rc[16];
cocorlow 56:888379912f81 28 int loop_count = 0;
cocorlow 56:888379912f81 29 float att_dt = 0.01f;
cocorlow 56:888379912f81 30
cocorlow 56:888379912f81 31 // position
cocorlow 56:888379912f81 32 Vector3 rpy(0.0f, 0.0f, 0.0f); // x:roll y:pitch z:yaw
cocorlow 56:888379912f81 33 Vector3 acc;
NaotoMorita 68:b9f6938fab9d 34 Vector3 accref(0.0f, 0.0f, 0.98f);
cocorlow 56:888379912f81 35 Vector3 mag;
cocorlow 56:888379912f81 36 Vector3 magref(0.65f, 0.0f, 0.75f);
cocorlow 56:888379912f81 37 Vector3 gyro;
NaotoMorita 82:c183c29d2427 38 Vector3 vi;
NaotoMorita 77:2bf856e3eca4 39
NaotoMorita 73:84ffa0166e6c 40 float de = 0.0f;
NaotoMorita 73:84ffa0166e6c 41 float da = 0.0f;
NaotoMorita 73:84ffa0166e6c 42 float dT = 0.0f;
NaotoMorita 70:99f974d8960e 43 MedianFilter accMedian(3);
NaotoMorita 70:99f974d8960e 44 MedianFilter gyroMedian(3);
NaotoMorita 70:99f974d8960e 45 MedianFilter magMedian(3);
NaotoMorita 72:267e2cfddb0b 46
NaotoMorita 70:99f974d8960e 47 float scaledServoOut[2]= {0.0f,0.0f};
NaotoMorita 70:99f974d8960e 48 float scaledMotorOut[1]= {-1.0f};
NaotoMorita 63:9c4973a98600 49 float servoOut[2] = {1500.0f,1500.0f};
NaotoMorita 70:99f974d8960e 50 float motorOut[1] = {1100.0f};
cocorlow 56:888379912f81 51
cocorlow 56:888379912f81 52 int calibrationFlag = 0;
NaotoMorita 77:2bf856e3eca4 53 int agoffset[6] = {0, 0, 0, -584, -94, 37};
NaotoMorita 76:7fd3ac1afe3e 54
NaotoMorita 76:7fd3ac1afe3e 55 float magbias[4] = {-134.817047, 127.833481, -152.631836, 44.508556};
NaotoMorita 75:a505b9896da1 56 float magbiasMin[3] = {-174.831711, 93.465691, -188.617172};
NaotoMorita 75:a505b9896da1 57 float magbiasMax[3] = {-110.413963, 162.321548, -122.566071};
NaotoMorita 75:a505b9896da1 58 float accMin[3] = {-0.963692, -0.974141, -1.012899};
NaotoMorita 75:a505b9896da1 59 float accMax[3] = { 1.025954, 0.974748, 0.987155};
cocorlow 56:888379912f81 60
NaotoMorita 76:7fd3ac1afe3e 61 Vector3 rpy_align( 8.742834f*M_PI/180.0f, -0.228718f*M_PI/180.0f, 0.0f*M_PI/180.0f);
cocorlow 56:888379912f81 62
cocorlow 56:888379912f81 63
cocorlow 56:888379912f81 64 // UsaPack
NaotoMorita 73:84ffa0166e6c 65 valuePack vp;
NaotoMorita 83:e69ab831031c 66 sendPack sp;
NaotoMorita 73:84ffa0166e6c 67
NaotoMorita 73:84ffa0166e6c 68 // HIL
NaotoMorita 82:c183c29d2427 69 bool hilFlag = true;
NaotoMorita 76:7fd3ac1afe3e 70 bool serialControlSource = false;
NaotoMorita 76:7fd3ac1afe3e 71 bool serialParamSource = false;
NaotoMorita 76:7fd3ac1afe3e 72 int checkParamSerial[5] = {0,0,0,0,0};
cocorlow 56:888379912f81 73
cocorlow 56:888379912f81 74 float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
cocorlow 56:888379912f81 75 {
cocorlow 56:888379912f81 76 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
NaotoMorita 67:41fcdfb7cc5a 77 }