Kunnen drones binnenkort autonoom vliegen?

DOOR KLAAS KELCHTERMANS. Het leveren van pakjes, patrouille tegen bosbrand of spoed interventie bij een hartfalen kan allemaal gebeuren door drones als ze zichzelf zouden kunnen besturen. Dat kunnen ze voorlopig nog niet. Maar bij ESAT zijn we volop bezig met te onderzoeken hoe we drones kunnen leren om zelf te vliegen. Wat is er mogelijk en voor welke uitdagingen staan we?

Geschreven door Klaas Kelchtermans. Klaas is afgestudeerd als elektrotechnisch ingenieur. Hij doctoreert bij prof. Tuytelaars over autonome navigatie van UAVs (unmanned aerial vehicles) via imitatie leren.
photo

Klaas Kelchtermans

Kerst en Nieuw is weer voorbij, wat waarschijnlijk met een stijging van de verkoop van speelgoed drones gepaard ging alsook het aantal fatale botsingen ervan. Automatische besturing van deze onbemande drones zou deze botsingen kunnen vermijden. Maar hoever staan we van autonome navigatie zoals pakjes die geleverd worden door drones in plaats van Sinterklaas? Een kleine inkijk in het laatste nieuwe onderzoek op ESAT.

Drones hebben veel voordelen. Ze kunnen klein, goedkoop en licht gemaakt worden. Ze zouden aanzienlijk kunnen helpen bij het leveren van lichte goederen. Ze zouden ingezet kunnen worden in situaties waarbij het erg belangrijk is snel ter plaatse te zijn zoals het brengen van een defibrillator bij een hartfalen.

Door drones autonoom te laten vliegen kan je enerzijds een extra veiligheid voorzien voor wanneer de connectie met de piloot wegvalt, anderzijds zorgt de piloot zelf voor een grote extra kost waar bedrijven of organisaties vaak niet toe instaat zijn om te betalen.

Maar hoe kan zo’n drone autonoom vliegen?

simulatie-droneAls je al eens met een drone hebt gevlogen, weet je dat de besturing ervan niet evident is. In tegenstelling tot een auto, kan je met een drone in alle richtingen vliegen onafhankelijk van hoe de drone gedraaid is. Bij een wagen kan je enkel rijden in de richting dat deze gedraaid is.

In de wereld van machine learning en artificiële intelligentie, proberen we computers zo te programmeren dat die moeilijke taken succesvol kunnen uit te voeren. In dit geval is het doel om op basis van wat de camera ziet, het juiste besturingssignaal te geven aan de motoren van de drone.

Een familie van algoritmes die dit gedrag kunnen leren zijn neurale netwerken, jawel, geïnspireerd op onze eigen hersenen maar dan geïmplementeerd in een computer. Die neurale netwerken zijn opgebouwd uit honderden neuronen die elk meehelpen in de beslissing over welk besturingssignaal met welke sterkte moet gegeven worden.

Het maken van zo’n algoritme bestaat uit verschillende stappen. In een eerste stap wordt er data verzameld. Dit zijn voorbeelden van vluchten waarbij een expert een gewenst traject aflegt en obstakels ontwijkt. De beelden van de camera op de drone worden dan samen met de besturingssignalen van de expert gebruikt in de tweede stap om het algoritme te optimaliseren. Een neuraal netwerk heeft miljoenen parameters die allemaal juist moeten bepaald worden. Deze optimalisatie, ook wel training of leerproces genaamd, vergt daarom veel data. Zoveel dat we een automatische piloot hebben nagebouwd in een gesimuleerde omgeving. Deze kan dan dagen rondvliegen en obstakels ontwijken aan de hand van extra informatie uit de gesimuleerde omgeving.

Op dit moment slagen we erin om een drone succesvol door een kamer te laten vliegen zonder tegen muren of obstakels te botsen.

In de tweede stap of optimalisatie stap laten we het algoritme trainen op deze data. Het algoritme of neurale netwerk probeert dan de besturing van de piloot te voorspellen aan de hand van het camerabeeld. Elke keer dat het netwerk een fout maakt wordt er een berekening gemaakt die bepaald welke parameters op welke manier moeten veranderen. Nadat deze verandering is doorgevoerd gaat het trainingsproces verder tot het neuraal netwerk is geoptimaliseerd.

In de derde stap gaan we dan het netwerk de drone laten besturen, weliswaar in de gesimuleerde omgeving. Op dit moment slagen we erin om succesvol door een kamer te vliegen zonder tegen muren of obstakels te botsen.

De volgende stappen…

Een volgende stap is het laten uitvoeren van meer complexe taken zoals het achtervolgen van een bewegend object of door een deur of raam vliegen. Er zullen echter nog een aantal uitdagingen beantwoord moeten worden vooraleer een drone in een echte omgeving zelfstandig zal kunnen vliegen, denk maar aan de impact van vertragingen wanneer je van een echte computer naar een kleine chip overschakelt of de turbulentie in de echte wereld ten opzichte van de gesimuleerd,….

Daarnaast blijft het een zoektocht om met minder data (voorbeeld vluchten) toch nog in staat zijn om het neurale netwerk of algoritme voldoende te optimaliseren. We zijn met andere woorden op de goede weg maar er is nog best wel wat werk voor de boeg alvorens de drones zelf pakjes pakjes onder de kerstboom kunnen leggen.

drone_mg_9487_defb_0

VertiKUL 2: de tweede generatie pakketleverdrone van de KU Leuven roboticagroep