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/10/09 20:50] riepermarvin:lab2 [2008/10/09 21:16] (current) rieper
Line 34: Line 34:
 Med 20ms sampling kan lyden nå at bevæge sig 6,8m inkl. ekko, hvilket vil sige 3,4m effektivt. Der er ikke taget højde for forsinkelse gennem A/D konverter I2C kommunikation. Blot konstateres, at 20ms sampling ikke er for hurtig i forhold til Max distancen. Som udgangspunkt er samplingstiden sat til 300ms. Det blev desværre ikke noteret, hvorvidt vi fik afprøvet at ændre sampleintervallet. Med 20ms sampling kan lyden nå at bevæge sig 6,8m inkl. ekko, hvilket vil sige 3,4m effektivt. Der er ikke taget højde for forsinkelse gennem A/D konverter I2C kommunikation. Blot konstateres, at 20ms sampling ikke er for hurtig i forhold til Max distancen. Som udgangspunkt er samplingstiden sat til 300ms. Det blev desværre ikke noteret, hvorvidt vi fik afprøvet at ændre sampleintervallet.
  
-====Implementering af Wallfollower==== +====Implementering af Wall Tracker==== 
-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. 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 loop. Her er fasemarginen afhængig af gainet, hvilket vil kunne afhjælpes med Lead/Lag controllere (Integral/Differential-controllers)+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. Placerer man robotten midt i et rum, vil den altså kører frem og bremse op, når den når til en given afstand af et objekt i det omgivne miljø. 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. 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 loop. Her er fasemarginen afhængig af gainet, hvilket vil kunne afhjælpes med Lead/Lag controllere (Integral/Differential-controllers)
  
  
  
-[[http://www.youtube.com/v/Yt5gOBaU290|{{:marvin:lab2-movie.jpg}}]]+[[http://www.youtube.com/v/Yt5gOBaU290|{{:marvin:lab2-movie.jpg}}]] Video af Wall Tracker
  
-====Delopgave 4==== +====Implemetering af Wall Follower==== 
-Wall Follower +Philippe Hurbain (PHhar designet en hjemmelavet afstandsmåler, som han har anvendt i et lille program, der gør sin robot istand til at køre langs en væg i en given afstand. Programmet er skrevet i NQC, der 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/fremadDen første test viserat motorerne ikke kører lige hurtigt, så der besluttes at korrigere på venstre motorDette er dog ikke så let, og det er lidt det samme problem vi havde i LAB1, hvor motorerne heller ikke kørte med samme hastighedDer 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 tilladthvorefter den kører ind i væggen
-Philippe Hurbain has build and programmed a wall follower based on the LEGO Mindstorms RCX and a home build distance sensor. He 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 wallCompare the NQC control algorithm with the different suggestions on page 1795.1.3 exercises[1].+
  
-Første idé er at genbruge walltracker og modificere kodensådan at den drejer henholdsvis højre/venstre istedet for bagud/fremad. Den første test viserat motorerne ikke kører lige hurtigtså der besluttes at korrigere på venstre motor. +====Konklusion==== 
- +Der blev lavet en test af ultralydssensorenog den måler relativt præcist med en præcision på ca. +/- 1 cm. Den har tilsyneladende en begrænsningnå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 ca280ms. 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 optimalt. Det kunne muligvis skyldes, at forward kommandoen ikke fik Marvin til at køre ligeud, men snarer til ene side, hvilket vil sige at kontrolleren ikke havde kontrol over retningen.
-Mangler at bliver færdigskrevet....+
  
 +====Forslag til forbedring====
 +Problemet med motorstyringen skal løses. Dernæst skal der arbejdes med at færdiggøre koden til wall-follower'en. Sidst men ikke mindst skal der laves en test af, om 300ms sampleinterval begrænsningen stadig gælder, eller om den er fjernet på de nye moduler.
  
marvin/lab2.1223578205.txt.gz · Last modified: 2008/10/09 20:50 by rieper