User Tools

Site Tools


projects:crazyflie:pc_utils:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projects:crazyflie:pc_utils:index [2012-03-15 20:49]
macke
projects:crazyflie:pc_utils:index [2021-06-24 16:52] (current)
kimberly
Line 1: Line 1:
 +<WRAP center round important 60%>
 +This page has deprecated and will be archived. Please go to [[https://www.bitcraze.io/]].
 +</WRAP>
 ====== Crazyflie PC utilities ====== ====== Crazyflie PC utilities ======
-The Crazyflie PC utilities are developed using Python 2.6. The Crazyflie library is used from the command line tools as well as a graphical user interface.+The Crazyflie PC utilities are developed using Python 2.7. The Crazyflie library is used from the command line tools as well as a graphical user interface. For install instructions of PC side software please see [[projects:crazyflie:pc_utils:install|this page]].
  
-====== Install instructions ====== +====== Crazyflie Python Library ====== 
-The following has to be installed for the PC utilities to work: +The Crazyflie library can be used to easily integrate control and communication with the Crazyflie quadcopter into an applicationCurrently the only implementation is done in Python and can be found [[projects:crazyflie:pc_utils:pylib|here]].
-  * [[http://www.python.org/download/releases/ | Python 2.6]] (for Windows the last available binary version of Python 2.6 is [[http://www.python.org/download/releases/2.6.6/|Python 2.6.6]]) +
-  * [[http://pygame.org/download.shtml pyGame]] for reading the input devices +
-  * [[http://sourceforge.net/projects/pyusb/files/PyUSB%200.x/ | pyUSB 0.X]] for communicating with the USBRadio+
  
-For the graphical userinterface to work the following is also needed: +====== List of applications ====== 
-  * [[http://www.riverbankcomputing.co.uk/software/pyqt/download PyQt4]] bindings for QT4 +===== Crazyflie control UI ===== 
-  * [[http://pyqwt.sourceforge.net/download.html | PyQwt5]] for plotting data+The Crazyflie control UI is used to pilot the Crazyflie using a graphical user interface. A userguide for the GUI application can be found [[doc:crazyflie:client:pycfclient:index|here]]. Normally this is started from the start menu (or similar) if you have used an installerThere's also the option of starting it from the command line:
  
-===== Installing on Fedora 16 ===== 
- 
-===== Installing on Ubuintu 10.04 LTS ===== 
 <code> <code>
-sudo apt-get install python2.6 python-usb python-pygame python-qwt5-qt4 python-qt4 +usage: cfclient [-h] [--debug DEBUG]
-</code>+
  
-===== Fix udev premissions on Linux ===== +cfclient Crazyflie graphical control client
-In order to fix the permissions so it's possible to use the JTAG and USB Radio without being root do the following steps. +
-<code> +
-sudo usermod -a -G plugdev username +
-</code> +
-Note that you will need to logout and in again for the added group to take effect.+
  
-Find the JTAG vendor/product ID by running lsusb. +optional arguments
- +  -h, --help            show this help message and exit 
-Create a file named /etc/udev/rules.d/99-jtagkey.rules and add the following+  --debug DEBUG, -d DEBUG 
-<code> +                        set debug level [minimalinfo, debug, debugfile]
-SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="0664", GROUP="plugdev" +
-</code> +
- +
-Create a file named /etc/udev/rules.d/99-crazyradio.rules and add the following: +
-<code> +
-SUBSYSTEM=="usb"ATTRS{idVendor}=="1915", ATTRS{idProduct}=="7777", MODE="0664", GROUP="plugdev" +
-</code> +
- +
-===== Installing on Windows XP/7 ===== +
- +
-====== Graphical User Interface ====== +
-A userguide for the GUI application can be found [[projects:crazyflie:pc_utils:qt_ui|here]]. +
- +
-====== Command line tools ====== +
- +
-===== Install instructions ===== +
-Besides the common bindings nothing has to be installed. +
- +
-===== Link driver model ===== +
-All command line tools used the same link diver model. The link driver to use in order to communicate with the copter is chosen with the ''-l'' command line argument. Also the tools accepts the ''-h'' argument that will display help about the link driver as well as the default driver used if none is provided: +
-<code> +
-crazyclient$ python gamepadCtrl.py -h +
-CRTP Driver loader options: +
---------------------------- +
- -l <driver_uri> : Load the link driver with the requested URI +
- -h              : Print this help message +
- +
-Unless otherwise specified the URI "radio://0" will be used +
-</code> +
- +
-The available drivers are: +
- +
-  * **%%radio://n[/channel[/speed]]%%** Radio dongle number 'n' (many can be connected to the computer) communicating on a specified channel with a specified speed. The speed and channel are optional, default channel is 2 and default speed is 2M. The speed can be 2M, 1M or 250K. For example: +
-    * **%%radio://0%%** uses radio dongle 0 to communicate on channel 2 at 2Mbit/sec +
-    * **%%radio://0/77%%** uses radio dongle 0 to communicate on channel 77 at 2Mbit/sec +
-    * **%%radio://0/77/250K%%** uses radio dongle 0 to communicates on channel 77 at 250Kbit/sec +
-  * **%%loop://%%** Loopback driver. Mainly aims at testing tools without having them to crash because of the missing radio link | +
-==== gamepadCtrl.py ==== +
- +
-//gamepadctrl.py// is the 'legacy' control software for Crazyflie. It works with a playstation 3 gamepad and display rudimentary information about the axis position: +
-<code> +
-crazyclient$ python gamepadCtrl.py -l radio://0/77 +
-</code> +
-{{:projects:crazyflie:pc_utils:gamepadctrl.png|}} +
- +
-The gamepad mapping is as follow: +
-^ Control ^ Gamepad Key/axis ^ +
-| Pitch   | LY               | +
-| Roll    | LX               | +
-| Thrust  | RY               | +
-| Yaw rate| RX               | +
-| Emergency stop | Ps button | +
- +
- +
-===== crazyload.py ===== +
- +
-//crazyload.py// permits to update the copter firmware using the Crazyload radio bootloader. This is a self-documented command line tool (launch ''python crazyload.py -h''). +
- +
-To program a copter with a firmware compile in bootloader mode (see build environment documentation): +
-<code> +
-$ python crazyload.py -c flash cflie.bin +
-</code> +
-Here //cflie.bin// is the binary file of the firmware to be flashed. After launching this command the copter has to be restarted and the flash procedure will start. When the flash procedure is finished the copter has to be restarted again and will boot the new firmware. +
- +
-The bootloader is normally able to automatically reset the copter in bootloader and firmware mode. This functionality requires to know the CPU-ID of the copter (which can be recovered with the command line tool //getinfo.py//). Knowing the copter CPU idit can be reprogrammed without manipulation as follow; +
-<code> +
-$ python crazyload.py -i 32:00:6e:06:58:37:35:32:60:58:01:43 -l radio://0/77 flash cflie.bin+
 </code> </code>
-This command is an example that would work if the copter is currently running a crazyflie firmware with radio configured to channel 77. 
  
-===== getinfo.py =====+===== Crazyflie headless client ===== 
 +The Crazyflie headless client is intended to be run on the Raspberry Pi (see [[misc:hacks:rasberrypi|this page]] for more info), but can also be used from a normal PC.
  
-//getinfo.py// recovers some information about a running copter. This tool is slightly bugged but fulfills its purpose (mainly getting the copter CPU ID). Its usage is quite classical: 
 <code> <code>
-crazyclient$ sudo python getinfo.py -l radio://0/77 +usagecfheadless [-h] [-u URI] [-i INPUT] [-d] [-c CONTROLLER] 
-Detected CrazyRadio dongle version 0.32 +                  [--controllers]
-Channel 77 +
-Data rate 2M+
  
-CPU ID52:ff:70:06:48:89:49:53:15:31:10:87 +optional arguments
-Battery voltage: 3.764599V +  -h, --help            show this help message and exit 
-CrazyCopter version: 0.9.0 +  -u URI, --uri URI     URI to use for connection to the Crazyradio dongle, 
-Copter class name: CrazyFlie +                        defaults to radio://0/10/250K 
-CPU ID: 52:ff:70:06:48:89:49:53:15:31:10:87 +  -i INPUT, --input INPUT 
-crazyclient$+                        Input mapping to use for the controller, defaults to 
 +                        PS3_Mode_1 
 +  -d, --debug           Enable debug output 
 +  -c CONTROLLER, --controller CONTROLLER 
 +                        Use controller with specified id, id defaults to 0 
 +  --controllers         Only display available controllers and exit
 </code> </code>
projects/crazyflie/pc_utils/index.1331840963.txt.gz · Last modified: 2015-07-15 16:30 (external edit)