Embedded design for autonomous control of diff-drive mobile robot
Abstract
Oppgaven tar for seg å finne praktisk implementering for å gi autonom kontroll av Arduino IR-roboten og er basert på grunnlaget lagt av fordypningsprosjektet. Dette ble utført ved å forbedre flere aspekter av roboten i tillegg til implementasjon nye funksjoner. Forbedringene tok for seg emner som sånn, maskinvareendringer, systemrespons, posisjonsestimering og serverkommunikasjon. De nye funksjonene inkluderer; navigeringsprosedyre utført av roboten, posisjonskontroll og andre støtteoppgaver.
Maskinvareendringer inkluderte erstatning av servo, IMU, enkodere og motorer på den opprinnelige roboten, på toppen av, og utvidet prosesseringsytelsen til roboten ved å innføre en ny MCU i systemet. Drivere for IMU og enkodere ble implementert, i tillegg til, design av en node kommunikasjonsprotokoll for å logisk koble sammen MCU-ene. Serverkommunikasjonen ble forbedret, i tillegg til, implementering av støtteoppgave for koordinering av oppgaver og virtuelt lag mellom logiske noder.
Posisjonsestimatet til roboten ble forbedret ved å integrere akselerometeret inn i estimatet og implementere statisk filtrering av rå signaler ved å benytte beregnet gjennomsnitt og varians. Vinkelestimatet ble videre forbedret ved å implementere Kalman- filtrering av rå-målingene til gyroskopet. Posisjonskontrolleren er designet som et kaskadesystem ved hjelp av referanse foroverkobling og tilstandstilbakekoblet LQR-kontroller for å styre roboten til ett referanse-målkoordinat og to hastighetsregulerte PI-kontrollere for hvert hjul. Bruken av LQR ble oppnådd ved å finne en lineær dynamisk modell av roboten basert på lineær -og vinkel hastigheten. En ruteplanleggingsprosedyre ble implementert på roboten for å gjøre den i stand til å navigere i et miljø og gjøre den mindre avhengig av serveren. Den implementerte ruteplanleggingsprosedyren bruker kunstig potensielt felt for navigering. Prosedyren bruker IR-sensorene for fortløpende konstruksjon av et skannefelt. Egenskaper fra feltet er bruk i en vektet sum for å finne ett augmentert referanse-målkoordinat.
Integrasjonen av en annen mikrokontroller var vellykket og utvidet minne, IO og prosesseringsytelsen til roboten. Node kommunikasjonsprotokollen ga rask og pålitelig overføring av data. Avviket i posisjonsestimatet ble funnet å være i området 0 - 15 millimeter og +/- 0.75 grader i vinkelestimatet. Bruken av referanse foroverkobling og tilstandstilbakekoblet LQR-kontroller gi merkbare sammenlignet med den gamle PID-implementeringen. Kontrolleren ga rask og jevn respons, i tillegg til stram regulering av posisjonen til roboten. Rettlinje avviket var i området 15 - 20 millimeter. Navigering av roboten i ett statisk miljø et med bruk av ruteplanleggingsprosedyren var vellykket med bruk av fornuftige referanse-målkoordinater. Ruteplanleggingsprosedyren viste seg å gi best resultat når den ble brukt i kombinasjon med navigeringen på serveren. The thesis deals with finding practical implementation for providing autonomous control for the Arduino IR robot and based on the foundation made in the specialisation project. This was carried out by improving several aspects the robot and implementing new functionalities. The improvements dealt with topics such as, hardware changes, system response, position estimation and server communication. The new functionalities includes; path planning running on the robot, motion control and support tasks.
Hardware changes included replacing the servo, IMU, encoders and motors found on the original robot, on top off, extending the computational capabilities of the robot by adding another MCU to the system. Drivers for the IMU and encoders was implemented, alongside, designing a node communication protocol for providing the link between the two MCU’s. The server communication was improved, in addition to, implementation of support task for coordinating and providing virtual layer between logical nodes.
The position estimate of the robot was improved by integrating the accelerometer, alongside, implementing static filtering of raw measurement using the sample mean and variance. The heading estimation was further improved by implementing Kalman filtering on the raw measurement from the gyroscope. The motion controller was implemented as a cascaded system using a reference feed forward state feedback LQR controller for guiding the robot to a target coordinate and two PI controllers for each wheel. The LQR implementation was made possible by formulating a linear dynamic model of the robot. A path planner procedure was implemented on the robot for making it capable of navigating the environment and less dependable on the server. The implemented path planning procedure applies artificial potential field for navigation. The procedure utilizes the IR sensors for consecutive constructing scan fields and several features of the environment in a weighted sum for finding augmented target set-point coordinates.
The integration of another MCU was successful and extended the memory, IO and computational capabilities of the robot. The node communication link provided fast and reliable transfer of data. The average deviation in the position estimated was found to be in the range of 10 - 15 millimeters and +/- 0.75 degree in the heading estimation. The use of reference feed forward state feedback LQR controller was found to give mayor improvements comparing to the old PID implementation. The controller provided fast and smooth response, in addition to tight control of the position of the robot. The straight-line deviation for the controller was in the range of 15 - 20 millimeters. The path planner procedure was found successful in navigating a static environment given a sensible target set-point coordinate. The path planner procedure showed best result when it was used with the navigation on the server.