Controller: Difference between revisions
Added full PID client figure |
m added link to original pid header in client PID section |
||
| Line 29: | Line 29: | ||
[[Image:CompletePIDArchitectureFigure.png|500px]] | [[Image:CompletePIDArchitectureFigure.png|500px]] | ||
The controllers inside the red box are the original PID controllers located on the [ | The controllers inside the red box are the original PID controllers located on the Firmware as shown in the [[#Original PID Controllers (Angular Rotation)|Original PID's]]. | ||
Revision as of 16:37, 13 July 2016
The Crazyflie platform is completely customizable when it comes to the control design. As long as the controller can be written in C or C++, we can implement it in the Platform. This applies to both the controllers run on the PC Client and the controllers run on the Firmware of the Crazyflie. Originally the only controllers in the Platform were Firmware PID's that controlled the angular position and rates of the Crazyflie for hand flight. The original controller layout can be seen in Figure 1.
Below you will find documentation on the different types of Controllers that have been applied to the platform, organized by their location in the Platform.
Firmware
Original PID Controllers (Angular Rotation)
Directly on the Crazyflie Firmware there are 5 PID controllers as seen here:
The Pitch and Roll angular position PID's receive constant setpoints from some outside source (gamepad controller or automated controller). The outputs of those angular position controllers is then fed into the angular rate controllers as shown. This final output is then fed into the Motor Command block which converts the angular rate setpoints into motor commands.
State Estimator
(***NOT YET IMPLEMENTED***)
Bitcraze is currently working on adding a state estimator onto the Firmware to handle control calculations instead of the PID.
The code is in place but the controller is not yet used as of 7/13/16.
PC Client
PID Controllers (Position and Yaw)
The first controller implemented on the Client were 4 PID controllers used to stabilize the Crazyflie's position in X, Y, and Z, as well as angular position in Yaw respectively. These PID's feed directly into the Firmware PID's as seen here:
The controllers inside the red box are the original PID controllers located on the Firmware as shown in the Original PID's.