Library containing Crazyflie 2.0 controller classes: - Attitude estimator - Horizontal estimator - Vertical estimator - Attitude controller - Horizontal controller - Vertical controller - Mixer
VerticalEstimator/VerticalEstimator.cpp
- Committer:
- fbob
- Date:
- 2018-09-28
- Revision:
- 9:15058b4fa090
- Parent:
- 7:220ce3839be8
- Child:
- 11:fad579538b4c
File content as of revision 9:15058b4fa090:
#include "mbed.h" #include "VerticalEstimator.h" // Class constructor VerticalEstimator::VerticalEstimator() : range(PB_7,PB_6) { } // Initialize class void VerticalEstimator::init() { range.init(); } // Estimate vertical position and velocity void VerticalEstimator::estimate(float phi, float theta) { range.read(); measure(phi,theta); predict(); z = rho_ver*z_m+(1-rho_ver)*z_p; w = rho_ver*w_m+(1-rho_ver)*w_p; } // Measure vertical position and velocity void VerticalEstimator::measure(float phi, float theta) { float z_m_new = range.z*cos(phi)*cos(theta); w_m = (z_m_new-z_m)/dt_pos; z_m = z_m_new; } // Predict vertical position and velocity void VerticalEstimator::predict() { z_p = z+w*dt_pos; w_p = w; }