Thursday, September 9, 2010

Lego Lab 2

Vi fik bygget vores robot om så den nu også inkluderer en sonar sensor. Vi installerede test programmet og begyndte at teste vores sonar. Ud fra en plan væg hvor sensoren står vinkelret ind på, kan vi måle op til ca. 230 cm fra væggen, herefter vises "no object". Hvis overfladen er skrå (en kasse lænet op ad en væg for eksempel) eller hvis sensoren måler lidt skråt ind på overfladen, reduceres den maksimale afstand vi kunne måle en del. Materialet af overfladen betyder også noget, og ved "støjabsorberende" materiale alla en trøje, har den svært ved at måle korrekt.

I programmet er måleintervallet 300 ms, hvilket vi prøvede at ændre. Vi har sat den til 20 ms uden problemer, da vi beregnede at ved den maksimale afstand (255 cm) vil lyden være ca 14 ms om at nå ud til overfladen og reflektere tilbage. Ved at sætte måleintervallet til 5 ms måler den nogle lidt sære afstande længere ude.

Tracker programmet vi fik udleveret benytter en P-D controller, med et gain på 0.5. Dens standard instillinger får den til at opnå en tilstand hvor den oscillerer frem og tilbage omkring 35 cm. Vi prøvede ikke at tweake på de forskellige parametre men et lavere gain burde få den til at stoppe med at oscillere (men kan risikere at stoppe uden at ramme dens desired state, hvilket kunne fikses med et integral led).

I sidste del af opgaven implementerede vi en wallfollower baseret på vores tidligere linefollower. Den benytter en P-D controller. Efter vi fik tilpasset gainet korrekt, kører den næsten ude oscilationer hen langs en væg. Kommer der en forhindring kører vores robot rundt om, dog med en begrænsning. Da sonar sensoren er monteret i en 45* vinkel betyder dette at hvis vi kommer ind i et hjørne hvor væggene har en vinkel mindre end dette, vil vi ikke kunne se den indkommende væg og robotten kører ind i hjørnet.

Sammenlignet med three_state algoritmen opnår robotten aldrig en tilstand hvor den skal korrigere voldsomt for at komme tilbage imod vores desired state da vi altid laver små korrigeringer når vi er tæt på vores desired state. Sammenlignet med gentle turn og hard turn algoritmerne, fandt vi at vores P-D controller baserede robot oscilerede væsenligt mindre, hvilket skyldes at vi benytter en gain funktion.

No comments:

Post a Comment