Kamerabasert navigasjonssystem implementert i MATLAB for fjernstyring av mobil robot
Master thesis
View/ Open
Date
2012Metadata
Show full item recordCollections
- Studentoppgaver (TN-IDE) [929]
Abstract
Denne rapporten omhandler utvikling, konstruksjon og testing av en fysisk
modell som både skal kunne brukes i laboratoriesammenheng for fremtidige
kybernetikkstudenter ved Universitetet i Stavanger (UiS), og for å skape interesse
rundt kybernetikklinjen ved skolemesser og presentasjoner. Praktisk løsning for
modellen består av følgende komponenter: en mobil robot fra Lego Mindstorms
NXT, to baller, et webkamera, og den fysiske konstruksjonen som definerer
robotens arbeidsområde. Programvare som styrer roboten i arbeidsområdet er
blitt utviklet, og testet i forhold til både funksjonalitet og presisjon ved implementering
av praktisk oppgave i modellen.
Programvaren ble utviklet i, og implementeres fra MATrix LABoratory (MATLAB)
på en ekstern datamaskin (PC). For kommunikasjon mellom MATLAB og Lego
Mindstorm NXT, er det tidligere blitt utviklet en verktøykasse til MATLAB
for dette formålet ved Universitetet i Aasden i Nederland [1]. Verktøykassen
inneholder ferdiglagede MATLAB funksjoner for kommunikasjon med og kontroll
av robotens sensorer og motorer. All kommunikasjon i modellen ble satt opp i
forprosjektet som vist i appendiks A. Implementasjon av programvaren innebærer
at roboten skal lokalisere sin egen posisjon og orientering i planet, samt ballenes
posisjon, deretter posisjonere seg ved nærmeste ball, og slå denne mot den andre
ballen. For å kunne utføre denne oppgaven ble design av roboten gjort med fokus
på både gode manøvreringsegenskaper, og konstruksjon av en robust slagarm.
Programvaren består i hovedsak av 2 hovedalgoritmer, en for objektgjenkjenning
som beregninger nødvendige objektkoordinater, og en for posisjonering som
fysisk styrer roboten til en ønsket posisjon. Disse algoritmene integrerer henholdsvis
bildebehandling og reguleringsteknikk ved lokalisering og posisjonering av roboten.
For å styre roboten med god presisjon er beregning av aktuelle objektkoordinater
før og under programimplementeringen essensielt. Modellens kamera (som kobles
til PC via en universell seriebuss (USB) kabel) innhenter nødvendig bildedata
til MATLAB, som ved bildebehandling beregner nødvendige objektkoordinater.
Denne algoritmen finner først bildets interesseområde (ROI), deretter segmenteres
fargebildet inn i fargekomponentbilder som konverteres til binære bilder ved
terskling. Binære morfologiske operasjoner fjerner støy og skiller ut de interessante
objekter fra bildene med ulike teknikker og identifiserer objektets koordinat
til slutt. Alle koordinater i systemet defineres ut fra bildeplanet etter utført
bildebehandling, og brukes som utgangspunkt for posisjoneringen. I bildeplanet
fremstår alle objekter som en projeksjon av det opprinnelige objektet i scenen.
Bildeprojeksjonen introduserer en feilmargin som resulterer i en misvisning av de
beregnede koordinatene. Feilmarginen ble funnet som en funksjon av robotens
posisjon i planet ved testing, og automatisk korreksjon for misvisningen er
implementert i programvaren. Korreksjonen viste en dokumentert forbedret presisjon
ved posisjonering av roboten. Flere faktorer spiller inn på programvarens stabilitet
og presisjon. Varierende lysforhold gir utfordringer i forhold til riktig objektdeteksjon.
Roboten posisjoneres ved bruk av to metoder: sving og drift rett fram. Disse
metodene ble modellert og implementert i reguleringssløyfer, og kontrolleres
med henholdsvis tilbakekobling og foroverkobling. Robotens svingprosess består
av to lineære servomekanismer, og null statisk reguleringsavvik oppnås ved
implementasjon av en Proporsjonal-regulator (P-regulator) i programvaren.
Programvarens presisjon ble testet i forhold til posisjonering av roboten, samtidig
som robotens treffsikkerhet ble dokumentert. Ulike treffpunkter for ball på
slagarmen gir ulike ballbaner slik at robotens treffprosenten avhenger presis
posisjonering. Dette kombinert med unøyaktighet i forhold til beregnede koordinater
for posisjonering (selv med korreksjon for misvisning) gjør at treffsikkerheten
faller raskt som en funksjon av avstanden mellom ballene. Rapportens testresultater
tilsier at programvaren er funksjonell, men unøyaktigheter i modellen fører til en
reduksjon i treffpresisjonen. Korreksjon for projeksjonsfeil i modellen gir alikevel
en bedre treffprosent som følge av nøyaktigere robotposisjonering.
Description
Master's thesis in Information technology