... | ... | @@ -10,7 +10,7 @@ |
|
|
|
|
|
|
|
|
## Goal
|
|
|
I denne LEGO-session eksperimenteres med NXT lyssensor med henblik på at få LEGO-bilen til at følge en sort linje og stoppe i et grønt målfelt for enden af linjen. Vi bruger derfor lyssensoren til at registrere tre farver: sort, hvid og grøn.
|
|
|
I denne LEGO-session eksperimenteres med NXT lyssensor samt NXT farvesensor med henblik på at få LEGO-bilen til at følge en sort linje og stoppe i et grønt målfelt for enden af linjen. Vi bruger derfor både lyssensoren og farvesensoren til at registrere tre farver: sort, hvid og grøn.
|
|
|
|
|
|
|
|
|
## Plan
|
... | ... | @@ -134,7 +134,7 @@ Da vi afprøve ovenstående program, Test.java, blev det klart, at programmet ku |
|
|
|
|
|
*Billede 4: Sensor placeret over både hvid og sort overflade.*
|
|
|
|
|
|
![reader](http://gitlab.au.dk/uploads/group-5/group-5-lesson-4/42a91ec161/reader.JPG)
|
|
|
![reader](http://gitlab.au.dk/uploads/group-5/group-5-lesson-4/04b289af5d/reader.JPG)
|
|
|
|
|
|
|
|
|
### Exercise 4 - Line Follower that stops in a Goal Zone
|
... | ... | @@ -201,7 +201,7 @@ Som det ses af videoen ovenfor følger LEGO-bilen den sorte streg, indtil den be |
|
|
|
|
|
|
|
|
### Exercise 5 - PID Line Follower
|
|
|
Som det fremgår af Video 1 viser LEGO-bilen en oscillerende opførsel, hvor lyssensoren regelmæssigt bevæges fra den sorte linje ud i det hvide område. Denne opførsel forsøgte vi at optimere ved at få LEGO-bilen til at bevæge sig mere “smooth”, og dermed undgå oscillering, ved at benytte en PID-controller.
|
|
|
Som det fremgår af Video 1 viser LEGO-bilen en oscillerende opførsel, hvor lyssensoren regelmæssigt bevæges fra den sorte linje ud i det hvide område. Denne opførsel forsøgte vi at optimere ved at få LEGO-bilen til at bevæge sig uden synlig oscillering, og dermed undgå oscillering, ved at benytte en PID-controller.
|
|
|
|
|
|
For at kunne ændre på konstanterne uden overhead med at uploade programmet, benyttede vi os af Bluetooth samt en GUI, der tillod vi kunne tilgå konstanterne (og minPower). Dette gjorde vi for at fjerne overheadet i at uploade programmet med nye værdier hele tiden.
|
|
|
|
... | ... | @@ -216,7 +216,7 @@ Videodemonstrationen viser hvorledes LEGO-bilen kører stabilt langs den sorte s |
|
|
|
|
|
### Exercise 6 - Color Sensor
|
|
|
|
|
|
Tilsvarende exercise 4, ønsker vi at LEGO-bilen skal følge en sort linje, indtil den rammer en grøn overflade, men denne gang ved at gøre brug af en farvesensor i stedet for en lyssensor. Ved at benytte ColorSensorTest.java programmet og placere sensoren hhv. over sort, hvid og grøn er det muligt for os at undersøge om farvesensoren kan skelne mellem de tre farver. Resultaterne kan ses nedenfor.
|
|
|
Tilsvarende exercise 4, ønsker vi at LEGO-bilen skal følge en sort linje, indtil den rammer en grøn overflade, men denne gang ved at gøre brug af en farvesensor i stedet for en lyssensor. Ved at benytte ColorSensorTest.java programmet og placere sensoren hhv. over sort, hvid og grøn er det muligt for os at undersøge om farvesensoren kan skelne mellem de tre farver. Vi bemærkede at det er vigtigt at sensoren er ortogonal på overfladen, da farverne ellers kunne misfortolkes. Resultaterne fra målingerne kan ses nedenfor.
|
|
|
|
|
|
*Figur 1: Dataindsamling for farverne sort, hvid og grøn ved brug af programmet ColorSensorTest.java*
|
|
|
|
... | ... | @@ -244,7 +244,11 @@ Tilsvarende exercise 4, ønsker vi at LEGO-bilen skal følge en sort linje, indt |
|
|
|
|
|
Som det ses af målingerne herunder, er der en distinkt afvigelse mellem de tre farver. Disse målinger kan vi benytte til at differentiere mellem farverne og få LEGO-bilen til følge en sort streg og stoppe i et grønt felt.
|
|
|
|
|
|
Med robottens nuværende setup, står farvesensoren en smule skævt på overfladen. Det gør at den har en tendens til at tolke sort som grøn. Vi kommer uden om denne begrænsning ved at få robotten til at dreje til den ene side såfremt den aflæser enten grøn eller sort og til den anden side hvis den aflæser hvid. Som i LineFollowerCal (exercise 4) er afslutningskriteriet at der er blevet aflæst grønt 30 gange i træk (i ca. 300 ms). Resultatet kan ses i følgende video:
|
|
|
|
|
|
*Video 4: Demonstration af programmet ColorLineFollower.java*
|
|
|
|
|
|
[![image alt text](http://img.youtube.com/vi/QuvHNAJpKSM/0.jpg)](http://www.youtube.com/watch?v=QuvHNAJpKSM)
|
|
|
|
|
|
## Conclusion
|
|
|
|
... | ... | @@ -252,7 +256,7 @@ Alle øvelser i denne uge blev udført ved hjælp af instruktionerne fra NXT gui |
|
|
|
|
|
Vi har vist at vi kan kontrollere LEGO-bilens bevægelsesmønster udelukkende ved hjælp af lyssensoren, herunder få den til at følge en sort streg, stoppe når den registrerede et grønt felt. I denne forbindelse har vi gjort os erfaring med en væsentlig problematik ved lyssensoren, idet lyssensoren er istand til at læse en værdi for en bestemt farve uden nødvendigvis at være placeret over pågældende farve. Dette skyldes at lyssensoren er istand til at læse flere farver på én gang og dernæst beregne et slags gennemsnit baseret på mængden af hver farve. I en øvelse overkom vi dette ved at kræve af lyssensoren skulle registrere samme værdi for farven over et længere tidsinterval, således forekomsten disse tilfældigheder blev elimineret.
|
|
|
|
|
|
Derudover eksperimenterede vi med måden LEGO-bilen bevægede sig på ved at få den til at bevæge sig mere flydende, og dermed følge den sorte linje mere præcist. Dette lykkedes ved hjælp af en PID-controller, hvor vi gennem eksperimentation med konstanterne (proportional-, integral-, og differential konstanten) fandt frem til en kombination, således LEGO-bilen var i stand til at oscillere mindst muligt, men samtidig håndtere skarpe sving. Slutteligt, har vi påvist at det er muligt at få LEGO til at udvise samme opførsel som ved brug af en farvesensor, der ligeledes lyssensoren kan differentiere mellem forskellige farver.
|
|
|
Derudover eksperimenterede vi med måden LEGO-bilen bevægede sig på ved at få den til at bevæge sig mere flydende, og dermed følge den sorte linje mere præcist. Dette lykkedes ved hjælp af en PID-controller, hvor vi gennem eksperimentation med konstanterne (proportional-, integral-, og differential konstanten) fandt frem til en kombination, således LEGO-bilen var i stand til at oscillere mindst muligt, men samtidig håndtere skarpe sving. Slutteligt, har vi påvist at det er muligt at få LEGO til at udvise samme opførsel som ved brugen af en farvesensor, der ligeledes lyssensoren kan differentiere mellem forskellige farver.
|
|
|
|
|
|
## References
|
|
|
|
... | ... | |