Python library to communicate with Crazyflie
cflib is an API written in Python that is used to communicate with the Crazyflie and Crazyflie 2.0 quadcopters. It is intended to be used by client software to communicate with and control a Crazyflie quadcopter. For instance the cfclient Crazyflie PC client uses the cflib.
See below for platform specific instruction. For more info see our documentation.
git clone [email protected]:YOUR-USERNAME/crazyflie-lib-python.git
Install the cflib in editable mode,
pip install -e path/to/cflib
Uninstall the cflib if you don't want it any more,
pip uninstall cflib
Note: If you are developing for the cfclient you must use python3. On Ubuntu (16.04, 18.08) use
pip3instead of
pip.
The following should be executed in the root of the crazyflie-lib-python file tree.
This section contains a very short description of how to use virtualenv (local python environment) with package dependencies. If you don't want to use virualenv and don't mind installing cflib dependencies system-wide you can skip this section.
pip install virtualenv
virtualenv venv
Activate the environment:
source venv/bin/activate
To deactivate the virtualenv when you are done using it
deactivate
Note: For systems that support make, you can use
make venvto create an environment, activate it and install dependencies.
Install dependencies required by the lib:
pip install -r requirements.txt
To verify the installation, connect the crazyflie and run an example:
python examples/basiclog
For information and installation of the toolbelt.
tb test
tb verify
Note: Docker and the toolbelt is an optional way of running tests and reduces the work needed to maintain your python environment.
Tox is used for native testing:
pip install tox* If test fails after installing tox with
pip install tox, installing with
sudo apt-get install toxresult a successful test run
TOXENV=py34 tox
TOXENV=py36 tox
Note: You must have the specific python versions on your machine or tests will fail. (ie. without specifying the TOXENV,
toxruns tests for python 3.3, 3.4 and would require all python versions to be installed on the machine.)
The following steps make it possible to use the USB Radio without being root.
sudo groupadd plugdev sudo usermod -a -G plugdev $USER
You will need to log out and log in again in order to be a member of the plugdev group.
Create a file named
/etc/udev/rules.d/99-crazyradio.rulesand add the following: ```
SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1915", ATTRS{idProduct}=="0101", MODE="0664", GROUP="plugdev" ```
To connect Crazyflie 2.0 via usb, create a file name
/etc/udev/rules.d/99-crazyflie.rulesand add the following:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0664", GROUP="plugdev"
You can reload the udev-rules using the following:
sudo udevadm control --reload-rules sudo udevadm trigger
Everyone is encouraged to contribute to the CrazyFlie library by forking the Github repository and making a pull request or opening an issue.