This page is meant as an introduction and overview of the path from sensor acquisition to motor control,also called the stabilizer module. It will not go into detail but it mostly give a general outline of how the sensor measurements go to the state estimators to the controllers and finally distributed to the motors by power distribution. Ofcourse, the motors have an affect on how the crazyflie flies and that inderectly has an effect on what the sensors detect in the next time step.
- State Estimation
- State Controller
- Configure estimators and control
- Commander Framework
- Power Distribution
Sensors are essential for the flight of a crazyflie. Here is selection of the sensors listed that the crazyflie eventually uses for state estimation:
- On-board Sensors
- Accelerometer: acceleration in body fixed coordinates in m/s2
- Gyroscope: angle rate in roll pitch and yaw (rad/s)
- Pressure Sensor: Airpressure in mBar
- Flowdeck v2
- ToF sensor*: Distance to a surface in milimeters
- Optical flow sensor: The detection movement of pixels in px per timesample
- Loco positioning deck:
- Ultra Wide band module: The distance between two UWB modules or TDOA*** in meters.
- Lighthouse deck:
- IR receivers: Sweep angle of htc vive basestations in radians.
**Zranger v2 also contains a laser-ranger
***Time-difference of Arrival
There are 2 state estimators in the crazyflie:
- Complementary Filter
- Extended Kalman Filter
Go to the state estimation page for more indepth information about how the state estimation is implemented in the crazyflie firmware.
There are 3 controllers in the crazyflie
- PID controller
- INDI controller
- Mellinger controller
Go to the controllers page, for more indepth information about how the controllers are implemented in the crazyflie firmware.
Configuring Controllers and Estimators
Go to this configuration page, if you would like to configure different controllers and estmators,
An desired state can be handled by the setpoint structure in position or atitude, which can be set by the cflib or the highlevel commander.
Go to the commander page, for more indepth information about how the commander framework are implemented in the crazyflie firmware, please go
After the state controller has send out its commands, this is not the end of the line yet. The controllers send out their commands relating to their yaw, roll and pitch angles. How the motors should respond in order to adhere these attitude based commands depends on a few factors:
- Quadrotor configuration (found in: power_distribution_stock.c):
- x-configuration: The body fixed coordinate system’s x-axis is pointed in between two propellors (Default)
- +-configuration: The body fixed coordinate system’s x-axis is pointed in one propellor
- Explaination about this will come soon