... | @@ -2,7 +2,7 @@ |
... | @@ -2,7 +2,7 @@ |
|
|
|
|
|
## Lab Notebook Lesson 6
|
|
## Lab Notebook Lesson 6
|
|
|
|
|
|
**Date:** 05/03 2015
|
|
**Date:** 09/03 2015 & 12/03 2015
|
|
|
|
|
|
**Group members participating:** Daniel Vestergaard, Christoffer Skovgaard, Mikkel Brun Jakobsen og Josephine Raun Thomsen.
|
|
**Group members participating:** Daniel Vestergaard, Christoffer Skovgaard, Mikkel Brun Jakobsen og Josephine Raun Thomsen.
|
|
|
|
|
... | @@ -10,7 +10,7 @@ |
... | @@ -10,7 +10,7 @@ |
|
|
|
|
|
|
|
|
|
## Goal
|
|
## Goal
|
|
I denne Lego-session eksperimenteres der med Braitenberg’s vehicles [1]. Ved brug af Tom Dean’s noter [2][3] ønsker vi at opnå en forståelse for køretøjernes respektive opførsel. Mere specifikt benyttes LEGO NXT-bricken til at konstruere de forskellige Braitenberg vehicles, hhv. type 1, 2a og 2b.
|
|
I denne lesson eksperimentere med Braitenberg’s vehicles [1]. Ved brug af Tom Dean’s noter [2][3] ønsker vi at få en bedre forståelse af køretøjernes respektive opførsel. Vi vil benytte LEGO NXT-bricken til at konstruere de forskellige Braitenberg vehicles, hhv. type 1, 2a og 2b (se figur 1).
|
|
|
|
|
|
|
|
|
|
*Figur 1: Braitenberg’s vehicles.*
|
|
*Figur 1: Braitenberg’s vehicles.*
|
... | @@ -23,22 +23,22 @@ Vores plan er at følge instruktionerne for Lesson 6 [4]. |
... | @@ -23,22 +23,22 @@ Vores plan er at følge instruktionerne for Lesson 6 [4]. |
|
|
|
|
|
## Results
|
|
## Results
|
|
|
|
|
|
Som foreslået til forelæsningen “Embodied Agents and Adaptive Flocks of Agents”, har vi lavet en “wrapper klasse” der holder styr på henholdsvis den mindste og største værdi en sensor nogensinde har set. Den mindste og største værdi bruges til at danne et interval hvorfra vi kan udregne en normaliseret værdi. Den normaliserede værdi går mod 0 desto tættere sensorens måling er på den hidtil mindste værdi, og går omvendt mod 1 hvis sensorens måling nærmer sig den hidtil største værdi. Klassen har desuden mulighed for at invertere den normaliserede værdi, ved at trække den fra 1. Den normaliserede værdi (og den inverterede udgave heraf) gør det nemt at afbilde fra sensor værdi til motorkraft.
|
|
Som foreslået til forelæsningen “Embodied Agents and Adaptive Flocks of Agents”, har vi lavet en “wrapper klasse” der holder styr på henholdsvis den mindste og største værdi en sensor nogensinde har målt. Den mindste og største værdi bruges til at danne et interval hvorfra vi kan udregne en normaliseret værdi. Den normaliserede værdi går mod 0 desto tættere sensorens måling er på den hidtil mindste værdi, og går omvendt mod 1 hvis sensorens måling nærmer sig den hidtil største værdi. Klassen gør det desuden muligt at invertere den normaliserede værdi, ved at trække den fra 1. Den normaliserede værdi (og den inverterede udgave heraf) gør det nemt at afbilde fra sensor værdi til motorkraft.
|
|
Klassen hedder BetterSensor og kan findes i vores repository.
|
|
Klassen hedder BetterSensor og kan findes i vores repository.
|
|
|
|
|
|
|
|
|
|
### Exercise 1 - Vehicle 1
|
|
### Exercise 1 - Vehicle 1
|
|
|
|
|
|
Lego-bilen vi benytter er Braitenberg’s vehicle 1, som er konstrueret ved brug af guiden for Express-Bot [5]. Express-bot er en simpel LEGO basis konstruktion, der består af en bil base (med et drejehjul bagerst) og en forlængelse foran (hvorpå sensorer kan placeres).
|
|
I denne exercise har vi konstrueret en LEGO bil ved hjælp af guiden for Express-Bot [5]. Express-bot er en simpel LEGO basis konstruktion, der består af en bil base (med et drejehjul bagerst) og en forlængelse foran (hvorpå sensorer kan placeres).
|
|
|
|
|
|
Vores vehicle 1 benytter en lydsensor som input til at bestemme bilens bevægelse. Som vist i Figur 1, kan vehicle 1 kun bevæge sig lineært. De to motorer på bilen får samme motorkraft, hvilket vil sige at vehicle 1 hverken kan dreje til højre eller venstre. Bilen vil derfor enten køre forlæns eller baglæns (se billede x).
|
|
Udover at være en Express-bot, har vi tilpasset vores LEGO bil således at den kan fungere som Braitenberg vehicle 1 konstruktion. Dette betyder vi benytter én lydsensor som input til at bestemme bilens bevægelse. Som vist i Figur 1, kan vehicle 1 kun bevæge sig lineært. De to motorer på bilen får samme motorkraft, hvilket vil sige at vehicle 1 hverken kan dreje til højre eller venstre. Bilen vil derfor enten køre forlæns eller baglæns (se billede 1).
|
|
|
|
|
|
*Billede 1: NXT konstrueret som Vehicle 1 med lydsensor.*
|
|
*Billede 1: NXT konstrueret som Vehicle 1 med lydsensor.*
|
|
|
|
|
|
![billed 1](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/99b55cb033/billed_1.JPG)
|
|
![billed 1](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/99b55cb033/billed_1.JPG)
|
|
|
|
|
|
|
|
|
|
Som det ses af figur 1 er forbindelserne på Vehicle 1 markeret med et +. Dette betyder at jo højere lyden fra omgivelserne er, jo hurtigere vil bilen bevæge sig. Disse +-forbindelser kaldes for exitatory forbindelser.
|
|
Som det ses af figur 1 er forbindelserne på Vehicle 1 markeret med et +. Dette betyder for vores vehicle 1 implementation at desto højere lyden fra omgivelserne er, desto hurtigere bevæger LEGO bilen sig. Disse +-forbindelser kaldes for exitatory forbindelser.
|
|
|
|
|
|
*Video 1: Demonstration af Vehicle 1 - Exitatory Connection*
|
|
*Video 1: Demonstration af Vehicle 1 - Exitatory Connection*
|
|
|
|
|
... | @@ -49,11 +49,11 @@ Som det ses af video 1 reagerer bilen på de udefrakommende stimuli, her én tes |
... | @@ -49,11 +49,11 @@ Som det ses af video 1 reagerer bilen på de udefrakommende stimuli, her én tes |
|
|
|
|
|
Det omvendte af exitatory fobindelser er inhibatory forbindelser. Disse ses af figur 1 som markeret med et - tegn . At sensorerne er koblet til motorerne med inhibatory forbindelser betyder at desto højere lyder fra omgivelserne er, desto langsommere bevæger bilen sig.
|
|
Det omvendte af exitatory fobindelser er inhibatory forbindelser. Disse ses af figur 1 som markeret med et - tegn . At sensorerne er koblet til motorerne med inhibatory forbindelser betyder at desto højere lyder fra omgivelserne er, desto langsommere bevæger bilen sig.
|
|
|
|
|
|
*Video 2: Demonstration af Vehicle 1 - inhibitory connection*
|
|
*Video 2: Demonstration af Vehicle 1 - Inhibitory connection*
|
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/_ub8TykKagE/0.jpg)](https://www.youtube.com/watch?v=_ub8TykKagE)
|
|
[![image alt text](https://img.youtube.com/vi/_ub8TykKagE/0.jpg)](https://www.youtube.com/watch?v=_ub8TykKagE)
|
|
|
|
|
|
Af video 2 ses den omvendte opførsel af video 1. Bilen bevæger sig frem med en fast hastighed lige indtil sensoren registrerer kraftig lyd fra omgivelserne (testperson banker i bordet). Bilen sænker derefter sin hastighed indtil lyden igen forsvinder, og bilen kommer op i hastighed igen. Lydsensoren agerer dermed som en simpel resistormekanisme, der er direkte afhængig af lysintensiteten.
|
|
Af video 2 ses den omvendte opførsel af video 1. Bilen bevæger sig frem med en fast hastighed, lige indtil sensoren registrerer kraftig lyd fra omgivelserne (testperson banker i bordet). Bilen sænker derefter sin hastighed indtil lyden igen forsvinder, og bilen kommer op i hastighed igen. Lydsensoren agerer dermed som en simpel resistormekanisme, der er direkte afhængig af lysintensiteten.
|
|
|
|
|
|
Ved at benytte henholdsvis den største og mindste sensor-værdi, eksperimenterede vi derudover med at få Vehicle 1 til at danse. Da bilen hverken kan bevæge sig til højre eller venstre, havde vi to retninger vi kunne få bilen til at “danse” i. Vi implementerede dansen således, at når der ikke var noget musik ville bilen bevæge sig bagud, mens bilen bevægede sig fremad når lydsensoren registrerede musik. Desto højere lyden er, desto hurtigere bevæger bilen sig frem.
|
|
Ved at benytte henholdsvis den største og mindste sensor-værdi, eksperimenterede vi derudover med at få Vehicle 1 til at danse. Da bilen hverken kan bevæge sig til højre eller venstre, havde vi to retninger vi kunne få bilen til at “danse” i. Vi implementerede dansen således, at når der ikke var noget musik ville bilen bevæge sig bagud, mens bilen bevægede sig fremad når lydsensoren registrerede musik. Desto højere lyden er, desto hurtigere bevæger bilen sig frem.
|
|
|
|
|
... | @@ -65,9 +65,9 @@ Som det ses af video 3 resulterede denne adfærd i at bilen bevæger sig bagud n |
... | @@ -65,9 +65,9 @@ Som det ses af video 3 resulterede denne adfærd i at bilen bevæger sig bagud n |
|
|
|
|
|
### Exercise 2 - Vehicle 2
|
|
### Exercise 2 - Vehicle 2
|
|
|
|
|
|
Vehicle 2 er stort set magen til vores Vehicle 1, idet at den fysisk er konstrueret som en Express-bot. Forskellen mellem de to vehicles består i måden hvorpå sensorerne er forbundet til motorerne, samt at Vehicle 2 gør brug af 2 sensorer modsat Vehicle 1 ene sensor (se billede x).
|
|
Vehicle 2 er stort set magen til vores Vehicle 1, idet at den fysisk er konstrueret som en Express-bot. Forskellen mellem de to vehicles består i måden hvorpå sensorerne er forbundet til motorerne, samt at Vehicle 2 gør brug af 2 sensorer modsat Vehicle 1 ene sensor (se billede 2).
|
|
|
|
|
|
*Billede 2: NXT konstrueret som Vehicle 2 med to lyssensorer.*
|
|
*Billede 2: Lego NXT bil konstrueret som en Braitenberg Vehicle 2 med to lyssensorer*
|
|
|
|
|
|
![billed 2](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/a456b0f4a5/billed_2.JPG)
|
|
![billed 2](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/a456b0f4a5/billed_2.JPG)
|
|
|
|
|
... | @@ -75,7 +75,7 @@ Vehicle 2 er stort set magen til vores Vehicle 1, idet at den fysisk er konstrue |
... | @@ -75,7 +75,7 @@ Vehicle 2 er stort set magen til vores Vehicle 1, idet at den fysisk er konstrue |
|
#### Eksperiment - Exitatory og Inhibitory connections
|
|
#### Eksperiment - Exitatory og Inhibitory connections
|
|
|
|
|
|
*Vehicle 2a:*
|
|
*Vehicle 2a:*
|
|
Af figur 1 ses det at vehicle 2a skal afbilde lys fra venstre sensor over på den venstre motor og lys fra højre sensor over på den højre motor. Dette har vi implementeret på følgende måde:
|
|
Af figur 1 ses det at vehicle 2a skal afbilde målinger af lys intensitet fra venstre sensor på venstre motor og lys intensitets målinger fra højre sensor over på den højre motor. Dette har vi implementeret på følgende måde:
|
|
|
|
|
|
*Java-kode 1: Vehicle 2a*
|
|
*Java-kode 1: Vehicle 2a*
|
|
```Java
|
|
```Java
|
... | @@ -92,16 +92,16 @@ Vi forsøge at tildele Vehicle 2a både exibitory og inhibitory forbindelser. De |
... | @@ -92,16 +92,16 @@ Vi forsøge at tildele Vehicle 2a både exibitory og inhibitory forbindelser. De |
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/JT5ovxTyMAU/0.jpg)](https://www.youtube.com/watch?v=JT5ovxTyMAU)
|
|
[![image alt text](https://img.youtube.com/vi/JT5ovxTyMAU/0.jpg)](https://www.youtube.com/watch?v=JT5ovxTyMAU)
|
|
|
|
|
|
I video 4 ser vi, hvordan exitatory forbindelser gør at Vehicle 2a tilegner sig en adfærd, hvor den søger lyset. Som det ses af videoen, starter bilen ud med at befinde sig bagved en hvid papkasse, men er i stand til at dreje rundt om kassen i retning af vinduet - hvilket er den kraftigste lyskilde i lokalet.
|
|
I video 4 ser vi, hvordan exitatory forbindelser gør at Vehicle 2a tilegner sig en adfærd, hvorved den søger stærke lyskilder. Som det ses af videoen, starter bilen ud med at befinde sig bagved en hvid papkasse, men er i stand til at dreje rundt om kassen i retning af vinduet - hvilket er den kraftigste lyskilde i lokalet.
|
|
|
|
|
|
*Video 5: Inhibatory Vehicle 2a*
|
|
*Video 5: Inhibatory Vehicle 2a*
|
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/iOHpEeeHclc/0.jpg)](https://www.youtube.com/watch?v=iOHpEeeHclc)
|
|
[![image alt text](https://img.youtube.com/vi/iOHpEeeHclc/0.jpg)](https://www.youtube.com/watch?v=iOHpEeeHclc)
|
|
|
|
|
|
I video 5 ser vi den omvendte adfærd af video 4. Her gør Inhibitory forbindelserne at Vehicle 2a bevæger sig væk fra lyset, og tilegner sig en kakerlak-agtig adfærd. Det ses hvordan bilen finder skygge ved at søge væk fra lyskilden fra vinduet og ind i skyggen fra kassen.
|
|
I video 5 ser vi den omvendte adfærd af video 4. Her gør Inhibitory forbindelserne at Vehicle 2a bevæger sig væk fra lyset, og tilegner sig en kakerlak-agtig adfærd. Det ses hvordan bilen finder skygge ved at søge væk fra vindues lyskilden og ind i kassens skygge.
|
|
|
|
|
|
*Vehicle 2b:*
|
|
*Vehicle 2b:*
|
|
På figur 1 ses det at vehicle 2b skal afbilde lys fra venstre sensor over på den højre motor og lys fra højre sensor over på den venstre motor. Det har vi implementeret på følgende måde:
|
|
På figur 1 ses det at vehicle 2b skal afbilde lys intensitets målinger fra venstre sensor over på den højre motor og lys intensitets målinger fra højre sensor over på den venstre motor. Det har vi implementeret på følgende måde:
|
|
|
|
|
|
*Java-kode 2: Vehicle 2b*
|
|
*Java-kode 2: Vehicle 2b*
|
|
```Java
|
|
```Java
|
... | @@ -110,7 +110,7 @@ int rightPower = (int) (minPower + leftLight.getValue() * (maxPower - minPower)) |
... | @@ -110,7 +110,7 @@ int rightPower = (int) (minPower + leftLight.getValue() * (maxPower - minPower)) |
|
BetterCar.power(leftPower, rightPower);
|
|
BetterCar.power(leftPower, rightPower);
|
|
```
|
|
```
|
|
|
|
|
|
Vi udførte de samme eksperimenter for Vehicle 2b med Exitatory og Inhibitory forbindelser.
|
|
For at afprøve koden udførte vi de samme eksperimenter som for Vehicle 2b, med Exitatory og Inhibitory forbindelser.
|
|
|
|
|
|
*Video 6: Exitatory Vehicle 2b*
|
|
*Video 6: Exitatory Vehicle 2b*
|
|
|
|
|
... | @@ -121,14 +121,14 @@ Vi udførte de samme eksperimenter for Vehicle 2b med Exitatory og Inhibitory fo |
... | @@ -121,14 +121,14 @@ Vi udførte de samme eksperimenter for Vehicle 2b med Exitatory og Inhibitory fo |
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/kkqTcmMDZ0Q/0.jpg)](https://www.youtube.com/watch?v=kkqTcmMDZ0Q)
|
|
[![image alt text](https://img.youtube.com/vi/kkqTcmMDZ0Q/0.jpg)](https://www.youtube.com/watch?v=kkqTcmMDZ0Q)
|
|
|
|
|
|
Som forventet ser vi hvordan exitatory forbindelser gør at Vehicle 2b, ligeledes Vehicle 2a, bevæger sig væk fra skyggen bag kassen, fanger lyset fra vinduet, og bevæger sig derefter mod denne lyskilde ved at justere sin retning ved at dreje rundt om kassen. På samme måde ser vi inhibitory forbindelser gør bilen i stand til at finde “shelter” i kassen, og dermed søge væk fra lyset.
|
|
Som forventet ser vi hvordan exitatory forbindelser gør at Vehicle 2b, magen til Vehicle 2a adfærd, bevæger sig væk fra skyggen bag kassen, fanger lyset fra vinduet, og bevæger sig derefter mod denne lyskilde ved at justere sin retning ved at dreje rundt om kassen. På samme måde ser vi inhibitory forbindelser gør bilen i stand til at finde “shelter” i kassen, og dermed søge væk fra lyset.
|
|
|
|
|
|
Bemærk at i eksperimenterne med Vehicle 2 var den røde lampe i lyssensorerne tændt. For at undgå refleksion fra lampen lagde vi en mørk trøje over den hvide papkasse, og minimerede på denne måde en potentiel fejlkilde. For at undgå nogen form for refleksion i de efterfølgende eksperimenter med Vehicle 2 og Vehicle 3, besluttede vi at slukke lyset ved at kalde metoden setFloodlight(false); på lyssensoren.
|
|
Det skal det nævnes at i eksperimenterne med Vehicle 2 var reflektions lyset (den røde lampe i lyssensoren) tændt. For at undgå refleksion fra lampen lagde vi en mørk trøje over den hvide papkasse, og minimerede på denne måde en potentiel fejlkilde. For at undgå refleksions problematikker i de efterfølgende eksperimenter med Vehicle 2 og Vehicle 3, besluttede vi at slukke lyset ved at kalde metoden setFloodlight(false); på lyssensoren.
|
|
|
|
|
|
|
|
|
|
#### Eksperiment - Luciaoptog
|
|
#### Eksperiment - Luciaoptog
|
|
|
|
|
|
I dette eksperiment benytter vi os at bilens evne til at følge en lyskilde med det formål at skabe en flok af Braitenberg’s Vehicles, der følger efter hinanden. Bil C følger efter bil B, bil B følger efter bil A og bil A bestemmer selv sin retning. Til at udføre eksperimentet havde vi to Vehicle 2a til rådighed. For at have mere et et “efterfølgende” led til rådighed agerede en testperson bil A ved at bevæge lys fra en mobiltelefons blitz foran bil B i højde med lyssensorerne. Bagpå bil B var der monteret 6 RCX-lamper i samme højde som lyssensorernes placering. Måden hvorpå vi fik lys i disse pærer var gennem klassen LightHack som trækker strøm fra en motorport.
|
|
I dette eksperiment benytter vi os at bilens evne til at følge en lyskilde med det formål at skabe en flok af Braitenberg’s vehicles, der følger efter hinanden. Bil C følger efter bil B, bil B følger efter bil A og bil A bestemmer selv sin retning. Til at udføre eksperimentet havde vi to Vehicle 2a til rådighed. For at have mere et et “efterfølgende” led til rådighed, agerede en testperson bil A ved at bevæge lys fra en mobiltelefons blitz foran bil B i højde med lyssensorerne. Bagpå bil B var der monteret 6 RCX-lamper i samme højde som lyssensorernes placering på bil C. Måden hvorpå vi fik lys i disse pærer var gennem klassen LightHack som trækker strøm fra en motorport.
|
|
|
|
|
|
*Billede 3: Vehicle 2a med 6 RCX-lamper påsat i vertikal retning.*
|
|
*Billede 3: Vehicle 2a med 6 RCX-lamper påsat i vertikal retning.*
|
|
|
|
|
... | @@ -138,25 +138,28 @@ I dette eksperiment benytter vi os at bilens evne til at følge en lyskilde med |
... | @@ -138,25 +138,28 @@ I dette eksperiment benytter vi os at bilens evne til at følge en lyskilde med |
|
|
|
|
|
![IMG_1197](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/37f7c49b9a/IMG_1197.JPG)
|
|
![IMG_1197](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/37f7c49b9a/IMG_1197.JPG)
|
|
|
|
|
|
Bemærk at vi brugte et kaffefilter til at dæmpe lyset fra mobiltelefonens blitz for at minimere muligheden for at blitzens lysintensitet ville overstige lysintensiteten af RCX-lamperne på bil B. Dermed forsøgte vi at sikre at bil C fulgte bil B, og ikke bil A.
|
|
Vi brugte et kaffefilter til at dæmpe lyset fra mobiltelefonens blitzlys, da dette potentielt kunne overstige lysintensiteten af RCX-lamperne på bil B, og dermed udgør en fejlkilde. Altså forsøgte vi at sikre at bil C fulgte bil B, og ikke bil A (blitz lyset).
|
|
|
|
|
|
Vi erfarede at bil C skulle placeres forholdsvis tæt på bil B med den ene sensor placeret i retning af RCX-lamperne, for at være i stand til at følge bil B. Dog tabte bil C hurtigt “færten” af bil B, idet at lyskeglerne fra RCX-lamperne spredte sig vertikalt i stedet for horisontalt. Vi overkom dette problem ved at placere lamperne horisontalt på bagenden af bil B (denne konstruktion kan ses af billede x)
|
|
Vi erfarede at bil C skulle placeres forholdsvis tæt på bil B med den ene sensor placeret i retning af RCX-lamperne, for at være i stand til at følge bil B. Dog tabte bil C hurtigt “færten” af bil B, idet at lyskeglerne fra RCX-lamperne spredte sig vertikalt i stedet for horisontalt. Vi overkom dette problem ved at placere lamperne horisontalt på bagenden af bil B (denne konstruktion kan ses af billede 5).
|
|
|
|
|
|
*Billede 5: Vehicle 2a med 6 RCX-lamper påsat i horisontal retning.*
|
|
*Billede 5: Vehicle 2a med 6 RCX-lamper påsat i horisontal retning.*
|
|
|
|
|
|
![IMG_0245](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/9a793ecc7a/IMG_0245.JPG)
|
|
![IMG_0245](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/9a793ecc7a/IMG_0245.JPG)
|
|
|
|
|
|
Denne konstruktion sikrede at bil C var i stand til at følge bil B af længere tidsintervaller. Nedenstående video viser et lille lucia-optog bestående af testperson som bil A og to Vehicle 2a som bil B og bil C.
|
|
Denne konstruktion sikrede at bil C var i stand til at følge bil B af længere tidsintervaller. Nedenstående video viser et lille lucia-optog bestående af testperson som bil A, med mobiltelefon blitzlys og to Vehicle 2a som bil B og bil C.
|
|
|
|
|
|
|
|
|
|
*Video 8: Lucia-optog*
|
|
*Video 8: Lucia-optog*
|
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/AOmJ1V5DnoA/0.jpg)](https://www.youtube.com/watch?v=AOmJ1V5DnoA)
|
|
[![image alt text](https://img.youtube.com/vi/AOmJ1V5DnoA/0.jpg)](https://www.youtube.com/watch?v=AOmJ1V5DnoA)
|
|
|
|
|
|
Vi ser af video 8, at både bil B og bil C er i stand til at følge den lyskeglen fra den forankørende bil. Selvom vi forsøgte at dæmpe lyskeglen fra mobiltelefonen, er det dog stadig muligt at både bil B og bil C nogle tidspunkter har fulgt samme lyskegle og dermed kørt samme retning. Af video 8 virker det dog som om at bilerne har hver deres referencepunkt, idet bil C justerer sin retning forsinket i forhold til bil B, og dermed reelt følger RCX-lamperne bagpå bil B og ikke lyset fra mobiltelefonen. Vi vil muligvis kunne afgøre om mobiltelefonen påvirker bil C ved at lave længere optog med flere og hårdere sving.
|
|
Vi ser af video 8, at både bil B og bil C er i stand til at følge lyset fra den forankørende bil. Selvom vi forsøgte at dæmpe lyskeglen fra mobiltelefonen, er det dog stadig sandsynligt at både bil B og bil C har fulgt samme lyskilde (mobiltelefonen) og dermed kørt samme retning. Af video 8 virker det dog som om at bilerne har hver deres referencepunkt, idet bil C justerer sin retning forsinket i forhold til bil B, og dermed reelt følger RCX-lamperne bagpå bil B og ikke lyset fra mobiltelefonen. Det vil formentlig kunne afgøres om mobiltelefonen påvirker bil C ved at lave længere optog med flere biler og hårdere sving.
|
|
|
|
|
|
|
|
|
|
#### Eksperiment - Sampling metode
|
|
#### Eksperiment - Sampling metode
|
|
I Tom Deans beskrivelse af hans implementation af lys-efterfølgende vehicles, gør han det klart at hans program sætter maksimum og minimums værdierne for lyssensoren, i hele programmets levetid [4]. Dette kan bl.a. betyde at hvis lysmiljøet ændre sig løbende, vil robotterne være ud af stand til at korrigere for dette. Vi har implementeret en alternativ løsning hvori de maksimale og minimale værdier bliver sat løbende. Dette har vi gjort ved hjælp af et cyklisk array, hvori vi opbevarer de seneste 100 målte værdier, og ved hvert gennemløb de finder nyeste maksimum og minimum værdier. På denne måde udskiftes maksimum og minimums værdierne som minimum hvert sekund.
|
|
I Tom Deans beskrivelse af hans implementation af vehicles, gør han det klart at hans program sætter maksimum og minimums værdierne for sensorerne, i hele programmets levetid [4]. Dette kan bl.a. have betyde at hvis lysmiljøet ændre sig løbende, vil robotterne være ud af stand til at korrigere for dette.
|
|
|
|
|
|
|
|
Vi har implementeret en alternativ løsning hvori de maksimale og minimale værdier bliver sat løbende. Dette har vi gjort ved hjælp af et cyklisk array, hvori vi opbevarer de seneste 100 målte værdier, og ved hvert gennemløb de finder nyeste maksimum og minimum værdier. På denne måde udskiftes maksimum og minimums værdierne som minimum hvert sekund.
|
|
|
|
|
|
Vi har udført 2 eksperimenter for bearbejde forskellen mellem vores implementation og Tom Deans implementation. I eksperimentet lader vi bilen kører i kort tid, hvorefter vi peger en kraftig lyskilde (smartphone blitz) ind i begge lyssensorer, for at skabe en stor variation i lysmiljø.
|
|
Vi har udført 2 eksperimenter for bearbejde forskellen mellem vores implementation og Tom Deans implementation. I eksperimentet lader vi bilen kører i kort tid, hvorefter vi peger en kraftig lyskilde (smartphone blitz) ind i begge lyssensorer, for at skabe en stor variation i lysmiljø.
|
|
|
|
|
... | @@ -175,7 +178,7 @@ Ovenstående video demonstrerer vores implementation, hvori maksimum og minimum |
... | @@ -175,7 +178,7 @@ Ovenstående video demonstrerer vores implementation, hvori maksimum og minimum |
|
|
|
|
|
#### Eksperiment - Ultralydssensor
|
|
#### Eksperiment - Ultralydssensor
|
|
|
|
|
|
*Billede 6: Ultralydsopsætning*
|
|
*Billede 6: Vehicle 2 med ultralydsopsætning*
|
|
|
|
|
|
![billede 3](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/bbd5faaa2d/billede_3.JPG)
|
|
![billede 3](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/bbd5faaa2d/billede_3.JPG)
|
|
|
|
|
... | @@ -186,11 +189,12 @@ Vi forsøgte med to forskellige opsætninger. En svarende til 2a men med inhibit |
... | @@ -186,11 +189,12 @@ Vi forsøgte med to forskellige opsætninger. En svarende til 2a men med inhibit |
|
[![image alt text](https://img.youtube.com/vi/l-0sTuJ-yJk/0.jpg)](https://www.youtube.com/watch?v=l-0sTuJ-yJk)
|
|
[![image alt text](https://img.youtube.com/vi/l-0sTuJ-yJk/0.jpg)](https://www.youtube.com/watch?v=l-0sTuJ-yJk)
|
|
|
|
|
|
Som det ses i slutningen af videoen styrer bilen direkte mod bordets bordben. Dermed fik vi ikke vores robot til fuldstændigt at undgå forhindringer, men vi har overvejet forskellige årsager til dette:
|
|
Som det ses i slutningen af videoen styrer bilen direkte mod bordets bordben. Dermed fik vi ikke vores robot til fuldstændigt at undgå forhindringer, men vi har overvejet forskellige årsager til dette:
|
|
* Der er mulighed for interferens mellem de to ultralydssensorer.
|
|
* Der kan opstå interferens mellem de to ultralydssensorer.
|
|
* Noget midt imellem de to ultralydssensorer kan ikke sanses.
|
|
* Objekter mellem de to ultralydssensorer er svære for sensorerne at opfange.
|
|
* Vores opsætning har en tendens til at trække til venstre (muligvis på grund af vores bagvedsiddende styrehjul)
|
|
* Vores opsætning har en tendens til at trække til venstre - dette kan være fordi det bagerste hjul har tendens til at sidde fast.
|
|
|
|
|
|
|
|
Især interferensen kunne muligvis være afhjulpet ved at sætte ultralydssensorerne en smule på skrå. Dette har vi dog ikke efterprøvet.
|
|
|
|
|
|
Især interferensen kunne måske være afhjulpet ved at sætte ultralydssensorerne en smule på skrå.
|
|
|
|
|
|
|
|
### Exercise 3 - Vehicle 3
|
|
### Exercise 3 - Vehicle 3
|
|
|
|
|
... | @@ -198,9 +202,9 @@ Især interferensen kunne måske være afhjulpet ved at sætte ultralydssensorer |
... | @@ -198,9 +202,9 @@ Især interferensen kunne måske være afhjulpet ved at sætte ultralydssensorer |
|
|
|
|
|
![IMG_1201](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/c8c280dbc5/IMG_1201.JPG)
|
|
![IMG_1201](http://gitlab.au.dk/uploads/group-5/group-5-lesson-6/c8c280dbc5/IMG_1201.JPG)
|
|
|
|
|
|
Ved initielle forsøg erfarede vi at lyssensoren var en anelse mere dominant end den ultrasoniske sensor, hvilket medførte at bilen havde tendens til at kollidere mod objekter, hvis de var oplyste. Ved eksperimentering med vægtningen af sensorværdierne, så vi forbedrede resultater ved en 0,475 vægtning for lyssensoren, mod en 0,525 vægtning for den ultrasoniske sensor.
|
|
Ved initiale forsøg erfarede vi at lyssensoren var en anelse mere dominant end den ultrasoniske sensor. Dette medførte at bilen havde tendens til at kollidere mod objekter, hvis de var oplyste. Ved eksperimentering med vægtningen af sensorværdierne, så vi bedre resultater ved en 0,475 vægtning for lyssensoren og 0,525 vægtning for den ultrasoniske sensor.
|
|
|
|
|
|
For at teste bilens evne til at navigere ved brug af både lyssensoren, samt den ultrasoniske, opsatte vi en forhindringsbane, der havde til formål at demonstrere bilens evne til at navigere uden om forhindringer, for til sidst at navigere ind i en oplyst boks. Opsætningen, samt en demonstrationsvideo af dette eksperiment ses nedenfor.
|
|
For at teste bilens evne til at navigere ved med både lys- og ultrasoniske sensorer, opsatte vi en forhindringsbane, der havde til formål at demonstrere bilens evne til at navigere uden om forhindringer, for til sidst at navigere ind i en oplyst boks. Opsætningen, samt en demonstrationsvideo af dette eksperiment ses nedenfor i billede 8 og video 12.
|
|
|
|
|
|
*Billede 8: Eksperimentopsætning. Bemærk at der er placeret en lyskegle inde i kassen.*
|
|
*Billede 8: Eksperimentopsætning. Bemærk at der er placeret en lyskegle inde i kassen.*
|
|
|
|
|
... | @@ -211,18 +215,18 @@ For at teste bilens evne til at navigere ved brug af både lyssensoren, samt den |
... | @@ -211,18 +215,18 @@ For at teste bilens evne til at navigere ved brug af både lyssensoren, samt den |
|
|
|
|
|
[![image alt text](https://img.youtube.com/vi/H_5F81Bx2uo/0.jpg)](https://www.youtube.com/watch?v=H_5F81Bx2uo)
|
|
[![image alt text](https://img.youtube.com/vi/H_5F81Bx2uo/0.jpg)](https://www.youtube.com/watch?v=H_5F81Bx2uo)
|
|
|
|
|
|
Demonstrationen viser bilens evne til at undgå at kollidere med forhindringerne, mens lyset er tilstrækkeligt vægtet, til at den slutteligt søger mod dette inde i kassen.
|
|
Demonstrationen viser bilens evne til at undgå at kollidere med forhindringerne (flamingo væg), mens lyset er tilstrækkeligt vægtet således at den søger mod lyskilden inde i kassen.
|
|
|
|
|
|
|
|
|
|
## Conclusion
|
|
## Conclusion
|
|
|
|
|
|
I denne session har vi eksperimenteret med forskellige Braitenberg’s vehicles. Mere specifikt eksperimenterede vi med Vehicle 1, Vehicle 2a, Vehicle 2b og Vehicle 3 implementeret på LEGO NXT platformen som LEGO biler. Alle øvelser er blev udført i henhold til instruktionerne fra NXT-guiden for Lesson 6 [4]. Braitenberg’s vehicles består af simple robotter med hjul, der er styret direkte af stimuli fra omgivelserne. I vores eksperimenter benyttede vi os af både lyd-, lys-, og ultralydssensorer som stimuli for robotterne.
|
|
I denne lesson har vi eksperimenteret med forskellige Braitenberg’s vehicles. Mere specifikt eksperimenterede vi med Vehicle 1, Vehicle 2a, Vehicle 2b og Vehicle 3 implementeret på LEGO NXT platformen som LEGO biler. Alle øvelser er blev udført i henhold til instruktionerne for Lesson 6 [4]. Braitenberg’s vehicles består af simple robotter med hjul, der er styret direkte af stimuli fra omgivelserne. I vores eksperimenter benyttede vi os af både lyd-, lys-, og ultralydssensorer som stimuli for robotterne.
|
|
|
|
|
|
Gennem eksperimentation med Vehicle 1 demonstrerede vi forskellen på *Exitatory* og *Inhibitory* forbindelser til motorerne. Exitatory er mærket som (+) forbindelser, hvilket indikerer at sensoren direkte stimulerer bilens motorer til at køre frem proportionelt med lydstyrken. Omvendt benytter inhibitory forbindelser, som er mærket som (-) forbindelser, stimulien til at proportionelt forhindre bilen i at køre frem.
|
|
Gennem eksperimentation med Vehicle 1 undersøgte og demonstrerede vi forskellen på *Exitatory* og *Inhibitory* forbindelser til motorerne. Exitatory er mærket som (+) forbindelser, hvilket indikerer at sensoren direkte stimulerer bilens motorer til at køre frem proportionelt med lydstyrken. Omvendt benytter inhibitory forbindelser, som er mærket som (-) forbindelser, stimulien til at proportionelt forhindre bilen i at køre frem.
|
|
|
|
|
|
Vi arbejdede herefter videre med Braitenbergs Vehicle 2a og 2b konfigurationer, som gør brug af multiple stimuli kanaler for at bevæge sig. I disse konfigurationer udskiftede vi også lydsensoren med to lyssensorer. I exitatory konfigurationerne fandt vi at vehicle 2a udviste en adfærd hvor den opsøgte lyskilder, hvorimod den i inhibitory konfigurationen udsøgte mørket, hvormed den afspejlede kakkerlak lignende opførsel. Vehicle 2b udviste lignende opførsel. Endvidere er det lykkes os at skabe en flokmentalitet mellem flere Braitenberg vehicles, i form af et optog, hvori hver vehicle fulgte den forankørendes lys. Derudover undersøgte hvilke konsekvenser et stærkt varierende lysmiljø kan have på forskellige måder at håndtere minimum og maksimum værdier. Her implementerede vi en løsning, hvor de maksimale og minimale lysværdier blev sat løbende fremfor for evigt. Dette gjorde robotten i stand til at tilpasse sig miljøer der varierede meget i lysstyrke - hvilket Tom Deans implementation var ude af stand til.
|
|
Vi arbejdede herefter videre med Braitenbergs Vehicle 2a og 2b konfigurationer, som gør brug af multiple stimuli kanaler for at bevæge sig. I disse konfigurationer udskiftede vi også lydsensoren med to lyssensorer. I exitatory konfigurationerne fandt vi at vehicle 2a udviste en adfærd hvor den opsøgte lyskilder, hvorimod den i inhibitory konfigurationen udsøgte mørket, hvormed den afspejlede kakkerlak lignende opførsel. Vehicle 2b udviste lignende opførsel. Endvidere er det lykkes os at skabe en flokmentalitet mellem flere Braitenberg vehicles, i form af et optog, hvori hver vehicle fulgte den forankørendes lys. Derudover undersøgte hvilke konsekvenser et stærkt varierende lysmiljø kan have på forskellige måder at håndtere minimum og maksimum værdier. Her implementerede vi en løsning, hvor de maksimale og minimale lysværdier blev sat løbende fremfor for evigt. Dette gjorde robotten i stand til at tilpasse sig miljøer der varierede meget i lysstyrke.
|
|
|
|
|
|
Hernæst eksperimenterede vi med Vehicle 3, som benytter to slags sensorer. I vores eksperiment benyttede vi os af både ultralydssensorer og lyssensorer. Vi erfarede at lyssensoren er en anelse mere dominerende end ultralydssensoren, hvorfor vi valgte at vægte ultralydssensoren højere end lyssensoren. Ved at kombinere de to sensorværdier muliggjorde vi at bilen kunne tilegne sig en adfærd, hvor den undgik at kollidere med fysiske objekter og samtidig tiltrukket af lys. Ved at opsætte en lille forhindringsbane kunne vi demonstrere, hvordan Vehicle 3 kunne finde frem til en lyskilde ved at undgå væggene.
|
|
Hernæst eksperimenterede vi med Vehicle 3, som benytter to slags sensorer. I vores eksperiment benyttede vi os af både ultralydssensorer og lyssensorer. Vi erfarede at lyssensoren er en anelse mere dominerende end ultralydssensoren, hvorfor vi valgte at vægte ultralydssensoren højere end lyssensoren. Ved at kombinere de to sensorværdier muliggjorde vi at bilen kunne tilegne sig en adfærd, hvor den undgik at kollidere med fysiske objekter og samtidig tiltrukket af lys. Ved at opsætte en lille forhindringsbane kunne vi demonstrere, hvordan Vehicle 3 kunne finde frem til en lyskilde og samtidig undgå forhindringer.
|
|
|
|
|
|
|
|
|
|
## References
|
|
## References
|
... | | ... | |