- Diskutere og vælge design af robot
- Implementere programmet, der skal styre robotten
- Optimere program og design
Hvis den sorte linie drejer til højre vil den højre blå sensor begynde at aflæse sort og retningen skal justeres mod højre indtil den orange sensor aflæser sort og den højre blå aflæser hvid. På samme måde hvis linien skifter retning mod venstre.
Desværre var der ikke flere sensorer vi kunne låne, så denne løsning blev vi nød til at droppe.
Stadigvæk ville vi gerne have muligheden for at "se" mere af banen. Derfor kom vi på at vi kunne bruge en motor til at rotere sensoren, så den kunne lave et sweep af området foran banen:
I første omgang havde vi et hjul monteret på samme motor der roterede sensoren, så NXT'en bevægede sig i samme retning som sensoren. I princippet gjorde det bare at robotten blev led delt, men der var ikke rigtigt nogen fordel i forhold til den simple linefollower vi implementerede i sidste lektion.
Derfor besluttede vi at fjerne hjulet på den roterende sensor, så farvesensoren kunne rotere uden at påvirke retningen direkte. Håbet var at sweepet kunne laves hurtigt, så vi kunne få information om venstre og højre siden af den sorte linie og derudfra beregne hvordan NXT'en skulle køre.
Programmet blev implementeret således at sweepet prøver at følge linien. Dvs. at når sensoren har set sort og derefter hvid stopper den og roterer tilbage. Værdien hvor linien slutter til højre (hvis den slutter ellers den max_taco) og værdien til venstre, hvor linien slutter bruges til at beregne middelværdien x, der bruges til beregning af hastighederne på motorene der driver hjulene. Vores første forsøg kan ses i grafen nedenuden.
Ideen er at hvis x er positiv skal robotten dreje mod højre. Dvs. at venstre hjul får fuld hastighed, mens hastigheden på det højre hjul varieres. Desværre fandt vi ud af overstående gav en for kraftig styring og værdien blev justeret til den nedenstående graf, der så ud til at virke meget bedre.
Bortset fra det tilfælde hvor x er meget stor. Derfor indsatte vi to thresholds, et til at lade det ene hjul floate og et andet til at bakke på det ene hjul for at få skarpere sving ved store x-værdier.
Ingen kommentarer:
Send en kommentar