Hovering Control of a Quadrotor Using Monocular Images and Deep Reinforcement Learning
Abstract
I de siste årene har fagfeltet forsterkendelæring opplevd en renessanse på grunn av gjennombrudd i feltet selv, og på grunn av andre muliggjørende teknologier slik som effektive software verktøy, beregningskraft og særlig forskning på kunstige nevrale nettverk. Bruk av nevrale nettverk sammen med forstærkende læring har utviklet seg til å være regelen i stedet for unntaket, og det finnes flere eksempler som viser denne teknologiens imponerende problemløsningsevner som et generelt rammeverk for å løse komplekse problemer. På grunn av hvor generelt dette rammeverket er kan det brukes på et stort utvalg av problemer, inkludert robotteknikk og kontroll.
Et problem innenfor robotteknikk av interesse er kontroll av quadcoptere, som på samme måte har sett en gjenoppblomstring av interesse på grunn av dets anvendelighet til en rekke oppgaver inkludert overvåking, transport og kommersielle leveringstjenester. Selv om kontroll av quadcopters er et godt studert problem i litteraturen, er det fortsatt vanskelig på grunn av dets underaktuerte natur, vanskeligheten ved å modellere krefter relatert til aerodynamikk, og navigering i områder uten GPS dekning.
I denne oppgaven studeres oppgaven med å holde et quadcopter svevende i et gitt 3-dimensjonalt referanse punkt, og ett kontroller design som forsøker å forene tilnærminger fra forsterkende læring, datasyn og tradisjonell kontrollteori presenteres. Ved å bruke denne kontrolleren i et simulert miljø viser vi at styreenheten er i stand til å løse problemet både ved bruk av de sanne posisjoneringsvariablene og ved hjelp av indikative tilstandsvariabler basert på en enkel datasyn algoritme. Videre overføres kontrolleren som er blitt testet i simulering til et virkelig quadcopter-system hvor kontrolleren testes på samme problem. Vi demonstrerer så hvordan kontrolleren generaliserer med hensyn til hva den har lært i simulering, og hvordan trening av kontrolleren for å tilpasse seg den virkelige verden kan oppnås gjennom en praktisk metode. Til sist vises kontrollerens evne til å kontrollere quadcopteret etter at den har fått trent i den virkelige verden. In recent years the field of reinforcement learning has experienced a renaissance due to breakthroughs in the field itself, and because of other enabling technologies such as efficient and powerful software frameworks, computational power, and especially research on artificial neural networks. Using reinforcement learning in conjunction with neural networks has evolved to be the rule rather than the exception, and multiple examples exist that showcases its impressive problem-solving capabilities as a general framework for solving complex problems. Because of how general the framework is it can be applied to a large variety of problems including the field of robotics and control.
One such problem of interest is control of quadrotors, which similarly has seen a resurgence of interest because of its applicability to a multitude of tasks including surveillance, transport, and commercial delivery services. Even though the control of quadrotors is a well-studied problem in the literature it remains a hard one due to its underactuated nature, the difficulty of modelling forces related to aerodynamics, and navigating in GPS denied environments.
In this thesis, the 3-D hovering problem for quadrotors is studied and a controller design that attempts to unite approaches from reinforcement learning, computer vision, and traditional control theory is presented. By applying the proposed controller to a simulated environment we show that the controller is able to solve the problem by using ground truth state variables and by using indicative state variables based on a simple computer vision algorithm. Furthermore, the simulated-tested controller is transferred to a real-world quadrotor system where the controller is tested on the same problem. We then demonstrate how the controller generalizes with respect to what it has learned in simulation, and how training the controller to adapt to the real world can be achieved through a feasible and practical method. Lastly, the controllers performance post real-world training is demonstrated.