Pour l’installation de la plateforme vous devez disposer d’un PC Linux ou un Mac avec Wifi.
Jakopter est constituée d’un module central (« core ») requis pour toute installation. Ce module assure les fonctions de contrôle de l’AR Drone 2 (principalement, envoi de commandes et réception de données de navigation, dites navdata). Le module de réception/traitement du flux vidéo, ainsi que les bindings Lua de la bibliothèque, sont optionnels et nécessitent des dépendances supplémentaires.
Deux programmes annexes, leap et jakopter-keyboard, peuvent s’interfacer avec le module d’entrée utilisateur présent dans core pour permettre un contrôle intuitif du drone via, respectivement, le Leap Motion et le clavier. Des exemples d’interfaçage, écrits en Lua, sont disponibles dans le dossier scripts du répertoire de Jakopter.
Les dépendances pour les différentes installations possibles de Jakopter sont listées ci-dessous :
- Installation basique (module de contrôle seul) :
cmake (≥ 2.8)
Compilateur gcc ou clang (toute version supportant le standard C99 devrait convenir).
- Bindings Lua :
Lua ≥ 5.2 (sous Debian, Ubuntu et dérivés : liblua5.2-dev) ou 5.1.
- Module vidéo :
SDL2 (libsdl2-dev)
SDL2_ttf (libsdl2-ttf-dev)
SDL2_image (libsdl2-image-dev)
libavcodec (libavcodec-dev)
libavutil (libavutil-dev)
ou alternativement à SDL2, ViSP.
Nécessite aussi libpostproc-dev.
- Programmes de contrôle :
- jakopter-keyboard : curses (libncurses5-dev)
- leap : SDK Leap Motion (voir ici).
- jakopter-vicon: Vicon Tracker SDK
Par défaut, le script Cmake active la compilation de tous les éléments dont les dépendances sont présentes.
Linux
Pour le téléchargement du logiciel : voir la page http://jakopter.irisa.fr/?page_id=32.
Une fois l’ensemble des éléments installés, dans le répertoire jakopter faire :
- cmake . (la configuration est remise à zéro avec le script ./clear_cmake_generated_files)
- make
Mac OS X
package.cpath = package.cpath .. ";?.dylib"
pour permettre à LUA de reconnaître la bibliothèque libjakopter.dylib.
Brew
Les paquets à installer sont:
- pkgconfig
- git
- cmake
- ffmpeg
- lua
- sdl2 sdl2_ttf sdl2_image
Macports
Pour installer toutes les dépendances, le script macports.sh est livré avec le projet dans le répertoire d’installation de Jakopter. Vous devez d’abord vous assurer d’avoir git:
port installed | grep git
Si rien ne s’affiche, faire:
sudo port install git
Pour le téléchargement du logiciel, exécutez la commande dans votre répertoire utilisateur(appelé aussi $HOME ou ~):
git clone https://github.com/Jakopter/Jakopter Jakopter
puis:
cd Jakopter
port installed | grep ffmpeg
Sa dépendance vers libsdl provoque un conflit avec libsdl2. Le script d’installation ci-dessous installe ffmpeg en retirant ffplay, pensez donc à désinstaller ffmpeg auparavant avec:
sudo port uninstall ffmpeg
Une fois le logiciel téléchargé, dans le répertoire Jakopter exécutez le script:
./macports.sh
puis
cmake . make
Tester l’installation
- Mettre en route le drone et connecter le PC au Wifi du drone
- Aller dans le répertoire []/Jakopter/build/DEBUG
- Lancer l’interpréteur LUA et taper les commandes LUA suivantes (vous pouvez aussi utiliser le script test_video.lua dans Jakopter/scripts) :
l=require("libjakopter") l.connect_video() l.connect() while true do -- lecture des paramètres de vol sur le channel 1 bat = l.read_int(1, 0) alt = l.read_int(1, 4) -- altitude (reste à zéro tant que le drone n'a pas décollé) pitch = l.read_float(1, 8) / 1000 roll = l.read_float(1, 12) / 1000 yaw = l.read_float(1, 16) / 1000 --envoi des données à la vidéo pour incrustation (channel 2) l.write_int(2, 0, bat) l.write_int(2, 4, alt) l.write_float(2, 8, pitch) l.write_float(2, 12, roll) l.write_float(2, 16, yaw) end