Ipodrom
Ipodrom is the acronym for Interface pour contrôler un drone sur un mobile. It is the French for UAV control interface on a mobile phone.
This system has been designed and developped by 3 ENAC students. It is based on Paparazzi, and enables the control of a UAV running Paparazzi on a mobile phone connected via Bluetooth to the ground station.
Presentation
The system is entirely based on Java technology. It is divided in 2 programs : one running on the ground station, and the other on the mobile.
On the ground station
The goal of this program is to relay the messages from the airplane (via the server on the ivy bus) to the mobile, and the commands from the phone on ground station's ivy bus.
On the mobile
There is a program developped with Java ME (MicroEdition). It connects to the Bluetooth relay of the ground station, and displays the main information about the plane and the flight. It is also possible to send commands, such as climb, jump to Standby block, land, and move the waypoints.
How to get Ipodrom ?
The installation described here is for debian-like systems (typically Ubuntu). Thank you for sharing your experience on others systems!
Requirements
You need to have Paparazzi installed. That won’t be detailed here, I think you can find the instructions by yourself on this site.
The source code is in Java, so you need both Java SE (Standard Edition) for your PC, and Java ME (MicroEdition) for the mobile program. Java SE downloads can be found here : http://java.sun.com/javase/downloads/index.jsp, but it's far more easy to install the corresponding debian packages :
- sun-java6-jre
- sun-java6-jdk
Note: you need both JRE and JDK in order to compile java applications. Be sure you have version 6 (it doesn't work with 5).
JavaME downloads can be found here : http://java.sun.com/javame/downloads/index.jsp
Download and install the Sun Wireless Toolkit (WTK), which enables to manage JavaME projects, compiling and packaging them. The version we used is Sun Java Wireless Toolkit 2.5.2 for CLDC.
You need a Bluetooth peripheral on your computer (and on your mobile device). These are the debian packages that already should be installed:
- libxpm-dev
- libxt-dev
- libx11-dev
- libice-dev
- libsm-dev
- libc6-dev
- libstdc++6-dev
There are specific Bluetooth packages you have to install:
- bluetooth
- bluez
- libbluetooth3
- libbluetooth-dev
The source code
It is available on a subversion server.
- The source for the mobile application (on the phone) is here : http://svn.assembla.com/svn/ipodrom/Ipodrom/
- The source for the ground application (relay on the ground station) is here : http://svn.assembla.com/svn/ipodrom/IpodromPC/
Installation
coming soon
How to use Ipodrom ?
Finding the maps files
Like with Paparazzi, Ipodrom can show the plane on a map with aerial pictures. The images are not downloaded automatically from the internet, we use the ones downloaded by Paparazzi (they are located in PAPARAZZI_HOME/var/maps).
Compiling the right version
You might use Ipodrom on your mobile in real conditions (the phone connected to the ground station), or you might test it on a simulator (included in the Sun Wireless Toolkit, see above). You must change a little line in the code, depending on your target. See in the file Configuration.java (in the package main), you can change the variable isSimulation, from true to false.
The case of the simulation
In this case, the images for the map must be included in the *.jar file (in the folder /res/maps). Save them before the packaging, and WTK will include them automatically in the final .jar file. The problem is that the size of the file will increase.
The case of a "real test"
In this case, it is not necessary to put the map files in the .jar archive. The program will scan the filesystems you have on your device, and search the images in the /maps folder located at the root a filesystem. So just put the Paparazzi /maps folder at the root of your phone memory card.
Executing the applications
Once you've created the right version for your mobile, just send the .jar file. The installation procedure depends on your device.
On the ground station, start Paparazzi, then start Ipodrom for the PC : $ java -jar IpodromPC.jar -ac_id 42 assuming that 42 is the ID of the plane you're flying. If you're using the phone simulator, then add the -local option on the command line, that will start the program listening on a local connection instead of Bluetooth. You can have a better options description with : $ java -jar IpodromPC.jar -h
Now you can start Ipodrom on you mobile phone !