1#ifndef VELOCITY_ESTIMATOR_H
2#define VELOCITY_ESTIMATOR_H
101 void determineVerticalAxis(
const std::array<float, 3>& rawAcl);
105 float stateAltitude_m_;
106 float stateVelocity_mps_;
109 float P_[2][2] = {{}, {}};
112 uint32_t lastTimestamp_ms_;
118 float accelNoiseVariance_;
119 float altimeterNoiseVariance_;
122 static constexpr float kGravity_mps2 = 9.81f;
125 int8_t verticalAxis_;
126 int8_t verticalDirection_;
127 bool verticalAxisDetermined_;
130 float inertialVerticalAcceleration_;
constexpr float kMillisecondsToSeconds
Timestamped float measurement container.
virtual float getEstimatedVelocity() const
virtual int8_t getVerticalDirection() const
virtual float getEstimatedAltitude() const
virtual uint32_t getTimestamp() const
VerticalVelocityEstimator(NoiseVariances noise={1.0f, 0.1f})
virtual float getInertialVerticalAcceleration() const
void update(const AccelerationTriplet &accel, const DataPoint &altitude)
virtual int8_t getVerticalAxis() const
void init(InitialState initialState)
uint32_t initialTimestamp