Ik (samen met nog iemand) ben begonnen met een heel leuk profielwerkstuk. Wij zijn van plan op een "Local Positioning System" (gps in het klein dus ) te bouwen om daarmee een robotje te kunnen manoeuvreren. ik heb thuis al 3 zelf geprogrammeerde (en eentje ook zelf gebouwd) robotjes staan, dus ik heb al enige ervaring met elektronica en programmeren.We zijn ons nu aan het oriënteren naar de mogelijkheden die er zijn om een LPS te bouwen. Tot nu toe hebben we deze 3 mogelijkheden gevonden die ook uitvoerbaar lijken:

- een systeem op basis van WIFI. We hebben op school een boel van die routers staan en aan de hand van de sterkte van de signalen van verschillende routers kan je bepalen waar je bent.

- een systeem op basis van IR leds. Als je rondom de ruimte een aantal leds plaatst dan kan je met een snel draaiende IR detector de hoeken tussen de leds bepalen en daarmee de afstanden.

- en een systeem op basis van ultrasonisch geluid. je plaatst minimaal 4 geluidsbronnen die je op commando een geluisdpuls kan laten geven en je meet de tijd die de pulsjes er over doen om de afstand tussen de speaker en de ontvanger te overbruggen, dan kan je daarmee de afstand berekenen.

Het laatste idee lijkt ons het meest uitvoerbaar en nauwkeurig en daar richten wij ons voorlopig op. mijn eigenlijke vraag is: heeft er iemand ervaring met dit soort dingen? Wij hebben nog geen ervaring met het produceren en meten van ultrasonisch geluid en hoe we het pulsje tussen het achtergrondgeluid kunnen herkennen en daarom is alle hulp (Tips, boeken, sites etc.)welkom.

Alvast bedankt,

Chris

Streep Wifi maar weg, teveel externe factoren die de sterkte van het signaal beinvloeden.

Even wat theoriteseren:

drie synchrone geluidsbronnen, met een afstand D tussen elkaar, en een microfoon die goed genoeg kan meten op welk tijdstip een geluid opgepikt werd. (pulsjes van 1 sec. of zo). De tijdvertraging tussen het ontvangen is een maat voor de afstand tussen de bron en de ontvanger, met drie is dus exact de positie te bepalen. 300 m/s, dus ongeveer 3 msec voor ongeveer 1 meter, ik denk dat een beetje processor wel hiermee uit de voeten kan.

Inderdaad, maar met de afstand tot 3 geluidsbronnen heb je nog steeds 2 mogelijke locaties waa je kunt zijn dus heb je er 4 nodig (of data van eerdere metingen). Ik ga voor de ontvanger waarschijnlijk gebruik maken van een basic stamp en die kan metingen doen met een resolutie van 2 microseconde dus 340 m/s * 2*10^-6s = 0,68 mm Maar dat red ik in de praktijk waarschijnlijk nooit.

Mijn grootste probleem is op het moment het sturen en ontvangen van ultrasoon geluid. Heeft iemand daar ervaring mee?

Net even nagetekend.. Maar als de geluidsbronnen zich niet op een lijn bevinden, is er maar een punt waar de drie cirkels zich kunnen snijden. (maar misschien zie ik iets over het hoofd?)
Pasgeleden kwam er een plaatje van een speaker voorbij:
http://img108.imageshack.us/img108/1701/misc6xc3.jpg misschien zo'n zelfde rondstraler maken voor je transducers.

Maar nog even verder met de theorie:
2usec resolutie komt overeen met 500 kHz. Dat kun je moeilijk gaan detecteren als je "draag golf" ultrasoon is, laten we ervan uitgaan 50 kHz. Op een eenvoudige wijze zou detectie van 1 octaaf haalbaar moeten zijn, dus 25 kHz, dus zo'n 1.5 centimeter zit er praktisch in. Moduleren met 7 11 en 13 kHz, een terug gekoppeld dubbel T filter die vertelt of de piepjes er wel of niet inzitten, moet denk ik wel te doen zijn...

als de 3 speakers zich in een vlak (altijd dus) bevinden dan zijn er in de ruimte 2 punten waar die bollen elkaar snijden, maar jij hebt het waarschijnlijk alleen over 2d navigatie en dan klopt het wel. Ik denk dat wij voor 3d lokalisatie gaan zodat je het ook kan meten als je robotje ergens overheen rijdt en een extra speaker is altijd handig als controle

