User Tools

Site Tools


marvin:lab2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
marvin:lab2 [2008/09/19 09:24] devamarvin:lab2 [2008/10/09 21:16] (current) rieper
Line 1: Line 1:
 =====LAB2===== =====LAB2=====
-====Delopgave1====+**Date:** September 12th 2008\\ 
 +**Duration of activity:** 9-13\\ 
 +**Participants:** Kasper, Johnny og Bent\\  
 + 
 +**Formål:** I denne øvelse skal der laves en test af ultralydssensorens målepræcision ved forskellige afstande. Derefter skal der vha. af ultralydssensoren laves en wall-follower, hvilket vil sige at Marvin skal kunne køre langs en væg og holde en given afstand. 
 +  
 + 
 +====Afstandsmåling med ultralydssensoren====
 {{:marvin:lab2-1.jpg?256}} {{:marvin:lab2-1.jpg?256}}
 {{:marvin:lab2-2.jpg?256}} {{:marvin:lab2-2.jpg?256}}
  
  
-compile and download ''SonicSensorTest.java'',simple sensor test programPlace the car in front of different objects at different distances and compare the distance with the readings from the sensor.+Programmet ''SonicSensorTest.java'' uploades på NXT modulet. Under denne øvelse valgte vi iøvrigt på opfordring at inddrage en praktikantGustav, fra folkeskolens 9. klasse, og han bidrog bl.a. med at bygge robotten, der kan ses på billedet ovenfor. Det ses, at transduceren er monteret som et lille hovede på robotten. Sensoren udsender en impuls og afventer et ekko, som den genkender formodentlig ved noget korrelation, og ud fra tidsforsinkelsen beregnes en afstand. Altså må sensoren indeholde en mikroprocessor af en art, hvilket vil sige at der foregår kommunikation mellem transuceres processor og cpu'en i NXT modulet. Kommunikationen er en simpel standard I2 kommunikationsforbindelse (også kaldt I-square). Metoden ''getDistance'' returnerer 255, hvis der ikke er noget ekko, dvs hvis der ikke registreres et objekt. Ellers returneres et tal mindre end 255, der angiver afstanden i cm. Vi laver nu et testscenarie med et målebånd, hvor vi vil teste om sensoren kan måle en afstand med en centimeters præcision.\\
  
-Download gav ingen problemer, vores modul genkendt som Marwin :-) Med hjælp fra Gustav (praktikant fra 9.klasse) får vi hurtigt monteret transduceren. +Test af funktionen ''getDistanceTest()'' og ultrasonic-sensoren:
- +
-The method getDistance returns 255 if there is no echo, hence no object, and otherwise a number less than 255 which is the distance in cm. Try to use the sensor with an object at a distance of up to 254 cm, can the sensor measure such a distance and under what conditions is it possible ? +
- +
-Test af funktionen getDistanceTest() og ultrasonic sensoren:+
  
  
Line 24: Line 27:
 | 240 | 255 (Max ca. 230) | | 240 | 255 (Max ca. 230) |
  
 +Betingelserne er, at hvis der skal måles 230cm, skal der være frit udsyn i en ca. 30 graders vinkel (slag på tasken). Det var ikke muligt at måle 254 cm her, men man kunne evt have forsøgt med andre objekter. Her målte vi mod en jævn væg.
  
-Betingelserne er, at hvis der skal måles 230cmskal der være frit udsyn en ca30 graders vinkel (slag på tasken). +====Test af sample-tidsgrænsen==== 
 +Det oplyses, at der pga en begrænsning er et 300ms sample-interval mellem aflæsning af afstanden. Denne oplysning stammer fra README-filenmen den nye version er denne det udeladet, så det vil være interessant at teste om denne begrænsning stadig findesMan kan jo beregne sig frem til om denne begrænsning overhovedet er rimelig.\\
  
-====Delopgave 2==== +Med 20ms sampling kan lyden nå at bevæge sig 6,8m inklekko, hvilket vil sige 3,4m effektivtDer er ikke taget højde for forsinkelse gennem A/D konverter I2C kommunikationBlot konstateres, at 20ms sampling ikke er for hurtig i forhold til Max distancenSom udgangspunkt er samplingstiden sat til 300msDet blev desværre ikke noteret, hvorvidt vi fik afprøvet at ændre sampleintervallet.
-The test program was compiled and uploaded with leJOS NXJ version alfa_03 as indicated in the comment to the programBecause of a known limitation of alfa_03 there is a 300 msec sample interval between readings of the distanceThis limitation is no longer in the README list so try different values of the sample interval e.gvery small values. +
-What is the time limit for the measurement - remember the speed of sound is 340.29 m/sec ? Does this limit usage of the sensor ?+
  
