TU Delft - Lasergame with Autonomous AR Drone
- 1 Introduction
- 2 The Laser Gaming Setup
- 3 Simulation
- 4 Getting information
- 5 Programming
- 6 Manuals and guides
Our focus in the development of the autonomous AR.Drone is focused on the lasergaming industry. In this field our goal is to implement the AR.drone as a observing and later on in the project participating member of the game. We feel that there is quite a lot of potential for an implementation of the quad rotor, because we believe that using it we can create a new dimension in laser gaming. With its manoeuvrability it will be able to easily get around the laser game obstacle course and its futuristic looks will integrate perfectly with the laser game environment.
In our project we have chosen to work with the Standard Development Kit (SDK), which is already present on the AR.Drone. To get this done we needed to combine Paparazzi with the programs JSBSim and FlightGear.
For this project we used a repository, Github. Developers often use a repository for developing their software projects. When using a repository, developers can upload and download the code developed for the project. This allows multiple people to work on the same project at the same time without getting in eachother's way. It is in this case very useful and we will use Github, a populair open source repository site. For beginners, please read the manual to setup Github for Ubuntu:
The Laser Gaming Setup
Our laser game application will consist of the following elements:
- The laser game kit for the players
- Main server for score computing
- Customized AR.Drone 2
Laser game kit
The laser game kit will consist two main units: a laser gun and a laser receiver. The laser gun will be able to fire a laser pulse. The pulse contains the shooter_id. The laser receiver is a sensor that the player wears on its body. The sensor will be able to receive a pulse fired from a laser gun. Each gun contains a cpu which will create the pulse and is able to decode the pulse received by the sensor. The cpu stores all relevant information on its memory. This memory consists of the number of shots fired, the number of hits taken and the player_id’s of the players that hit him.
The main server will compute the scores at the end of the match. It will collect the information from the laser guns and make a ranking bases on the amount of kills/deaths.
During the test phase we want to have an adjustable system that we can tweak while working. This is the reason that we made a PIC based design. For testing we are going to use a system based on the RC-5 protocol by Phillips. The RC-5 protocol is used for remote controls. We are going to use it for sending and receiving information about the players.
Combining Paparazzi with FlightGear and JSBSim
To get the AR.Drone to fly autonomously a model of the system is required. This can be created using paparazzi combined with JSBSim and FlightGear. A more detailed explanation of how we did this can be found here: Setting up simulation environment.
This project is developed by using Linux, ubuntu. Following these steps are at your own risk. You can only perform these steps if you use ubuntu. Before the developing part will start, the following installations are required:
- Download the SDK from Ardrone.org
- Download and install Paparazzi, see the installation guide for help:  Do not follow the instructions from 4), we use another cross-compiler for this project.
- Follow the instructions described in the "Getting the cross-compiler".
- Download the cross-compiler from 
- Open the terminal and direct to your home directory.
- Type the following commands (without the $):
$ sudo chmod +x codesetup.sh $ sudo ./codesetup.sh
Wait a few minutes and you're done!
The AR.Drone 2 has a self made protocol for controlling the AR.Drone 2 remotly over wifi. More information can be found at AT Commands AR.Drone 2.
The AR.Drone 2 also has a self made protocol for sending navdata to the client over wifi. More information can be found at Navdata AR.Drone 2.
The AR.Drone 2 has a telnet interface that opens a root shell on the AR.Drone 2, which is needed to test and install software. More information can be found at Telnet AR.Drone2.
The AR.Drone 2 also has a FTP server running, which makes it possible to upload files like programs to the AR.Drone 2. More information can be found at FTP AR.Drone2.