|
|
|
# Group 5
|
|
|
|
|
|
|
|
## Lab Notebook Lesson 2
|
|
|
|
|
|
|
|
**Date:** 19/02 2015
|
|
|
|
|
|
|
|
**Group members participating:** Daniel Vestergaard, Mikkel Brun Jakobsen, Christoffer Skovgaard
|
|
|
|
|
|
|
|
**Activity duration:** 5 timer
|
|
|
|
|
|
|
|
## Goal
|
|
|
|
Målet med denne laboratorie øvelse er at få en bedre forståelse af Lego NXT platformen. Specifikt ønskes en forståelse af NXT ultralydssensoren, der kan bruges til at måle afstanden fra robotten til dens omgivelser.
|
|
|
|
|
|
|
|
## Plan
|
|
|
|
Planen for øvelsen består i at følge [1], og i forbindelse hermed dokumentere så vidt muligt vores observationer.
|
|
|
|
|
|
|
|
## Results
|
|
|
|
|
|
|
|
### Exercise 1
|
|
|
|
|
|
|
|
I denne exercise har vi undersøger vi hvordan materialet og formen af et objekt kan påvirke afstandsmålingen med ultralydssensoren. De første målinger er foretaget mod en flad, relativt blank, træbordplade (se figur 1). Det andet sæt målinger er foretaget mod et stykke fladt flamingo (se figur 2), og det tredje sæt målering er foretaget mod en skråtstillet plast skraldespand (se figur 3). Vi har manuelt målt og afmærket distancer med 10 cm mellemrum på en række A4 papirer sat i forlængelse af hinanden for at kunne aflæse den absolutte distance.
|
|
|
|
|
|
|
|
|
|
|
|
#### Eksperiment 1: Blank lys overflade
|
|
|
|
I dette forsøg vil vi undersøge ultralydssensorens virkning mod en hård, flad overflade.
|
|
|
|
|
|
|
|
|
|
|
|
Figur 1: Eksperiment opsætning med bordplade
|
|
|
|
![IMG_0037](http://gitlab.au.dk/uploads/mbj2011/group-5-lesson-2/7f2228132c/IMG_0037.JPG)
|
|
|
|
|
|
|
|
|
|
|
|
Tabel 1: Absolut afstand og målt afstand for afstandsmåling til træbord
|
|
|
|
|
|
|
|
|
|
|
|
| Absolut afstand (cm) | Sensor afstand (cm) |
|
|
|
|
| -------------|:-------------: |
|
|
|
|
| 10 | 13 |
|
|
|
|
| 20 | 23 |
|
|
|
|
| 30 | 31 |
|
|
|
|
| 40 | 41 |
|
|
|
|
| 50 | 51 |
|
|
|
|
| 60 | 61 |
|
|
|
|
| 70 | 71 |
|
|
|
|
| 80 | 82 |
|
|
|
|
| 90 | 91 |
|
|
|
|
| 100 | 102 |
|
|
|
|
| 110 | 113 |
|
|
|
|
| 120 | 122 |
|
|
|
|
| 130 | 132 |
|
|
|
|
| 140 | 142 |
|
|
|
|
| 150 | 153 |
|
|
|
|
| 160 | 164 |
|
|
|
|
| 170 | 255 |
|
|
|
|
| 180 | 255 |
|
|
|
|
| 190 | 255 |
|
|
|
|
| 200 | 255 |
|
|
|
|
| 210 | 255 |
|
|
|
|
| 220 | 255 |
|
|
|
|
| 230 | 255 |
|
|
|
|
| 240 | 255 |
|
|
|
|
| 250 | 255 |
|
|
|
|
|
|
|
|
|
|
|
|
Det ses at ultralydssensoren er en anelse upræcis ved en absolut afstand under 30 centimeter. Fra 30 cm og opefter er målingerne ganske konsistent med den absolutte afstand, lige indtil vi når den længst målte afstand, 160 cm. De konsistente målinger antyder at den hårde blanke træoverflade giver en relativt præcis måling - dog er den maksimalt målte afstand på kun 160 cm ikke imponerende ift. de teoretiske 254 cm. Årsagen til den relativt korte maksimal afstand kan være et resultat af fejlkilder såsom dårlig vinkling af sensoren mod overfladen, upræcis udmåling af absolut distance, interfererende lyd, luftfugtigheden, temperaturen og endda et sløvt batteri.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Eksperiment 2: Hvid flamingo
|
|
|
|
I dette forsøg vil vi afprøve ultralydssensorens virkning mod en blød, flad overflade.
|
|
|
|
|
|
|
|
|
|
|
|
Figur 2: Eksperiment opsætning med flamingo
|
|
|
|
![IMG_0040](http://gitlab.au.dk/uploads/mbj2011/group-5-lesson-2/8e57946bfc/IMG_0040.JPG)
|
|
|
|
|
|
|
|
|
|
|
|
Tabel 2: Absolut afstand og målt afstand for afstandsmåling til flamingo
|
|
|
|
|
|
|
|
|
|
|
|
| Absolut afstand (cm) | Sensor afstand (cm) |
|
|
|
|
| -------------|:-------------: |
|
|
|
|
| 10 | 14 |
|
|
|
|
| 20 | 23 |
|
|
|
|
| 30 | 30 |
|
|
|
|
| 40 | 40 |
|
|
|
|
| 50 | 50 |
|
|
|
|
| 60 | 60 |
|
|
|
|
| 70 | 70 |
|
|
|
|
| 80 | 80 |
|
|
|
|
| 90 | 91 |
|
|
|
|
| 100 | 100 |
|
|
|
|
| 110 | 111 |
|
|
|
|
| 120 | 120 |
|
|
|
|
| 130 | 131 |
|
|
|
|
| 140 | 142 |
|
|
|
|
| 150 | 154 |
|
|
|
|
| 160 | 255 |
|
|
|
|
| 170 | 255 |
|
|
|
|
| 180 | 255 |
|
|
|
|
| 190 | 255 |
|
|
|
|
| 200 | 255 |
|
|
|
|
| 210 | 255 |
|
|
|
|
| 220 | 255 |
|
|
|
|
| 230 | 255 |
|
|
|
|
| 240 | 255 |
|
|
|
|
| 250 | 255 |
|
|
|
|
|
|
|
|
|
|
|
|
Tilsvarende det første eksperiment, ses i dette eksperiment, med flamingo, en mindre afvigelse (ca. 3-4 cm) mellem den absolutte afstand og sensorens målte afstand i de første 30 cm. Overraskende nok viser målingerne over 30 cm sig, at være mere præcise end ved den blanke overflade, hvilket er lidt besynderligt, da man skulle tro at resultatet ville blive mindre præcist idet at flamingoen burde absorbere mere af ultralyden. Den maksimalt målte afstand stadig lav, i dette tilfælde kun 150 cm - altså 10 cm under det forrige forsøg. Så her er der er altså en tydelig måling der indikerer at flamingoen rent faktisk absorberer mere af lyden end den blanke bordplade gør på trods af minimale afvigelser i selve præcisionen målingerne.
|
|
|
|
|
|
|
|
Udover fejlkilderne nævnt i forrige forsøg, er det muligt at vi simpelthen er blevet bedre til at måle i dette forsøg, og dermed har mindsket den menneskelige fejlkilde.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Eksperiment 3: Skraldespand
|
|
|
|
|
|
|
|
I dette forsøg undersøger vi ultralydssensorens virkning på en ujævn, relativt hård overflade. I dette tilfælde, afstanden til hjørnet af en skraldespand som det ses på følgende billede:
|
|
|
|
|
|
|
|
|
|
|
|
Figur 3: Eksperiment opsætning med plast skraldespand
|
|
|
|
|
|
|
|
![IMG_0043](http://gitlab.au.dk/uploads/mbj2011/group-5-lesson-2/d9a35ac8ba/IMG_0043.JPG)
|
|
|
|
|
|
|
|
|
|
|
|
Tabel 3: Absolut afstand og målt afstand for afstandsmåling til plast skraldespand
|
|
|
|
|
|
|
|
|
|
|
|
| Absolut afstand | Sensor afstand |
|
|
|
|
| -------------|:-------------: |
|
|
|
|
| 10 | 14 |
|
|
|
|
| 20 | 24 |
|
|
|
|
| 30 | 32 |
|
|
|
|
| 40 | 42 |
|
|
|
|
| 50 | 58 |
|
|
|
|
| 60 | 62 |
|
|
|
|
| 70 | 75 |
|
|
|
|
| 80 | 225 |
|
|
|
|
| 90 | 225 |
|
|
|
|
| 100 | 225 |
|
|
|
|
| 110 | 225 |
|
|
|
|
| 120 | 225 |
|
|
|
|
| 130 | 225 |
|
|
|
|
| 140 | 225 |
|
|
|
|
| 150 | 225 |
|
|
|
|
| 160 | 225 |
|
|
|
|
| 170 | 225 |
|
|
|
|
| 180 | 225 |
|
|
|
|
| 190 | 225 |
|
|
|
|
| 200 | 225 |
|
|
|
|
| 210 | 225 |
|
|
|
|
| 220 | 255 |
|
|
|
|
| 230 | 255 |
|
|
|
|
| 240 | 255 |
|
|
|
|
| 250 | 255 |
|
|
|
|
|
|
|
|
|
|
|
|
Vi ser i vores målinger at dette setup gør det svært for ultralydssensoren at give en præcis måling, og samtidig er den maksimalt målte afstand reduceret markant. De målte værdier afviger konsistent med 2-5 cm, og den maksimalt målte afstand er helt nede 70-80 cm. Vi vurdere at årsagen hertil er fordi skraldespanden reflektere lyden væk fra ultralydssensorens modtager mikrofon når man når tilstrækkeligt langt væk fra skraldespanden. Det kan derfor være ganske problematisk at måle afstanden til objekter med en formgivning der “afbøjer” ultralydssensorens lydbølger, således at de ikke kommer tilbage til ultralydssensorens mikrofon.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Exercise 2
|
|
|
|
|
|
|
|
Formålet med denne øvelse er at finde ud af om sample intervallet har indflydelse på sensorens afstandsmåling. Vi har afprøvet dette ved at sætte sample intervallet til hhv. 10 ms og 1 ms og gennemføre samme eksperiment som exercise 1 med det blanke bord. De målte resultater kan ses i tabellerne nedenfor:
|
|
|
|
|
|
|
|
|
|
|
|
Tabel 4: 10 ms sample interval
|
|
|
|
|
|
|
|
|
|
|
|
| Absolut afstand | Sensor afstand |
|
|
|
|
| -------------|:-------------: |
|
|
|
|
| 10 | 13 |
|
|
|
|
| 20 | 23 |
|
|
|
|
| 30 | 30 |
|
|
|
|
| 40 | 41 |
|
|
|
|
| 50 | 50 |
|
|
|
|
| 60 | 61 |
|
|
|
|
| 70 | 72 |
|
|
|
|
| 80 | 82 |
|
|
|
|
| 90 | 92 |
|
|
|
|
| 100 | 103 |
|
|
|
|
| 110 | 114 |
|
|
|
|
| 120 | 123 |
|
|
|
|
| 130 | 132 |
|
|
|
|
| 140 | 142 |
|
|
|
|
| 150 | 153 |
|
|
|
|
| 160 | 163 |
|
|
|
|
| 170 | 255 |
|
|
|
|
| 180 | 255 |
|
|
|
|
| 190 | 255 |
|
|
|
|
| 200 | 255 |
|
|
|
|
| 210 | 255 |
|
|
|
|
| 220 | 255 |
|
|
|
|
| 230 | 255 |
|
|
|
|
| 240 | 255 |
|
|
|
|
| 250 | 255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tabel 4: 1 ms sample interval
|
|
|
|
|
|
|
|
|
|
|
|
| Absolut afstand | Sensor afstand |
|
|
|
|
| -------------|:-------------: |
|
|
|
|
| 10 | 13 |
|
|
|
|
| 20 | 23 |
|
|
|
|
| 30 | 30 |
|
|
|
|
| 40 | 40 |
|
|
|
|
| 50 | 50 |
|
|
|
|
| 60 | 61 |
|
|
|
|
| 70 | 71 |
|
|
|
|
| 80 | 82 |
|
|
|
|
| 90 | 92 |
|
|
|
|
| 100 | 103 |
|
|
|
|
| 110 | 114 |
|
|
|
|
| 120 | 122 |
|
|
|
|
| 130 | 133 |
|
|
|
|
| 140 | 142 |
|
|
|
|
| 150 | 153 |
|
|
|
|
| 160 | 164 |
|
|
|
|
| 170 | 255 |
|
|
|
|
| 180 | 255 |
|
|
|
|
| 190 | 255 |
|
|
|
|
| 200 | 255 |
|
|
|
|
| 210 | 255 |
|
|
|
|
| 220 | 255 |
|
|
|
|
| 230 | 255 |
|
|
|
|
| 240 | 255 |
|
|
|
|
| 250 | 255 |
|
|
|
|
|
|
|
|
|
|
|
|
De ovenstående målinger giver ikke anledning til at tro at sample intervallet påvirker afstandsmålinger. På basis af vores målinger kan vi altså konkludere at den nævnte fejl og begrænsning fra alfa_03 er blevet udbedret. Vi kan ikke umiddelbart observere nogen tydelige forskelle fra vores tidligere målinger, der kunne indikere at der måtte være en begrænsning på hvor ofte man må kalde getDistance(), i forhold til hvilke tal den returnerer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Exercise 3
|
|
|
|
|
|
|
|
Måden hvorpå ultralydssensoren måler afstanden til et objekt er ved at udsende korte højfrekvenslyde og dernæst lytte efter et ekko fra disse lyde. Differencen i tid, mellem lyden bliver sendt, til den bliver opfanget, bruges dernæst til at beregne afstanden til objektet ved at sammenligne med lydens hastighed. I de tilfælde hvor der ikke befinder sig et objekt foran ultralydssensoren i en afstand på (teoretisk set) op til 254 cm, vil den ikke kunne opfange et ekko, og getDistance metoden vil derfor returnere 255.
|
|
|
|
|
|
|
|
Ved brug af opstillingen fra exercise 1, med bordet, forsøgte vi at finde frem til den præcise afstand, hvor ultralydssensoren ikke længere kan registrere et ekko fra fladen --- altså det punkt hvor getDistance metoden returnerede 255. I exercise 1 viser vores målinger at sensoren ikke længere var i stand til at detektere et objekt foran sig ved en afstand på omkring 160-170 cm. Ved meget forsigtigt at flytte robotten frem og tilbage, kunne vi konkludere at ultralydssensoren er i stand til at måle op til 172 cm, med en absolut afstand på 168 cm.
|
|
|
|
|
|
|
|
|
|
|
|
Figur 4: NXT bricken viser den maksimale afstand til 172 cm
|
|
|
|
|
|
|
|
![IMG_0048](http://gitlab.au.dk/uploads/mbj2011/group-5-lesson-2/040a64f94f/IMG_0048.JPG)
|
|
|
|
|
|
|
|
|
|
|
|
I et forsøg på at forbedre ultralydssensorens rækkevidde, forsøgte vi at direktionaliserer sensorens højttaler og mikrofon ved at ved at sætte LEGO-bilen ind i en skraldespand, som det er vist på følgende billede:
|
|
|
|
|
|
|
|
|
|
|
|
Figur 5: Lego bilen i skraldespand
|
|
|
|
![IMG_0051](http://gitlab.au.dk/uploads/mbj2011/group-5-lesson-2/2fafd62cbb/IMG_0051.JPG)
|
|
|
|
|
|
|
|
|
|
|
|
Med hjælp fra skraldespanden rapporterede sensoren værdier helt op til 211 cm (absolut afstandsmåling var ikke mulig), altså en forbedring på 39 cm ift. tidligere målinger. Placeringen af sensoren i skraldespanden lader altså til at have mindsket fejlkilder, såsom støj forurening. Det er dog ikke særlig praktisk at placere bilen i en skraldespand, så lærdommen vi kan tage med herfra er at vi kan forbedre sensorens sanseevne ved at direktionalisere højttaleren og mikrofonen i sensoren.
|
|
|
|
|
|
|
|
Hvis vi vil skulle kunne måle afstande på helt op 254 centimeter, må lyden skulle bevæge sig 2 * 254 cm = 508 cm. Under antagelse af at lydens hastighed er 340.29 m/s [1] vil det tage ca. 15 ms. (2*2.54 m / 340.29 m/s = 14.93 ms) for lyden at bevæge sig 508 centimeter. De 15 ms. er det teoretisk hurtigst mulige sample interval, men i praktisk er der nok en del mere overhead. F.eks. ændres lydens hastighed sig ift. temperatur og luftfugtighed.
|
|
|
|
|
|
|
|
Vi kan derfor konkludere at der sker et tradeoff mellem hvor langt der skal måles og hvor hurtigt man ønsker at kende til afstanden. Desto større afstand, desto længere sample interval.
|
|
|
|
|
|
|
|
|
|
|
|
### Exercise 4
|
|
|
|
|
|
|
|
I denne exercise ønsker vi at forklare Lego bilens adfærd på baggrund af Tracker klasse. Koden nedenfor viser control loopet for Tracker klassen med forklarende kommentarer.
|
|
|
|
|
|
|
|
|
|
|
|
Java kode 1: Kontrol løkken for Tracker klassen
|
|
|
|
```Java
|
|
|
|
while (running) {
|
|
|
|
distance = us.getDistance(); // Opdater PV
|
|
|
|
if (distance != noObject) {
|
|
|
|
error = distance - desiredDistance; // Mellemliggende beregning der bruger SP
|
|
|
|
power = (int) (Pgain * error); // Udregning af MV
|
|
|
|
if (error > 0) {
|
|
|
|
power = Math.min(minPower + power, maxPower);
|
|
|
|
Car.forward(power, power); // Bilen kører frem hvis fejlen er positiv (distance > 35 cm)
|
|
|
|
} else {
|
|
|
|
power = Math.min(minPower + Math.abs(power), maxPower);
|
|
|
|
Car.backward(power, power); // Bilen kører tilbage hvis fejlen er negativ (distance < 35 cm)
|
|
|
|
}
|
|
|
|
Delay.msDelay(sampleInterval);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Controlleren er en PID controller uden et I og et D-led (integral og afledt led) - dvs. controlleren er en proportional controller.
|
|
|
|
|
|
|
|
I kontrol løkke er setPoint-variablen (SV) den ønskede afstand som LEGO-bilen skal holde til et objekt, og er altså erklæret i koden som “desiredDistance”, der er initialiseret med værdien 35 cm. Process variablen (PV, erklæret “distance” i koden) er Lego bilens øjeblikkelige afstand til objektet (mål med ultralydssensoren), som fortæller controlleren om bilen skal køre bagud eller fremad for at nærme sig SV-værdien. SV og PV benyttes til at beregne controllerens manipulated variable (MV). MV variablen definere outputtet fra controlleren, som bruges til at definere hvordan bilen skal bevæge sig. MV ses erklæret i programmet som variablen “power”. Video 1 nedenfor demonstrerer LEGO-bilens opførsel ved afvikling af Tracker klassen.
|
|
|
|
|
|
|
|
|
|
|
|
Video 1: Video der viser afviklingen af tracker klassen på Lego bilen
|
|
|
|
|
|
|
|
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/ry3PnHEMO8o/0.jpg)](https://www.youtube.com/watch?v=ry3PnHEMO8o)
|
|
|
|
|
|
|
|
|
|
|
|
Vi observerer at bilen kører hen mod bordet, indtil den når sin desiredDistance på 35 cm. Selv når bilen tvinges tættere på, bakker den for igen at vende tilbage til sin desiredDistance, hvilket stemmer overens med den forventede adfærd, som defineret af programmet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Exercise 5
|
|
|
|
|
|
|
|
I denne exercise ønsker vi at eksperimentere med virkning på Lego bilen når vi sætter forskellige værdier af minPower og Pgain.
|
|
|
|
|
|
|
|
Tracker klassen kan benyttes i programmet RCparamTracker.java. Programmet tager to parametre: minPower og Pgain. Pgain bruges til at skalere "fejlen" så den enten ser større eller mindre ud. Hvis "error" er 0 og vi ændrer på værdien af "Pgain" bevæger robotten sig altså ikke. Hvis "error" derimod er forskellig fra 0 og vi lader "Pgain" være et større tal (eks. 5 og 10) begynder bilen at oscillere kraftigt proportionelt med Pgain-værdien, ved at bevæge sig frem og tilbage nær den ønskede distance, medmindre vi er så heldige at ramme den eksakte distance. minPower beskriver den minimale power der skal til for bilen flytter sig, hvis denne værdi bliver for stor vil bilen også oscillere. I følgende video (video 2) er bilen 40 cm fra bordet og “Pgain" er sat til 20 (bemærk den kraftige oscillation):
|
|
|
|
|
|
|
|
|
|
|
|
Video 2: Video der viser eksperimenter med forskellige værdier af Pgain og minPower
|
|
|
|
|
|
|
|
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/3q-ZhMXuwnc/0.jpg)](https://www.youtube.com/watch?v=3q-ZhMXuwnc)
|
|
|
|
|
|
|
|
|
|
|
|
### Exercise 6
|
|
|
|
|
|
|
|
Inspireret af Philippe Hurbains program til Wall Follower [3], har vi har skrevet et lignende program i Java. Programmet ses nedenfor:
|
|
|
|
|
|
|
|
|
|
|
|
Java kode 1: Implementation af eget WallFollower program
|
|
|
|
|
|
|
|
```Java
|
|
|
|
import lejos.nxt.Button;
|
|
|
|
import lejos.nxt.SensorPort;
|
|
|
|
import lejos.nxt.UltrasonicSensor;
|
|
|
|
import lejos.util.Delay;
|
|
|
|
|
|
|
|
import static java.lang.Math.*;
|
|
|
|
|
|
|
|
public class WallFollower {
|
|
|
|
|
|
|
|
private static final double P_GAIN = 2.0;
|
|
|
|
|
|
|
|
private static final int DISTANCE_FROM_WALL = 45;
|
|
|
|
|
|
|
|
private static int minPower = 60;
|
|
|
|
|
|
|
|
private static int maxPower = 65;
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
UltrasonicSensor us = new UltrasonicSensor(SensorPort.S4);
|
|
|
|
|
|
|
|
while (!Button.ESCAPE.isDown()) {
|
|
|
|
int distance = us.getDistance();
|
|
|
|
|
|
|
|
int error = distance - DISTANCE_FROM_WALL;
|
|
|
|
|
|
|
|
if (error > 0) { // turn left
|
|
|
|
int power = (int) (error * P_GAIN);
|
|
|
|
|
|
|
|
Car.forward(min(minPower + power, maxPower), minPower);
|
|
|
|
} else { // turn right
|
|
|
|
int power = (int) -(error * P_GAIN);
|
|
|
|
|
|
|
|
Car.forward(minPower, min(minPower + power, maxPower ));
|
|
|
|
}
|
|
|
|
|
|
|
|
Delay.msDelay(10);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
En demonstration af programmet kan ses i følgende video (video 3):
|
|
|
|
|
|
|
|
|
|
|
|
Video 3: Demonstration af eget WallFollower program
|
|
|
|
|
|
|
|
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/x8WEnXgfl7M/0.jpg)](https://www.youtube.com/watch?v=x8WEnXgfl7M)
|
|
|
|
|
|
|
|
|
|
|
|
Jævnfør 5.1.3 exercises [2, side 179] punkt 1 ses det på figur 5.8 [2, side 181] i grafen for Fred Martins WallFollower robot at der er konstante udsving, hvilket tilsvarende gør sig gældende i vores implementation. Vores implementation holder heller ikke en konstant afstand til væggen, men oscillere hele tiden omkring den ønskede afstand til væggen (DISTANCE_FROM_WALL). Ligesom NQC algoritmen, har vi heller ikke nogen hensyntagen for skarpe sving. Fred Martin demonstrerede i sin video at dette ikke gør noget med den vinklede sensor. Men det er formentlig usandsynligt at vores egen LEGO-bil kan tage skarpe sving i kort afstand til væggen, fordi det er en anderledes sensor. Som foreslået af 5.1.3 punkt 5 [2, side 179], vil en mere omfattende forhindringsbane dog give et mere alsidigt indblik i algoritmens hensigtsmæssighed i komplicerede terrænner.
|
|
|
|
|
|
|
|
|
|
|
|
## Conclusion
|
|
|
|
|
|
|
|
Alle exercises er blevet udført i henhold til instruktionerne fra NXT guiden [1]. Øvelserne bestod i at udføre forskellige eksperimenter med ultralydssensoren på LEGO-bilen, og dermed få en bedre forståelse af sensorens nytte og hvor der kan forekomme nedbrud i funktionaliteten. Vi blev bl.a. bevidste om at ultralydssensoren ikke altid kan måle helt op til dens teoretiske rækkevidde (254 cm), men at den kan hjælpes på vej, ved at direktionalisere højttaleren og mikrofonen i sensoren. Ligeledes observerede vi problemer med afstandsmåling til ujævne objekter, f.eks. en skraldespand. Slutteligt implementerede og demonstrerede vi vores egen funktionelle version af et WallFollower program.
|
|
|
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
[1] Caprani, Ole. Lesson 2: http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson2.dir/Lesson.html
|
|
|
|
|
|
|
|
[2] Fred G. Martin, Robotic Explorations: A Hands-on Introduction to Engineering, Prentice Hall, 2001.
|
|
|
|
|
|
|
|
[3] Philippe Hurbain. WallFollower: http://www.philohome.com/wallfollower/wallfollower.htm |