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

Revision:
76:7fd3ac1afe3e
Parent:
75:a505b9896da1
Child:
77:2bf856e3eca4
--- a/global.cpp	Tue Jul 20 11:57:05 2021 +0000
+++ b/global.cpp	Sat Aug 07 06:54:58 2021 +0000
@@ -6,6 +6,7 @@
 // communication
 I2C i2c(PB_9,PB_8);  // sda, scl
 UsaPack pc(USBTX, USBRX, 57600); // log - tail
+Serial sd(PG_14,PG_9);
 
 // sensor
 MPU6050 accelgyro;
@@ -25,7 +26,8 @@
 PID pitchratePID(1.0f, 0.0f, 0.0f, PID_dt);//rad/s
 PID rollPID(5.0f,0.0f,0.0f,PID_dt);
 PID rollratePID(0.5f, 0.0, 0.0, PID_dt);//rad/s
-errStateEKF ekf; // EKF class
+ScErrStateEKF ekf; // EKF class
+int obsCount = 0;
 
 float rc[16];
 int loop_count = 0;
@@ -33,7 +35,6 @@
 int16_t ax, ay, az;
 int16_t gx, gy, gz;
 MotionSensorDataUnits mdata;
-float magval[3] = {1.0f, 0.0f, 0.0f};
 
 // position
 Vector3 rpy(0.0f, 0.0f, 0.0f); // x:roll  y:pitch  z:yaw
@@ -56,14 +57,15 @@
 float motorOut[1] = {1100.0f};
 
 int calibrationFlag = 0;
-int agoffset[6] = {0, 0, 0, -578, -88, 31};
+int agoffset[6] = {0, 0, 0, -568, -103, 11};
+
+float magbias[4] = {-134.817047, 127.833481, -152.631836, 44.508556};
 float magbiasMin[3] = {-174.831711, 93.465691, -188.617172};
 float magbiasMax[3] = {-110.413963, 162.321548, -122.566071};
 float accMin[3] = {-0.963692, -0.974141, -1.012899};
 float accMax[3] = { 1.025954, 0.974748, 0.987155};
 
-Vector3 rpy_align(8.201975f*M_PI/180.0f, -0.250809f*M_PI/180.0f, 0.0f*M_PI/180.0f
-);
+Vector3 rpy_align( 8.742834f*M_PI/180.0f, -0.228718f*M_PI/180.0f, 0.0f*M_PI/180.0f);
 
 
 // UsaPack
@@ -71,6 +73,9 @@
 
 // HIL
 bool hilFlag = false;
+bool serialControlSource = false;
+bool serialParamSource = false;
+int checkParamSerial[5] = {0,0,0,0,0};
 
 float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
 {