-Med 20ms sampling kan lyden nå at bevæge sig 6,8m inklekkohvilket vil sige 3,4m effektivtDer er ikke taget højde for forsinkelse gennem A/D konverter I2C kommunikation. Blot konstateresat 20ms sampling ikke er for hurtig i forhold til Max distancen. Som udgangspunkt er samplingstiden sat til 300ms.+====Implementering af Wall Tracker==== 
 +Marwin kører med en hastighed proportionel med afstanden til en fastsat grænsedvs den bremser gradvist ned efterhånden som den nærmer sig sin grænseværdiPlacerer man robotten midt i et rum, vil den altså kører frem og bremse opnår den når til en given afstand af et objekt i det omgivne miljøNår gain-variablen øges, øges accelerationen/deaccelerationenidet man får et større %OS (procentvis overshoot), og man observerer kraftigere oscillation omkring grænseværdien. Der observeres desuden hjulspænd - batteriforbruget lider. Programmet er implementeret med variabel, der kontrollerer effekten til motoren i forhold til den målte afstand, hvilket svarer til en proportional controller, Proportional Gain i feedback loopHer er fasemarginen afhængig af gainet, hvilket vil kunne afhjælpes med Lead/Lag controllere (Integral/Differential-controllers)
  
-====Delopgave 3==== 
-Describe the behaviour of the car controlled by the program and try to change the different constants of the program. 
  
-Marwin kører med en hastighed proportionel med afstanden til en fastsat grænse, dvs den bremser gradvist ned efterhånden som den nærmer sig sin grænseværdi. Når gain-variablen øges øges accelerationen/deaccelerationen, idet man får et større %OS (procentvis overshoot), og man observerer kraftigere oscillation omkring grænseværdien. Der observeres desuden hjulspænd - batteriforbruget lider! 
  
-The power to the car motors is the controlled variable and the distance is the measured variableWhat kind of control is it ?+[[http://www.youtube.com/v/Yt5gOBaU290|{{:marvin:lab2-movie.jpg}}]] Video af Wall Tracker
  
-P controllerProportional Gain feedback loopHer er fasemarginen afhængig af gainethvilket vil kunne afhjælpes med Lead/Lag controllere (PID)+====Implemetering af Wall Follower==== 
 +Philippe Hurbain (PH) har designet en hjemmelavet afstandsmålersom han har anvendt et lille program, der gør sin robot istand til at køre langs en væg i en given afstandProgrammet er skrevet i NQCder ikke helt svarer til C - eller Java for den sags skyld. PH's kode anvendes som inspiration til at lave en wall follower. Første idé er at genbruge walltracker og modificere koden, sådan at den drejer henholdsvis højre/venstre istedet for bagud/fremad. Den første test viser, at motorerne ikke kører lige hurtigt, så der besluttes at korrigere på venstre motor. Dette er dog ikke så let, og det er lidt det samme problem vi havde i LAB1, hvor motorerne heller ikke kørte med samme hastighed. Der arbejdes videre med at løse motorproblemet, men løsningen bliver at introducere en kompenserende variabel på den ene motor - det bliver aldrig helt godt. Det lykkes herefter ikke at får Marvin til at køre stabilt langs væggen, da den undertiden kører tættere på væggen end den grænse vi har tilladt, hvorefter den kører ind i væggen. 
  
-====Delopgave 4==== +====Konklusion==== 
-Wall Follower +Der blev lavet en test af ultralydssensoren, og den måler relativt præcist med en præcision på ca. +/- 1 cm. Den har tilsyneladende en begrænsning, når den nærmer sig 230 cm., hvilket vi dog kun konkluderer ud fra en enkelt test - altså ikke særligt veldokumenteret. Der burde ikke være en begrænsning på sampleintervallet på 300ms med mindre delayet gennem konvertere og kommunikation er optager mere end ca. 280ms. Der mangler desværre lidt dokumentation på testen af, om denne 300ms begrænsning stadig eksisterer i praksis. Implementering af Wall-tracker programmet blev en succes, og sensoren havde ingen problemer med at registrer forskellige objekter. (væg, hænder, blødt stof m.m.Det lykkes dog ikke at få wall-follower programmet til at fungere optimaltDet kunne muligvis skyldesat forward kommandoen ikke fik Marvin til at køre ligeudmen snarer til ene side, hvilket vil sige at kontrolleren ikke havde kontrol over retningen.
-Philippe Hurbain has build and programmed a wall follower based on the LEGO Mindstorms RCX and a home build distance sensorHe used NQC (not quite cto program the controller for the wall follower. Try to use his program and sensor placement to make the LEGO 9797 car follow a wall. Compare the NQC control algorithm with the different suggestions on page 1795.1.3 exercises[1].+
  
-Første idé er at genbruge walltracker og modificere koden, sådan at den drejer henholdsvis højre/venstre istedet for bagud/fremadDen første test viserat motorerne ikke kører lige hurtigtså der besluttes at korrigere på venstre motor.+====Forslag til forbedring==== 
 +Problemet med motorstyringen skal løses. Dernæst skal der arbejdes med at færdiggøre koden til wall-follower'enSidst men ikke mindst skal der laves en test afom 300ms sampleinterval begrænsningen stadig gældereller om den er fjernet på de nye moduler.
  
-Mangler at bliver færdigskrevet.... 
marvin/lab2.1221809084.txt.gz · Last modified: 2008/09/19 09:24 by deva