fredag den 30. marts 2012

TeddyClimber, session 1


Torsdag 22. marts
Deltagere: Mikkel, Jesper, Bjarke og Troels

Opgave

Vi skal bygge en robot der kan finde op af følgende bakkebane:
Man skal nå op til toppen og tilbage til start hurtigst. Da det er en konkurrence, skal vi vinde.

Plan

1. Vi skal lave et GUI program på computeren som kan tilkobles bilen, hvis vi ønsker at kunne ændre værdier og modtage værdier over bluetooth imens bilen kører.
2. Vi skal beslutte hvordan vi opdager at vi kommer til svingene og hvordan vi foretager et sving hurtigst muligt.
3. Vi skal kunne håndtere de tre forskellige farver: sort, hvid, grøn (mål).
4. Vi skal også have fundet en bilkonstruktion der kan køre hurtigst muligt.

Resultater

1.
Vi har arbejdet på at tilpasse vores kommunikation imellem robot og pc til de behov vi har. Her har vi valgt at

2.
Vi har overvejet tre muligheder.
En mulighed er en ultralydssensor, der fanger hvornår man kører på bakke og hvornår man kører på plateauerne. Her skal vi så i logikken holde styr på de forskellige områder af banen vi er på.
En anden mulighed er at bruge lyssensorer. Her har vi overvejet to setups.
Her er ideen at vi følger den sorte streg med den nederst sensor i begge setups. I den venstre kigger vi så efter et hvidt område foran den nederst sensor og derved fange at vi er ved et sving. Den højre mulighed er at vi har to lyssensorer, der måler på hver side af midten efter sorte streger. Fordelen ved dette setup at vi ved i hvilken retning vi skal dreje.
Vi ser nogle problemer med at bruge ultralydsensoren. Der er forskel på om man kører nedad eller opad.
Vi er begyndt at overveje et nyt setup hvor vi har en lyssensor på hver side af den sorte streg og en længere fremme for at opdage hvornår vi kommer til plateauerne.
Her er vi begyndt at overveje om vi behøver mere end de to nederste sensorer. Vi har besluttet at prøve at få dette til at virke. Det vil sige følgende sensorsetup:
For at dette kan virke skal vi sikre at vi kommer i nogle bestemte states, hvor vi ved hvad vi skal gøre for at komme videre til næste state.
Vi har bygget følgende robot:
[Billeder 2 3]
3.

4.
Vi har overvejet om vi skal have 2 eller 3 motorer.

Post day-1

Vi har implementeret store dele af programstrukturen, således at vi har en GUI der kan sende og modtage data via hhv en sender og modtager klasse. Det hele er styret af MainHandler klassen, der opretter klasserne og binder dem sammen.
UML diagram følger.

Forslag til design - billede og pseudo kode. Hvert tal på billedet svarer til en kommentar (// x) i pseudo koden
 

public class PseudoClimber{

public Motor leftMotor;
public Motor rightMotor;

public Sensor rightLight;
public Sensor leftLight;
public Sensor middleSensor;

public Robot() {

//Go

//1
while(something) {

//2
if(black(rightLight.value)) {
//turn right
}
else if(white(rightLight.value)) {
//turn left
}

//Omvendt for leftLight!

//3
if(white(middleSensor.value)) {
//turn right //fine tune hvordan
}
}

//4
//Find linje igen

while(something) {
//5
if(black(rightLight.value)) {
//turn right
}
else if(white(rightLight.value)) {
//turn left
}

//Omvendt for leftLight!

//6
if(white(middleSensor.value)) {
//turn left //fine tune hvordan
}
}

//7
//find linje igen

while(something) {
if(black(rightLight.value)) {
//turn right
}
else if(white(rightLight.value)) {
//turn left
}

//8
if(black(rightLight.value) && black(leftLight.value) && black middleLight.value) {
//180 degree turn
}

//Samme procedure som ovenfor når vi skal ned igen!
}
public boolean black(int i) {
}
public boolean white(int i) {
}
}


Konklusioner
Vi har fået lavet en masse overvejelser og vil bringe det videre til næste gang vi arbejder på Robotten. Derudover har vi fået kommunikationen imellem robot og computer til at køre.

Ingen kommentarer:

Send en kommentar