Urbi+en+ball+tracking+demo

Urbi en ball tracking demo

__De aanleiding van het onderzoek__
Vertaling naar het Engels via google translate: Het ball tracking filmpje Origineel in het Frans: Het ball tracking filmpje

__Wat we tot hiertoe begrepen hebben van Urbi__
Urbi is een script taal die geïnterpreteerd wordt door de Urbi runtime omgeving die draait op een besturingssysteem. De script taal lijkt sterk op C++ en is bedoelt om op een snelle en elegante manier programma's te kunnen ontwikkelen voor robots. De scripttaal bestuurt de uitvoer van de verschillende zogenaamde UObjects. UObjecten worden gebruikt om hardware of software componenten samen te binden; voorbeelden van hardware componenten zijn actuatoren en sensoren, voorbeelden van software componenten zijn voice systhesis of face recognition algoritmes. De UObjecten kunnen lokaal op een robot draaien of op een (mogelijk krachtigere) computer op afstand. UObjects zijn library objecten die de gebruiker zelf kan schrijven in C++ en compileren. Het onderstaande schema geeft een overzicht van het hele Urbi gebeuren. Voor gedetailleerde informatie en tutorials over Urbi: Urbi introductie video Urbi documentatie

__Urbi en de ARDrone__
De makers van de filmpjes bovenaan de pagina hebben drivers (UObjects) gemaakt voor de ARDrone zodat deze volledig Urbi compatibel is. De makers geven hun werk vrij onder de vorm van een Urbi SDK voor de ARDrone. De SDK bevat geen source code van de UObjects. Het mooie aan dit systeem is dat we tijdens de ontwikkelingsfase kunnen werken op een externe computer en eventueel later optimalisaties doorvoeren zodat we in de eindfase van het project alles kunnen uploaden naar de drone zelf zodat deze autonoom werkt zonder externe computer.

Benodigdheden

 * 1) Download [|Urbi SDK voor ARDrone]
 * 2) Download Gostai lab voor de GUI (met dit lab kan je grafisch heel eenvoudig GUI's maken die communiceren met Urbi). In het fimpje gebruiken ze Gostai lab voor de grafische interface en het binnenlezen van video en sensordata. Gostai Lab
 * 3) Gostai lab GUI bestand dat in het filmpje gebruikt wordt (download tekst en save als balltracking.ula): balltrack GUI
 * 4) Zorg ervoor dat de drone firmware 1.1.3 is of lager. Zie Hier hoe je de drone firmware kan downgraden.

Installatie van de SDK
code $ export PATH="/bin:$PATH" code code $ urbi --version code code $ urbi-launch --version
 * Untar het Urbi SDK packet in een willekeurig directory
 * This directory, , should contain ‘bin’, ‘FAQ.txt’ and so forth. Do not move things around inside this directory. In order to have an easy access to the Urbi programs, set up your PATH:
 * __Belangrijk!__**  moet een absoluut pad zijn. Als je de urbi sdk in je persoonlijke map geinstalleerd hebt moet hier dus ook /home/ /... bij.
 * Kijk of Urbi correct werkt
 * Kijk of Urbi-launch correct werkt

code code $ urbi-launch -- --version
 * Kijk of Urbi-launch zijn dependencies kan vinden

code code $ urbi -e ’1+2*3; shutdown;’ [00000175] 7               //dit is de output code
 * Kijk of Urbi kan rekenen

Installatie van Gostai lab
code $ sh .sh code
 * Kopieer de .sh file naar een willekeurig dir (bij voorkeur dezelfde map als de Urbi SDK)
 * Navigeer naar het directory (via cd) en run het shell script:
 * Na installatie vind je het directory terug in dezelfde map als het shell script
 * Navigeer naar /bin
 * Run de executable "GostaiLab"

Uitvoeren en testen van de balltracking app
code maarten@maarten-laptop:~/ARDrone-urbi-sdk$ ./start.sh [00000803] *** ******************************************************** [00000804] *** Urbi SDK version 2.3 rev. 9a84600 [00000812] *** Copyright (C) 2005-2010 Gostai S.A.S. [00000812] *** [00000812] *** This program comes with ABSOLUTELY NO WARRANTY. It can [00000812] *** be used under certain conditions. Type `license;', [00000812] *** `authors;', or `copyright;' for more information. [00000812] *** [00000813] *** Check our community site: http://www.urbiforge.org. [00000813] *** ******************************************************** [00000875] ARDrone_0xa10f188 before setLocale before ardrone_tool_setup_com(NULL) before ardrone_tool_init(...) Starting thread navdata_update Starting thread ardrone_control before ardrone_input_add(NULL) Input device myControl added Starting thread my_video Video stage thread initialisation [00000884] 1 Thread navdata_update in progress... [00000907] *** Waiting connection. Timeout [00000907] *** Waiting connection. Timeout [00000907] *** Waiting connection. Timeout [00005504] *** Successfully connected :) [00005505] colormap_0xa0e9b58 code Het runnen van het start.sh script start de Urbi server op voor de communicatie. Nu kan je in Gostai lab verbinding maken met server via Server->Connect. In play mode (klik op knop met packman spookje) zie je nu de volledige GUI. Druk op takeoff om de balltracking demo te starten. In de terminal kan je de applicatie afsluiten door: code shutdown; code in te typen.
 * Open Gostai lab en laadt het GUI bestand balltracking.ula in (file->open->open document)
 * Edit 'start.sh' uit het homedirectory van de Urbi SDK met een teksteditor Verander 'SCRIPT=drone.u' naar 'SCRIPT=balltracking.u'. Save de file. Dit shell bestand wordt straks uitgevoerd en bepaalt welk Urbi script (.u file) uitgevoerd moet worden. De demo scripts zijn terug te vinden in /share/scripts
 * Zet de drone aan, maak verbinding met het netwerk van de drone en wacht tot alle leds groen worden. Druk vervolgens kort op de 'Unpair' knop onderaan de drone. Deze actie wist het geheugen van de drone. De leds knipperen nu afwisselend rood en groen. De drone is klaar.
 * navigeer in de terminal naar het home dir van Urbi en run het script start.sh Als alles goed is krijg je het volgende:

Als je tijdens het uitvoeren van start.sh errors krijgt i.v.m checksum fouten, wil dit zeggen dat de firmware van de drone niet (correct) gedowngrade is. Zie hier voor het downgraden van de firmware van de drone. Probeer ook eens het drone.u script samen met volgende GUI ARDrone GUI