New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
Sensors/Imu/Imu.h
- Committer:
- joe4465
- Date:
- 2015-05-08
- Revision:
- 4:9ffbf9101992
- Parent:
- 3:4823d6750629
File content as of revision 4:9ffbf9101992:
#include "mbed.h"
#include "Global.h"
#include "FreeIMU.h"
#include "filter.h"
#include "ConfigFileWrapper.h"
#include "Kalman.h"
#ifndef Imu_H
#define Imu_H
class Imu
{
public:
Imu(ConfigFileWrapper& configFileWrapper);
~Imu();
struct Rate
{
double yaw;
double pitch;
double roll;
};
struct Angle
{
double yaw;
double pitch;
double roll;
};
struct Velocity
{
double x;
double y;
double z;
};
struct Acceleration
{
double x;
double y;
double z;
};
void enable(bool enable);
Rate getRate();
Angle getAngle(bool bias = true);
Velocity getVelocity(float time);
Velocity getVelocity();
Acceleration getAcceleration();
double getAltitude();
void zeroGyro();
void zeroBarometer();
void zeroAccel();
void setCurrentVelocity(Velocity velocity);
private:
FreeIMU _freeImu;
filter* _barometerZeroFilter;
filter* _barometerFilter;
Rate _rate;
Angle _angle;
Velocity _velocity;
float _barometerZero;
ConfigFileWrapper& _configFileWrapper;
float _accelZeroPitch;
float _accelZeroRoll;
Kalman* _kalmanXVelFilter;
Kalman* _kalmanYVelFilter;
Kalman* _kalmanZVelFilter;
};
#endif
Joseph Roberts