mandag den 9. april 2012

TeddyClimber, session 3

Deltagere: Jesper, Troels og Mikkel

Tid: 4 timer


Plan

1. Vi skal have bekræftet at sensorerne virker
2. Vi skal kunne følge en linje

Resultat

1. Vi har fundet ud af at vores kode til at kalibrere sensorerne var forkert. Dette resulterer naturligt i at vi fik en forkert opførsel. Vi kalibrerede i forkert rækkefølge, så forkerte værdier blev bundet til de forskellige sensorer.
Vi startede med at bruge Raw-værdierne fra sensorerne, men er gået væk fra dette da vi bedre kunne få den normaliserede værdier til at virke. Resultatet er at vi nu har pålidelige værdier fra vores sensorer.

2. Vi skal finde ud af hvilken taktik vi vil bruge til at følge stregen. Vi starter med at lave en PID dreven 1-sensor løsning til at følge stregen og så vil vi bygge videre ud fra dette som vi kommer videre i banen.
Vi har følgende plan for hvordan TeddyClimber skal køre:
1. Start på grøn i højre side, kør frem.
2. Når vi rammer hvid med vores sensor, kører vi mod venstre indtil vi rammer sort, så kører vi mod højre, så mod venstre når den læser hvid.
3. Vi skal så finde en måde at opdage at vi rammer hjørnet, her skal vi skifte over på den anden side af stregen og køre (2) igen med omvendte retninger.
4. Hvis vi læser sort med alle vores sensorer, er vi på vej ind i målzonen, så skal vi køre lidt frem og vende og køre tilbage, her bruger vi så de to varianter af (2).
5. Når vi rammer grøn med alle vores sensorer kører vi lidt frem og stopper.

Dette resulterer i følgende model for hvordan vi vil køre op af banen:
Bemærk at vi kører på forskellige sider af stregen!
De runde cirkler på tegningen viser de steder hvor vi skal læse "sort" på begge sensorer. Dette viser os at vi skal gå videre til næste konfiguration (altså om vi skal køre på den ene side af stregen eller den anden).

Vores første problem er at kunne følge en linje med vores PID kode fra en tidligere uge-opgave.
Vi har valgt at lave en abstrakt klasse "AbstractTeddy", som står for kommunikation med pc'en. Denne klasse nedarver vi i forskellige implementationer af TeddyClimber. TeddyClimber har en Control (interface) klasse, der bestemmer hvad der skal ske for hvert gennemløb af while-loopet i TeddyClimbers run metode. Dette gør at vi kan skifte Control klassen ud for de forskellige løsninger vi har til at finde igennem banen.

Vi har lavet en SingleControl-klasse der implementerer interfacet Control. Heri vil vi prøve at implementere ovenstående plan. Vi har lavet et første forsøg som gerne skulle kunne følge en linje på venstre side af den højre sensor. Vi har dog ikke nået at teste implementationen.

Vi har her opdaget at vores bluetooth kommunikation ikke helt fungerer så vi kan sætte P,I,D værdier "on-the-fly".
Vi har også valgt at lave en "restart" feature der gør at vi kan resette vores pc-program, så vi ikke behøver at lukke og starte det hver gang vi slukker robotten.

Konklusion

Vi har fikset en masse problemer med bluetooth forbindelsen. Vi har skabte en struktur der gør det let at udskifte strategier for hvordan vi finder igennem banen og vi har lavet lidt kode til en første skridt i planen for at komme igennem banen.

Ingen kommentarer:

Send en kommentar