torsdag den 4. november 2010

Lab 8


Dato: 4/11 2010

Tid: 3 timer
Tilstedeværende: Lars Christian, Daniel og Line

1. Aktivitet: Diskuter endcourse projekt
Mål: at få lavet nogle overvejelser om hvad der kan lade sig gøre hvordan
Plan: Høre hvad vi har af forskellige ideer
Result: Vi har lidt forskellige ideer, bl.a. høvdingebold (til at starte med med en enkelt robot), ping pong, fjernstyret robot der så senere bliver autonom. Vi har lidt problemer i forhold til boldspillene der drejer som om muligheden for at føle, "se" og kaste skal kunne lade sig gør ei en robot.

2. Aktivitet: Lab opgaver
Mål: At få lavet ugens opgaver.
Plan: Starte fra toppen og fortsætte ned af.
Results:
1. opgave at afprøve den udleverede SoundCar.
Vi overførte den udleverede software til NXT, og afprøvede software.
Observationer:
Bilen kører rundt, det ser lidt tilfældigt ud, siger lyde og forsøger at kører uden om ting foran den. Den siger ca. den fantastiske lyd hvert 10.sekund

2.Opgave, Behaviors as concurrent threads
What triggers the different threads and how is their actions implemented?
PlaySounds: Bliver triggerede hver 10. sekund, actionen kører en gang og venter så igen 10 sekunder.
AvoidFront: Bliver triggerede af US-sensor hvis den er for tæt på, actionen er en hard coded sti den følger.
RandomDrive: Bliver triggered så længe de andre ikke supresser, kører bare random rundt.
De har alle det til fælles at de supresser dem der kommer senere og aldrig udføre deres kode hvis de er blevet supresset.

Try to watch the car with only the first thread active and then with only the two first threads active to observe the behaviors more clearly.
Når vi deaktivere en tråd vil den ikke længere supresse eller bruge motoren. Så hvis vi supresser avoid, vil den køre random (også ind i ting) og give lyd hver 10. sekund.


3. Opgave, Class behavior
What is the purpose of making these threads daemon threads as done in the constructor of the Behavior class?
Når main tråden slutter ønsker du at resten af trådende stopper også. Hvis de ikke er demons alle sammen skulle du slå dem ihjel manuelt (med en chance for at glemme en), det behøves du ikke nu.

How is this integer used to implement a suppression mechanism in Behavior.java to obtain controlled access to the motors?
Når motoreren skal køre tjekker den om den er supressed, dette er den hvis der på den behavior motoren kører i er blevet kaldt metoden suppresscountincrement, der bliver kaldt af metoden supress. Supress bliver kaldt på en behavior, der så incrementer suppresscount og supress'er den behavior vi er i.
4. Opgave Add a behavior "Drive towards light"
Vi tilføjede vores klasse fra sidste uge, ændrede portnumrene på lyssensorene, og den ultrasonic sensore, da vi efter et forsøg havde opdaget den ikke "avoid front".
Vi observede her efter at de ande tråde ikke får lov til at køre, via et eksperiment. Vi forsøgte at finde ud af hvad det var vi havde gjort forkert i forhold til at få de andre tråde til at køre. Vi fandt ud af at vi lavede vores egen car, og ikke brugte den der allerede var. Vi forsøgte igen, men denne ændring løste ikke problemet. Vi fandt ud af at vi initialiserede vores i konstruktoren, i stedet for at lade det køre i run() som de andre klasser fik lov til. Dette resulterede i at vi kom ind i en løkke som vi aldrig kom ud af, og derfor kom vi aldrig videre. Men vi fik rettet fejlen og fik det til at virke.

Vi har primært ændret i SoundCar og Vehicle2b.
Koden til alle klasserne findes her:


Ingen kommentarer:

Send en kommentar