Hummingbird Flight Software
Flight software for the Hummingbird FCU quadcopter flight controller. Designed to run on the Teensy 4.1. Developed with VSCode+PlatformIO.
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
GravityComputer Class Reference

Gravity computer class. More...

#include <gravity_computer.h>

Public Member Functions

 GravityComputer ()
 Compute gravitational acceleration as a function of latitude and altitude above mean sea level. More...
 
 ~GravityComputer ()
 
 GravityComputer (const GravityComputer &)=delete
 
GravityComputeroperator= (const GravityComputer &)=delete
 
bool Update (float lat_rad=CONSTS_PIDIV4, float lon_rad=0.0f, float alt_msl=280.0f)
 Use a gravitymodel to compute gravity at a given latitude, longitude, and altitude. More...
 
float GetGravity ()
 Returns gravitational acceleration in [m/s/s]. More...
 

Static Public Member Functions

static GravityComputerGetInstance ()
 

Public Attributes

uint32_t errCount
 Number of errors or invalid inputs to the code. More...
 

Private Member Functions

bool _ComputeGravity (float lat, float lon, float alt)
 Compute gravitational acceleration in [m/s/s] using a gravity model. More...
 

Private Attributes

float _grav
 Computed gravitational acceleration in [m/s/s]. More...
 
MedianFilter GravSmoother
 Median filter to smooth out gravity. More...
 

Detailed Description

Gravity computer class.

Constructor & Destructor Documentation

◆ GravityComputer() [1/2]

GravityComputer::GravityComputer ( )

Compute gravitational acceleration as a function of latitude and altitude above mean sea level.

Down is positive!

◆ ~GravityComputer()

GravityComputer::~GravityComputer ( )
inline

◆ GravityComputer() [2/2]

GravityComputer::GravityComputer ( const GravityComputer )
delete

Member Function Documentation

◆ _ComputeGravity()

bool GravityComputer::_ComputeGravity ( float  lat,
float  lon,
float  alt 
)
private

Compute gravitational acceleration in [m/s/s] using a gravity model.

Parameters
latGeodetic latitude in [rad].
lonGeodetic longitude in [rad].
altAltitude above MSL in [m].
Returns
True if good calculation, false if an error was encountered.

◆ GetGravity()

float GravityComputer::GetGravity ( )

Returns gravitational acceleration in [m/s/s].

Returns
Gravitational acceleration in [m/s/s]
See also
Update()
Warning
Be sure to periodically call Update().

◆ GetInstance()

GravityComputer & GravityComputer::GetInstance ( )
static

◆ operator=()

GravityComputer& GravityComputer::operator= ( const GravityComputer )
delete

◆ Update()

bool GravityComputer::Update ( float  lat_rad = CONSTS_PIDIV4,
float  lon_rad = 0.0f,
float  alt_msl = 280.0f 
)

Use a gravitymodel to compute gravity at a given latitude, longitude, and altitude.

Parameters
lat_rad[rad] Geodetic latitude.
lon_rad[rad] Geodetic longitude.
alt_msl[m] Altitude above MSL.
Returns
True if everything is good, false if there was an error.

Member Data Documentation

◆ _grav

float GravityComputer::_grav
private

Computed gravitational acceleration in [m/s/s].

◆ errCount

uint32_t GravityComputer::errCount

Number of errors or invalid inputs to the code.

◆ GravSmoother

MedianFilter GravityComputer::GravSmoother
private

Median filter to smooth out gravity.


The documentation for this class was generated from the following files: