AHRS
Dependencies: Eigen
AHRS.h
- Committer:
- altb2
- Date:
- 2019-10-09
- Revision:
- 20:1182bc29c195
- Parent:
- 19:42ea6dd68185
- Child:
- 21:31e01d3e0143
File content as of revision 20:1182bc29c195:
#ifndef AHRS_H_ #define AHRS_H_ #include "Mahony.h" #include "MadgwickAHRS.h" #include "LinearCharacteristics.h" #include "LSM9DS1_i2c.h" #include "Signal.h" #include "EKF.h" #include "matrix.h" #include "Data_Logger.h" #include "Read_Xtern_Sensors.h" extern DATA_Xchange data; class AHRS { public: AHRS(uint8_t,float,bool); virtual ~AHRS(); float getRoll(uint8_t ft) { if(ft ==1) return ekf.get_est_state(0); else return Mahony_filter.getRollRadians(); } float getPitch(uint8_t ft) { if(ft ==1) return ekf.get_est_state(1); else return Mahony_filter.getPitchRadians(); } float getYaw() { return 0.0; } LSM9DS1 imu; Mahony Mahony_filter; EKF ekf; LinearCharacteristics raw_gx2gx; LinearCharacteristics raw_gy2gy; LinearCharacteristics raw_gz2gz; LinearCharacteristics raw_ax2ax; LinearCharacteristics raw_ay2ay; LinearCharacteristics raw_az2az; LinearCharacteristics raw_mx2mx; LinearCharacteristics raw_my2my; LinearCharacteristics raw_mz2mz; void read_imu_sensors(void); float xyzUS[3]; float xyzAS[3]; float rxryrzUS[3]; float v_xyzOF[2]; float xyzOF[3]; float xyzLIDAR[3]; float magnet_cal_0[3]; void update(); void update_as_thread(void); void start_loop(void); private: float local_time; uint8_t filtertype; Signal signal; Thread thread; Ticker ticker; void sendSignal(); float Ts; //DigitalOut dout3; }; #endif