This repo contains the source code for the TinyMPC-integrated firmware used in the Crazyflie 2.1. TinyMPC is publicly available at tinympc.org.
Currently, it supports:
- Full-state quaternion-based LQR or LQI controller within the app layer in
examples/controller_lqr
andexamples/controller_lqi
. - Full-state quaternion-based TinyMPC supporting quadratic objective, linear system, linear and second-order cone constraints on state and control input in
example/controller_mpc*
. - Some other related stuff.
High-level commands via https://github.com/sschoedel/crazyswarm/tree/demo/socp
You might want to check different branches for the corresponding experiments.
Feel free to reach out to the developers if you have any questions.
The 2017.06 release was the last release with Crazyflie 1.0 support. If you want to play with the Crazyflie 1.0 and modify the code, please clone this repo and branch off from the 2017.06 tag.
See the building and flashing instructions in the github docs folder.
make && CLOAD_CMDS="-w radio://0/1/2M" make cload
Check out the Bitcraze crazyflie-firmware documentation on our website.
The easiest way to generate the API documentation is to use the toolbelt
tb build-docs
and to view it in a web page
tb docs
Go to the contribute page on our website to learn more.
To run the tests please have a look at the unit test documentation.
The code is licensed under LGPL-3.0