solaESKF_EIGEN

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

run.cpp

Committer:
NaotoMorita
Date:
2021-06-22
Revision:
66:e5afad70fdd8
Parent:
61:c05353850017
Child:
68:b9f6938fab9d

File content as of revision 66:e5afad70fdd8:

#include "global.hpp"

void run()
{
    getIMUval();
    ekf.triad(acc/acc.Norm(), accref/accref.Norm(), mag/mag.Norm(), magref/magref.Norm());
    float sum2accnorm = 0;
    float sumaccnorm = 0;
    for(int i = 0; i < 1000; i++){
        getIMUval();
        sumaccnorm += acc.Norm();
        sum2accnorm += acc.Norm()*acc.Norm();
    }
    accref.z = -sumaccnorm / 1000.0f;
    float sigma_accnorm = sqrt(sum2accnorm/1000.0f-accref.z*accref.z);
    pc.Subscribe(0000, &(posValues));
    
    LoopTicker PIDtick;
    PIDtick.attach(calcServoOut,PID_dt);
    
    Timer _t;
    _t.start();
    
    while(1)
    {
        float tstart = _t.read();
        //姿勢角を更新
        getIMUval();
        //ekf.updateBetweenMeasures(gyro, att_dt);
        //ekf.computeAngles(rpy, rpy_g, rpy_align);
        PIDtick.loop(); 
        
        float tend = _t.read();
        att_dt = (tend-tstart);
    }
}