AHRS

Dependencies:   Eigen

Dependents:   IndNav_QK3_T265

AHRS.h

Committer:
altb2
Date:
2019-07-05
Revision:
8:51062bb877f0
Parent:
7:bfde7bd5fe31
Child:
9:644266463f5f

File content as of revision 8:51062bb877f0:

#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"

extern data_logger my_logger;

class AHRS{
public:
    AHRS(uint8_t,float);
    virtual ~AHRS();
    
    float getRoll(uint8_t ft) {
        if(ft ==1)
           return RPY_filter.get_est_state(0);
        else
            return Mahony_filter.getRollRadians();   
    }
    float getPitch(uint8_t ft) {
        if(ft ==1)
           return RPY_filter.get_est_state(1);
        else
            return Mahony_filter.getPitchRadians();   
    }
    float getYaw() {
        return 0.0;
    }
    LSM9DS1 imu;
    Mahony Mahony_filter;
    ekf RPY_filter;
    
    LinearCharacteristics raw_gx2gx;
    LinearCharacteristics raw_gy2gy;
    LinearCharacteristics raw_gz2gz;
    LinearCharacteristics raw_ax2ax;
    LinearCharacteristics raw_ay2ay;
    LinearCharacteristics raw_az2az;
    LinearCharacteristics int2magx;     
    LinearCharacteristics int2magy;
    LinearCharacteristics int2magz;
private:
    Signal signal;
    Thread thread;
    Ticker ticker;
    Mutex mutex;      // mutex to lock critical sections 
    void sendSignal();
    float local_time;
    void update();
    matrix measurement;
    //SPI spi;      % old board with spi
    
//    PinName csAG;         // for spi
//    PinName csM;           //  "
};