Goal:
Målet med dagen var at eksperimentere med den ultrasoniske sensor og derved opbygge noget erfaring og forståelse for sensorens virkemåde, muligheder og begrænsninger.
Plan:
I de første eksperimenter brugte vi programmet SonisSensorTest, som bare tager målinger fra sensoren og udprinter dem på LCD'et. - Meget lig de første eksperimenter fra lyssensoren.
De næste eksperimenter går ud på at lege med værdierne i programmet Tracker, programmet søger at flytte sensoren hen i en afstand af f.eks. 35 cm. Med den nuværende opsætning virker det som om at den bare oscilere bl.a. pga. response-tid mellem processor, sensor og motor. Her gælder det om at finde en gylden middelvej i opsætningen af variablerne i programmet.
Sidste opgave går på at lave en wallfollower udfra Philippe Hurbains fremgangsmåde og eksperimentere med forskellige kontrol-algoritmer fra forrige uges forelæsning.
Activity:
Vi uploadede programmet 'SonicSensorTest' og forsøgte os at måle afstande til forskellige objekter.
Eksperiment 1:
Vi testede hvorledes ekkoet fra den udsendte lyd fra UltraSonicSensor opførte sig overfor forskellige overflader. Dvs. først på træpladerne på siderne af testbordet i Zuse-bygningen. Et ret forventet resultat, ie. et 'veldefineret ekko'.
Vi prøvede også med en fleecejakke over kanten - for at se hvorledes det påvirkede ekkoet. Det havde faktisk stor indflydelse, idet det absorberede meget af lyden. Vi skulle ind på mellem 89 - 110 cm for at sensoren kunne opfange et ekko.
Eksperiment 2:
Ud fra plottet herunder kan man se resultatet af 2 forskellige tests med Ultrasonicsensorens viste værdier i forhold til reelt målte værdier.
I den første test målte vi ekkoet på en hård overflade, mens vi i anden test målte en overflade hvorpå vi havde lagt en trøje over.
Vi kom frem til at der er god overensstemmelse med de målte værdier i intervallet fra ca. 20 cm og opefter. Hvis vi forsøgte at måle på afstande under 20 cm begyndte der at være fejl. sensoren mente der var længere end der faktisk var.
Eksperiment 3:
Vi forsøgte også at stille objekter ret foran og skråt foran sensoren, for at teste vinklen for de udsendte lydbølger, samt hvor små objekter der kunne opfanges ekko på. F.eks var det svært at opfange en plastikkop, mens den cylinderformede kaffekande og pladen af træ var nemme at se ret foran.
Når måleobjekterne blev stillet ud i en yddervinkel i forhold til sensoren, kunne sensoren ikke længere modtage ekkoet. Eksperimentet viste en overaskende bred vinkel.
Eksperiment 4:
I dette eksperiment anvender vi programmet Tracker.java. Programmet forsøger at flytte robotten til en given afstand af en genstand, ved hjælp af den ultrasoniske sensor. Efter at have kørt det originale program(minpower=60 , gain=0,5 , samplerate=300) ser vi at robotten bevæger sig ind til den korrekte afstand, hvorefter den begynder at oscillere omkring denne afstand. Trackerprogrammet fungerer som en proportionel controller og den oscillerende opførsel er netop et kendetegn ved denne type controllere. Vi vil dog argumentere for, at der er tale om en påtaget oscillering, idet programmet faktisk ikke forsøger at stoppe robotten når den rammer den præcise afstand. Programmet giver anledning til at eksperimentere med følgende variable: minpower, gain og samplerate.
Til forsøgene har vi rettet programmet til således, at robotten skal stoppe hvis den opnår den korrekte afstand, i stedet for at skulle køre enten frem eller tilbage(med standard indstillinger).
1. forsøg (minpower=60 , gain=0,5 , samplerate=300):
Efter ændringerne i koden observerede vi væsentlig færre oscillationer, i flere tilfælde stoppede robotten endda uden synlig oscillation.
5. Eksperiment
Implementering af wallfollower. Med udgangspunkt i en hurtig og forsimplet oversættelse af programmet og kørsel af dette, kan vi konkludere at det fungerer nogenlunde acceptabelt. Standardudgaven fungerer som en bang-bang controller, som dog til forskel fra en typisk implementering kan vælge mellem 6 forskellige muligheder.
Teksten beskriver henholdsvis en "gentle turning" algoritme og en "three state" algoritme. Gentle turning gør generelt at robotten performer bedre, idet begge hjul drejer hele tiden hvilket igen, som navnet antyder, giver en roligere og mere fremadrettet opførsel. Vi implementerede en lignende algoritme for lyssensoren og det gav samme resultat. Vi har ikke store erfaringer med 3-state algoritmen, men i modsætning til de to andre, giver 3-state ikke noget der ligner harmoniske svingninger, men performancemæssigt er den sammenlignelig med den simple wallfollower.
torsdag den 11. september 2008
Abonner på:
Kommentarer til indlægget (Atom)
Bidragydere
tagtagtag
- EndProject (9)
gl. blogindlæg
-
▼
2008
(20)
- ▼ september 2008 (9)
- ► oktober 2008 (4)
- ► november 2008 (4)
- ► december 2008 (3)
-
►
2009
(5)
- ► januar 2009 (5)
Ingen kommentarer:
Send en kommentar