ik zat te denken dat we de zelfde technieken konden gaan gebruiken als in een ultrasonic distance detector (zo'n ding dus: http://www.parallax.com/images/prod_jpg/28015.jpg ) en dan niet de echo maar de beginpuls meten. zou iemand mij kunnen uitleggen hoe dat ding precies in elkaar (circuit) zit en welk bereik ik daarmee zou kunnen halen?

Verder heb ik nog een probleemje: Hoe weet ik wanneer de puls is verzonden? Ik dacht er aan om de pulsjes op commando (draadloos ofzo) op te vragen en dan de tijd te meten tussen het opvragen van een puls en het ontvangen, maar dan heb je weer een koppeling nodig van je apparaat naar de speakertjes en dat heb ik liever niet (net zo als gps). Als je alle pulsjes tegelijk verzend dan kan krijg je een soort blinde vlek waar alle pulsjes ook tegelijk aankomen en je ze niet meer kunt meten. Dan moet je dus alle pulsjes om de beurt versturen met een vaste tijd er tussen, maar dan krijg je weer problemen als je object beweegt. Heeft iemand daar een oplossing voor?

2D = 3 bronnen (1 snijpunt van de cirkels).
3D = 4 bronnen (bepaling X, Y & Z).
Als je slim bent kan je het met 1 frequentie af door de zenders na elkaar een burst uit te laten zenden. Je kan syncen door gelijktijdig met de audio burst een IR of visueel signaal te geven maar het kan ook zonder.
In de praktijk kom je trouwens nog vele problemen tegen die de nauwkeurigheid nadelig beinvloeden. Zo heb ik een ultrasoon ontvanger gebouwd met een NE567 als toondecoder, maar er zit een redelijke vertraging tussen het binnenkomen vasn het signaal en de uitgang van de PLL, en die is ook nog afhankelijk van de signaalsterkte. Dit zorgt dus voor extra fouten. Het is misschien op te lossen met een AGC maar dat maakt de ontvanger wel aanzienlijk complexer. Elk filter levert trouwens een vertraging op die wel weggerekend moet worden.

Zoals Jowi al zei: ik denk dat synchronisatie het kleinste probleem is, Je kunt een vrijlopende teller gebruiken die op alle USpulsen en je robot gesyncroniseerd is. En ik ging inderdaad van twee dimensies uit, sinx/x = 1 voor kleine waarden van x. (oftewel als je obstakel niet te hoog is maakt het niet uit) En inderdaad tijd multiplexen, elk toontje een kwart van de tijd laten piepen. Dat moet te doen zijn, omdat alles met elkaar syncroon loopt. Misschien is AGC zo slecht nog niet, met een JFET en opamp kom je een heel eind.

Zo'n ultrasonic afstandsdetector gaat niet lukken, je moet het geluid rondstralen i.p.v. een bundel, en ook de microfoon moet geluid van alle richtingen op kunnen vangen. Vandaar dat eerste plaatje wat ik stuurde.

heb je met ultrasoon geen direct zicht nodig tussen zender en ontvanger ? Zoja, dan zal je robot het noorden kwijtraken als hij onder een tafel doorgaat, of in een andere kamer komt?

En hoe met weerkaatsingen? Je zal voor een goede meting toch zeker een sseconde stil moeten staan om alles te ontvangen. (De golven die in een rechte lijn komen zijn altijd de eerste, gelukkig voor jou, maar de andere blijven nog wel enkele tientallen ms meetbaar).

ik heb het even opgezocht en je hebt gelijk dat ultrasoon geluid vrijwel alleen rechtdoor gaat. We hebben dus een manier nodig om het geluid alle kanten op te sturen, maar dat zal niet echt een heel groot probleem worden. Ik denk dat het probleem van direct zicht niet echt is op te lossen binnen ons budget en mogelijkheden. Alle andere manieren van positie bepalen die ik heb gezien (IR, webcam etc.) hebben het zelfde probleem. En als je met draadloos gaat werken dan word het wel erg duur.

We kunnen toch wel grotendeels het circuit van een ultrasonic afstand detector gebruiken? Ik zou namelijk niet weten hoe ik anders iets kan bouwen wat ultrasone geluiden kan versturen/waarnemen (vandaar dat ik op dit forum ben gekomen). Verder heb ik eigenlijk geen idee wat AGC, JFET of opamp is, kan iemand dit mij uitleggen?

ik denk dat het het best is als alle 4 geluidspulsen een vaste tijd na elkaar uitgezonden worden. Ik denk dat we ons gaan richten op een ruimte ter grootte van een klaslokaal (max 10m x 10m) Om dan geen plekken te krijgen waar 2 geluidspulsen tegelijk aankomen moeten de pulsen dus 10m / 340m/s = 0,03 sec na elkaar worden uitgezonden. ik denk dat na die tijd de echte pulsen wel van een echo te onderscheiden zijn. als je om de 0,03 sec een meting doet dan kan je 34 metingen per seconde doen dus 34/4 = 8,5 positiebepalingen per seconde. Ik denk dat je daar niet stil voor hoeft te gaan staan (en zeker met de "snelheid" van m'n boebotje niet)

Als je van een klaslokaal uitgaat, dan zou je zelf aan 2 geluidsbronnen genoeg kunnen hebben... En als het obstakel kleiner is als .1 x de golflengte buigt het signaal er wel omheen hoor, ik denk niet dat dat een probleem gaat worden.

Als je dan inderdaad drie of vier bakens neemt heb je zeker genoeg info om de positie te kunnen bepalen. Zet tegen de "rand" van het klaslokaal houten blokken onder een hoek van 45', en de reflecties ben je ook kwijt. in een locaal van 10x10 meter is het verste wat je van een bron verwijderd kan zijn is pak hem beet 15 meter. met 340 m/s is dat dus minder dan 50 msec. Duty cycle 50% (zenden/niet zenden van een van de bakens) 100 msec, dus met 400 msec heb je een complete sequence erdoor. (0-50 msec zenden baken 1, 0-100 msec luisteren naar baken 1; 100-150 zenden baken 2, 100-200 msec. luisteren baken 2 etc.)

Ik heb dit circuit gevonden voor de ultrasone bakens en de ontvangers: http://www.leang.com/robotics/info/articles/minison/minison.html
Ik zie dat er in dat circuit een paar keer 9v nodig is maar dat heb ik niet. Is er een manier hoe ik dit circuit (aangepast) ook op 5v kan laten werken? en heeft er iemand als dat niet kan een alternatief dat wel op 5 volt kan werken?