Dato:
28-05-2013
Varighed:
Fælles lab: 7 timer
Blog: 5 timer
Deltagere:
Steffen Høi
Nikolaj Mols Hansen
Martin Vang
Ulrik Sahl Lystbæk
Nikolaj Mols Hansen
Martin Vang
Ulrik Sahl Lystbæk
Status
Vi kan aflæse målingsværdier for IR sensoren som er monteret på robotten. Den overordnede konstruktion af robotten er stadig i gang. Adfærdhierarkiet er stadig lidt buggy.
Mål
Målet for denne laboratoriesession er at arbejde videre på konstruktion af robotten, teste IR sensoren samt lave indledende undersøgelser med kompas.
Plan
- Videreudvikling af robot.
- Undersøge interaktion mellem IR-sensor og IR-bold og finde bolden på lang afstand (måle vinklerne med vinkelmåler og sætte værdierne ind i en graf for at se forholdet mellem)
- Få LEGO-robotten til at skyde mod mål (afgøre hvor målet er måske ved brug af kompas)
- Indlede undersøgelser med kompas.
- Rette fejl i adfærdhierarkiet.
Proces
Undersøge interaktion mellem IR-sensor og IR-bold
Først testede vi IR sensorens bredde. I bredden ved vi som vist på figuren Infrared Seeker Sensor fra sidste session, at der er 5 områder værdierne kan aflæses for. Vi ved også at der i alt burde være en bredde på 240 grader[1], som vi startede med at teste. Vinklen på de 240 grader stemte fint overens og det næste interessante var om de var ligeligt fordelt over de 5 områder. Det viste de sig at være dvs. at hvert felt fylder ca. 44 grader.
På bredden testede vi også overgangen mellem felterne og rigtigt
nok som også kan ses i dokumentet vi fandt sidst Thomas Eng [2] er der et sted mellem de forskellige felter hvor begge felter giver
udslag på målingerne. Vi har ikke oplevet på noget tidspunkt at bolden har
givet udslag på mere end 2 målingfelter for sensoren. Dvs. at værdien for alle
felter som ikke ser bolden er 0 og ikke noget med at de svinger mellem lave
værdier. Det er meget stabilt og derfor har vi faktisk 9 felter hvor vi kan se
bolden. Felterne er som følgende: (5), (5 og 4), (4), (4 og 3), (3), (3 og 2), (2), (2 og 1), (1).
Derefter fortsatte vi til at teste rækkevidden af sensoren. Formålet med at
teste rækkevidden var for det første at finde ud af hvor langt væk IR sensoren
ville være i stand til at se bolden, fordi hvis det ikke var langt skulle der
arbejdes på en adfærd til at komme godt rundt på banen for at lede efter bolden
uden at kunne se den. Fremgangsmåden var at måde den givne afstand ud fra robotten, for så at holde bolden fast i denne position og rotere den. Imens blev den maksimale og minimale værdi gemt. Afstandsmålingerne vi foretog kan ses her:
| Test af IR Seekers vinkel |
![]() |
| IR Seeker målefelter og overlap |
Måleværdier
200 cm 27-40
180 cm 26-50
160 cm 29-58
140 cm 34-60
120 cm 39-69
100 cm 51-80
80 cm 59-97
60 cm 81-120
40 cm 118-142
20 cm 130-145
10 cm 141-145
180 cm 26-50
160 cm 29-58
140 cm 34-60
120 cm 39-69
100 cm 51-80
80 cm 59-97
60 cm 81-120
40 cm 118-142
20 cm 130-145
10 cm 141-145
![]() |
| IR-Seeker måledata over afstand |
Vi har på baggrund af måledataene konkluderet at vi desværre ikke med god nok præcision kan bestemme afstanden fra vores robot til bolden. Problemet er at IR Bolden ikke udsender lige stærkt signal i alle retninger, så afhængig af hvordan bolden's indre dioder vender, får vi forskellige værdier ud fra en given afstand.
Kompas Sensor
Dette forsøg med at få kompasset til at fungere var ganske enkelt ubehageligt. Der er to forskellige måder at få en læsning ud af kompasset. Den ene er getDegrees(), der giver antal grader offset fra Nord jf. normalt kompas. Den anden er getDegreesCartesian(), der istedet giver grader der jf. dokumentationen "Compass readings increase clockwise from 0 to 360, but Cartesian coordinate systems increase counter-clockwise." Denne måletype havde dog den fordel at man kan "nulstille Nord" i den retning man har lyst til. Herefter får man grader ift. det nye "Nord".
I første omgang gik fremgangsmåden ud på at forsøge at få robotten til at dreje konsekvent imod Nord. Dette viste sig hurtigt at være utrolig svært. Under testene var robotten nogenlunde konsistent på en given plads på banen, men dens opfattelse af hvor Nord fra getDegrees() variereden med op til 50 grader. Dette var naturligvis uholdbart og utrolig frustrerende.
Vores teorier om hvad der var galt var på dette tidspunkt, at vi lavede fejlberegninger, at kompasset var i stykker eller at vi påvirkede det med trådløst signal fra telefoner. Vi havde allerede konstateret at kompasset var anderledes men stadigvæk ca. 50 grader usikkert forskellige steder på banen, ved at montere det på en lang ledning væk fra selve robotten og motorene (da vi mistænkte disses magnetfelter for at påvirke vores målinger under rotationen).
Opgaven blev overdraget til et par friske øjne med en ny vinkel på sagen og koden blev gemt, men ikke brugt i dette nye forsøg (helt nyt forsøg).
I første omgang gik fremgangsmåden ud på at forsøge at få robotten til at dreje konsekvent imod Nord. Dette viste sig hurtigt at være utrolig svært. Under testene var robotten nogenlunde konsistent på en given plads på banen, men dens opfattelse af hvor Nord fra getDegrees() variereden med op til 50 grader. Dette var naturligvis uholdbart og utrolig frustrerende.
Vores teorier om hvad der var galt var på dette tidspunkt, at vi lavede fejlberegninger, at kompasset var i stykker eller at vi påvirkede det med trådløst signal fra telefoner. Vi havde allerede konstateret at kompasset var anderledes men stadigvæk ca. 50 grader usikkert forskellige steder på banen, ved at montere det på en lang ledning væk fra selve robotten og motorene (da vi mistænkte disses magnetfelter for at påvirke vores målinger under rotationen).
Opgaven blev overdraget til et par friske øjne med en ny vinkel på sagen og koden blev gemt, men ikke brugt i dette nye forsøg (helt nyt forsøg).
Differentiel Pilot
En normal begrænsning ved at bruge Lejos frameworket er, at man ikke kan benytte de forskellige pilot-klasser sammen med direkte kontrol over motorerne. Vi har fra et tidligere projekt [3] lavet modifikationer så denne begrænsning ikke længere umiddelbart gør sig gældende. Der er dog stadig indstillinger for afstand imellem hjul (19,0 mm) samt hjulenes diameter (6,3 mm), der spiller ind ift. at kunne benytte differentiel piloten til at lave præcise sving og manøvredygtighed. Da vi har gearing på vores markspiller, bliver dette naturligvis nød til at blive indregnet. Dette burde gøres ved at gange gearings-faktoren (2,5:1) med hjulets diameter.Efter disse indstillinger testes robotten for at se om den kan dreje præcist på stedet. Vejledningen til differentiel pilot anbefaler at man ser om den kan køre en lige linje, men dette er meget svært at vurdere. Ved drejning på stedet 5 * 360 grader, fandt vi at det er nemmere at se om robotten stopper det samme sted, og dette hjalp os med at eliminere drift.
Efter at disse indstillinger er på plads blev robotten testet, og vi fandt at vi skulle bruge en konstant på 1,51 som dividend, for at robotten var præcis i drejninger. Dette kom noget bag på os, da vi forventede at en gearing på 2,5:1 ville give os en 2,5 gange hurtigere omdrejning, hvilket burde passe med den rapporterede 2,5 gange større diameter.
Vi valgte ikke at undersøge nøjere hvorfor dette var tilfældet, indtil vi fandt noget godt at bruge piloten på, hvor det kunne blive relevant.
Konklusion
IR sensoren er meget præcis i bredden og vi forventer at det vil gøre det ret let at navigere pænt i den rigtige retning mod bolden. De 9 felter gør at den kan rammes forholdsvis præcist selvom den nogle gange vil kunne ramme lidt skævt på bolden. Afstanden bolden kan ses på er meget god i forhold til at banen kun er 217 cm. Det betyder faktisk at bolden næsten vil kunne ses over
hele banen. Det største problem bliver hvis robotten vender med ryggen mod
bolden. Der er dog følgende problem som vi er opmærksomme på, på nuværende tidspunkt. Netop at robotten ikke helt
overholder WRO GEN II Football reglerne for kravet om robottens dimensioner.
Vi udskyder igen adfærdhierarkiet til næste session.
Vi udskyder igen adfærdhierarkiet til næste session.
Referencer
[1], http://www.usfirst.org/sites/default/files/uploadedFiles/_Programs/FTC/FTC_Documents/Using_the_IR_Seeker.pdf, Using IR Beacons and IR Seeker - Thomas Eng 2011.
[2], http://www.robotshop.com/lego-mindstorms-nxt-irseeker-v2-infrared-sensor.html, Robotshop IR sensor.
[3], http://digikaison.blogspot.dk/2013/04/week-8.html, Alishan Train Track.
[2], http://www.robotshop.com/lego-mindstorms-nxt-irseeker-v2-infrared-sensor.html, Robotshop IR sensor.
[3], http://digikaison.blogspot.dk/2013/04/week-8.html, Alishan Train Track.


No comments:
Post a Comment