Coinurl2

Wednesday, 11 April 2012

NXT Programmering, Lesson 6

NXT Programmering, Lesson 6

Tid: 3 timer, Deltagere: Kenneth, Mikkel, Rawad.

Siden sidst:
Intet at bemærke.

Formål:
At afprøve forskellige braitenberg vehicles på NXT’en med forskellige sensor typer. Vi vil afprøve tre overordnede braitenberg vehicles, som vist på tegning.

Plan

  1. Konstruktion af robot
  2. Lydstyret robot
  3. Lysstyret robot
  4. Blandet lys/lyd styret robot


1. Konstruktion af robot
Vi har brugt NXT base set 9797 manualens side 32-34 som basis for vores robot, og så efterfølgende monteret lys og lyd sensorer cirka som vist på billedet.


2. Lydstyret robot
Som en simpel først e Braitenberg vehicle, lavede vi en robot med en enkelt lyd sensor, som styrer begge motorer. Når det målte lydniveau er højt, vil robotten køre fremad, og når lydniveauet er lavt, vil robotten stå stille. Det er dermed en exitatory

Vi benytter rå sensorværdier fra lydsensoren, der ligger fra 0 til 1023, hvor 1023 svarer til total stilhed, og 0 svarer til meget høj lydniveau. Vi har valgt at vende denne sammenhæng om, så 0 er total stilhed og 1023 er meget larm, dette giver mere mening. Dette gøres ved at sige 1023 - sensorværdi.

Vores mapning hedder i første omgang:

M_power = ((1023 - sensorvalue) / 1023) * 100

M_power ligger mellem 0 og 100.

Vi prøvede også at ændre mapningen, så robotten kører baglæns ved ingen lyd, og fremad ved høj lyd. Her hedder mapningen

M_power = (((1023 - sensorvalue) / 1023) * 200) - 100

M_power ligger mellem -100 og 100.

Her kunne vi ikke overraskende konstatere, at der er et ret stort input område, hvor robotten vil holde stille. Dette kommer af, at motoren først går igang ved power over ~50. Så de sensorværdier der mapper til power intervallet -50 til 50 vil få robotten til at holde stille.

3. Lysstyret robot
Vi lavede en lidt mere avanceret Braitenberg vehicle, som er udstyret med to lyssensorer, som er forbundet enkeltvist til motoren i sammen side som sensoren.

Sensoren returnerer mellem 0 - 1023, hvor 0 er meget lys, og 1023 er intet lys når man aflæser de rå sensorværdier. Som før, har vi vendt sensorværdierne om, så det giver mere mening. I praksis er sensorværdier dog i et noget mindre interval, ~750 ved almindelig baggrundsbelysning, og ~300 ved “maximal” påvirkning.

Mapningen mellem sensor input og motor power er givet ved:

M_power1 = slice formel
M_power2 = slice formel

Motor poweren ligger stadig i intervallet mellem 0 og 100.

4. Blandet lys/lyd styret robot

I et forsøg på at blande forskellige sensor-typer, for at forskellige sensortyper kan arbejde sammen, har vi lavet en robot der reagere på lys og lyd. Set fra fronten, har vi monteret en lydsensor i højre side af bilen, og en lyssensor i venstre side af robotten. Vi valgte at programmer robotten til at reagere på sensorene i exitatory stil, hvor jo mere input der er på sensoren desto mere power går til til motorene. Vi har også valgt at krydse sensor og motor, så vi har en opstilling der ligner figur 2b. Dette setup gør at robotten bevæger sig i nogengrad mod et ønsket punkt der afgiver både lyd og lys. Under testen oplevede vi at lys sensoren var mindre følsom end lyd sensoren, så det var nemmere at få robotten til at dreje ved larme end ved at lyse på den. Vi oplevede dog at et setup i denne stil med to forskellige sensor-typer der direkte sender værdier til motorene, er ret upålidelige.


Status
Vi opnåede alle fire punkter, og har fået en større forståelse af hvordan forskellige sensortyper virker og hvordan man tolker disse værdier. Vi har erfareret at braitenbergs teknik er simpel, men også effektiv i visse scenarier hvor der ikke kræves kompleks logik.

Referencer
[1], Braitenberg, V. 1984. Vehicles, Experiments in Synthetic Psychology London, Cambridge: The MIT Press.
[2], Tom Dean, Introduction to Machina Speculatrix and Braitenberg Vehicles
[3], Tom Dean, Notes on construction of Braitenberg's Vehicles, Chapter 1-5 of Braitenbergs book

No comments:

Post a Comment