The Crazyflie PC client enables flashing and controlling the Crazyflie. There's also a Python library that can be integrated into other applications where you would like to use the Crazyflie.
For more info see our wiki.
Note. The project is currently being reorganized, which means that This documentation might become inacurate. You can track the reorganisation work in the ticket #227.
The Crazyflie client requires cflib. Follow the cflib readme to install it.
Running from source on Windows is tested using the miniconda python distribution. It is possible to run from any distribution as long as the required packages are installed. Building the windows installer requires Python 3.4 (because py2exe
is not distributed for Python 3.5 yet). The following instructions assumes Miniconda 32-bit is installed.
Open a command line windows and move to the crazyflie clients folder (the exact command depends of where the project is cloned):
cd crazyflie-clients-python
Create and activate a Python 3.4 environment with numpy pyqt and pyqtgraph from conda (it is the packages we cannot easily install with pip):
conda create -y -n cfclient python=3.4 numpy=1.10.1 pyqt pyqtgraph
activate cfclient
Download the SDL2.dll windows library:
python tools\build\prep_windows
Install the client in development mode:
pip install -e .[dev]
You can now run the clients:
cfclient
cfheadless
cfloader
cfzmq
NOTE: To use the Crazyradio you will have to install the drivers
When you are able to run from source, you can build the windows executable and installer.
First build the executable
python setup.py py2exe
NOTE: The first time the previous command will fail complaining about a PyQt4\uic\port_v2
folder. Remove this folder with rmdir \Q \S path\to\PyQt4\uic\port_v2
,
you can copy-paste the folder path from the py2exe error message.
Now you can run the client with dist\cfclient.exe
.
To generate the installer you need nsis installed and in the path. If you
are a user of chocolatey you can install it with choco install nsis.portable -version 2.50
,
otherwise you can just download it and install it manually.
To create the installer:
python win32install\generate_nsis.py
makensis win32install\cfclient.nsi
IMPORTANT NOTE: The following will use Homebrew and its own Python distribution. If you have a lot of other 3rd party python stuff already running on your system they might or might not be affected by this.
-
Install Homebrew's Python3
brew install python3
This will also pull pip3, which we will use later to install some Python modules that are not distributed through Homebrew.
-
Install SDL for Python
brew install sdl sdl2 sdl_image sdl_mixer sdl_ttf portmidi
-
Install PyQt
If you already have pyqt installed for python2 you need to uninstall it first
brew uninstall pyqt brew install pyqt --with-python3
-
Install remaining dependencies
brew install libusb pip3 install pysdl2 pyusb pyqtgraph appdirs
-
Install cflib from https://github.com/bitcraze/crazyflie-lib-python
-
Install cfclient to run it from source. From the source folder run:
pip3 install -e .
-
You now have all the dependencies needed to run the client. From the source folder, run it with the following command:
python bin/cfclient
-
Install MacPorts if needed. Otherwise update your installation with:
sudo port selfupdate sudo port upgrade outdated
-
Install dependencies. Note that there are quite a few, so this could take a while:
sudo port install libusb python34 py34-SDL2 py34-pyqt4 py34-pip
To make the MacPorts
python
andpip
the default commands:sudo port select --set python python34 sudo port select --set python3 python34 sudo port select --set pip pip34
To install
pyusb
frompip
, use:sudo pip install pyusb appdirs
To enable the plotter tab install pyqtgraph, this takes a lot of time:
sudo port install py34-pyqtgraph
Install cflib from https://github.com/bitcraze/crazyflie-lib-python
Install cfclient to run it from source. From the source folder run:
pip install -e .
You can now run the client from the source folder with
python bin/cfclient
Or, if you did not run the
port select
command to set the MacPortspython
as the default, use:/opt/local/bin/python3.4 bin/cfclient
-
To make it easier to run MacPorts, add
/opt/local/bin
to your PATH variable. The MacPorts installer should take care of that, but take a look at~/.profile
to make sure. If you have any issues it could be due to the libraries not getting picked up correctly. Fix that by settingDYLD_LIBRARY_PATH
to/opt/local/lib
in~/.profile
:export DYLD_LIBRARY_PATH=/opt/local/lib
Install cflib from https://github.com/bitcraze/crazyflie-lib-python
Install cfclient to run it from source. From the source folder run (to install
for your user only you can add --user
to the command):
pip3 install -e .
To launch the GUI application in the source folder type:
python bin/cfclient
To launch the GUI after a systemwide installation, execute cfclient
.
The Crazyflie PC client has the following dependencies:
- Python 3.4
- PyUSB
- libusb 1.X (works with 0.X as well)
- PyQtGraph
- ZMQ
- PyQt4
- appdirs
Example commands to install these dependencies:
-
Fedora:
TODO Please contribute
-
Ubuntu (14.04):
sudo apt-get install python3 python3-pip python3-pyqt4 python3-zmq pip3 install pyusb==1.0.0b2 pip3 install pyqtgraph appdirs
-
Ubuntu (15.04):
sudo apt-get install python3 python3-pip python3-pyqt4 python3-zmq python3-pyqtgraph sudo pip3 install pyusb==1.0.0b2 sudo pip3 install appdirs
-
OpenSUSE:
TODO Please contribute
Using Crazyradio on Linux requires that you set udev permissions. See the cflib readme for more information.