-
Notifications
You must be signed in to change notification settings - Fork 3
Quick Start Guide
Here you will learn how to connect to a crazyflie using the client-server API, and run a basic altitude hold script. It is highly recommended that you use a Flow deck or Z-Ranger deck. Without one of these, the crazyflie will be unable to hold its altitude, and will likely crash!
Each crazyflie interface is identified by a unique resource identifier (URI). The server node connects to a crazyflie using it's URI. Hence, to connect to a crazyflie, you have to tell the server what it's URI is. Here is an example URI:
//radio/0/80/2M/E7E7E7E7E7
The Crazyflie URI can be modified using the official Crazyflie Client GUI.
The parts of the URI are //<interface>/0/<channel>/<baudrate>/<address>
.
The valid baudrates are
- 250K
- 1M
- 2M
The address is a 5-byte long number in hexidecimal. By default, crazyflies ship with the address E7E7E7E7E7
You can use scripts/scan.py
to list all crazyflie URIs "seen" by the radio at a specified address. For example run these lines in a terminal:
roscd rospy_crazyflie
python scripts/scan.py E7E7E7E7E7
The script will print every URI with the address E7E7E7E7E7
. Use this tool to find a crazyflie's URI so that you can tell the server to connect to it. The Crazyflie URI can be modified using the Crazyflie Client GUI. It is necessary to give Crazyflies a different URI when multiple are flying simultaneously.
The server will automatically connect to URIs listed in the file config/config.yaml
. In this file is a list of key-value pairs, associating a name with each URI.
For example,
uris:
crazyflie1: //radio/0/80/2M/E7E7E7E7E7
crazyflie2: //radio/0/81/2M/E7E7E7E7E7
Before you can run a client program, you first need to start the server. You can launch the server like so
roslaunch rospy_crazyflie default.launch
The default launch file starts a server node with the name crazyflie_server. Refer to this server name in your client program.
Now that the server is running, you can try executing the takeoff and landing example script in a new terminal. Remember to make sure that devel/setup.bash
has been sourced.
roscd rospy_crazyflie/examples
python takeoff_landing.py
This example will tell the crazyflie to takeoff to a height of .5 meters, and will hover until the user hits enter in the console. Please note that without a FlowDeck the crazyflie will drift over time, or without a Z-ranger deck the crazyflie will not be able to hold altitude.