Crazyflie 2.0 Controller
Dependents: Drone_Controlador_Atitude
Mixer/Mixer.h@0:332926683ee3, 2018-10-08 (annotated)
- Committer:
- IgneousGuikas
- Date:
- Mon Oct 08 11:07:14 2018 +0000
- Revision:
- 0:332926683ee3
- Child:
- 1:2abfa02e99d5
First version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
IgneousGuikas | 0:332926683ee3 | 1 | #ifndef Mixer_h |
IgneousGuikas | 0:332926683ee3 | 2 | #define Mixer_h |
IgneousGuikas | 0:332926683ee3 | 3 | |
IgneousGuikas | 0:332926683ee3 | 4 | #include "mbed.h" |
IgneousGuikas | 0:332926683ee3 | 5 | |
IgneousGuikas | 0:332926683ee3 | 6 | const float alpha = 1.145f*pow(10.0f,-7); |
IgneousGuikas | 0:332926683ee3 | 7 | const float beta = 1.001f*pow(10.0f,-9); |
IgneousGuikas | 0:332926683ee3 | 8 | const float kl = 2.1f*pow(10.0f,-8); |
IgneousGuikas | 0:332926683ee3 | 9 | const float kd = 1.52f*pow(10.0f,-10); |
IgneousGuikas | 0:332926683ee3 | 10 | const float l = 33.0f*pow(10.0f,-3); |
IgneousGuikas | 0:332926683ee3 | 11 | |
IgneousGuikas | 0:332926683ee3 | 12 | class Mixer |
IgneousGuikas | 0:332926683ee3 | 13 | { |
IgneousGuikas | 0:332926683ee3 | 14 | public: |
IgneousGuikas | 0:332926683ee3 | 15 | // Class constructor |
IgneousGuikas | 0:332926683ee3 | 16 | Mixer(); |
IgneousGuikas | 0:332926683ee3 | 17 | // Actuate motors with the desired force (N) and torques (N.m) |
IgneousGuikas | 0:332926683ee3 | 18 | void actuate( float ft , float tau_phi , float tau_theta , float tau_psi ); |
IgneousGuikas | 0:332926683ee3 | 19 | private: |
IgneousGuikas | 0:332926683ee3 | 20 | // Motors PWM outputs |
IgneousGuikas | 0:332926683ee3 | 21 | PwmOut motor0, motor1, motor2, motor3; |
IgneousGuikas | 0:332926683ee3 | 22 | // Angular velocities ( rad /s) |
IgneousGuikas | 0:332926683ee3 | 23 | float omega0, omega1, omega2, omega3; |
IgneousGuikas | 0:332926683ee3 | 24 | // Converts desired force (N) and torques (N.m) to angular velocities ( rad/s) |
IgneousGuikas | 0:332926683ee3 | 25 | void ft_to_omega( float ft, float tau_phi, float tau_theta, float tau_psi ); |
IgneousGuikas | 0:332926683ee3 | 26 | // Converts desired angular velocity (rad/s) to PWM signal |
IgneousGuikas | 0:332926683ee3 | 27 | float omega_to_pwm( float omega ); |
IgneousGuikas | 0:332926683ee3 | 28 | }; |
IgneousGuikas | 0:332926683ee3 | 29 | |
IgneousGuikas | 0:332926683ee3 | 30 | #endif |