Springen naar inhoud

Paar issues bij het bepalen van de afstand.


  • Log in om te kunnen reageren

#1

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 10:56

Voor een informatica projectvak hebben we de opdracht gekregen om met een Sun SPOT te bepalen wanneer een persoon 30 meter heeft afgelegd.
De Sun SPOT is een apparaat gemaakt door SUN. De sun spot heeft een accelerometer die in drie assen de versnelling kan meten.
Een beschrijving van deze accelerometer is hier te vinden: Accelerometer.
In het kort staat hierin:
  • De sunspot kan elke 0.475 miliseconden een sensorwaarde lezen
  • De sunspot kan voor elke as een sensorwaarde lezen
  • De sunspot kan voor elke as de relative versnelling meten (=versnelling t.o.v. vorige gelezen versnelling)
  • De sunspot kan zijn tilt per as meten (=draaihoek)

Nu is het zo dat de persoon die met deze sunspot gaat wandelen deze sunspot op één of andere manier bij zich moet houden. Wij denken dus dat het een probleem gaat worden voor de sunspot om te meten of deze van tilt verandert of dat de sunspot daadwerkelijk in het horizontale vlak beweegt.

- Is het theoretisch gezien mogelijk om onderscheid te maken tussen het meten van de hoek en het meten van de versnelling in het horizontale vlak, tijdens het wandelen?
Zelf denken wij dat dit niet mogelijk is en moeten we dus als eis gaan stellen dat de sunspot niet van hoek mag veranderen.

- De sunspot kan een lijst met gelezen versnellingen bijhouden. Om te bepalen wanneer de persoon 30 meter afgelegd willen we voortdurend de sunspots afgelegde afstand berekenen, door het gebruik van de volgende formule:

LaTeX

Kan dat, of slaan we hier de plank mee mis?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2


  • Gast

Geplaatst op 16 juni 2010 - 11:41

- Is het theoretisch gezien mogelijk om onderscheid te maken tussen het meten van de hoek en het meten van de versnelling in het horizontale vlak, tijdens het wandelen?
Zelf denken wij dat dit niet mogelijk is en moeten we dus als eis gaan stellen dat de sunspot niet van hoek mag veranderen.

Waarom vinden jullie dat?

LaTeX



Kan dat, of slaan we hier de plank mee mis?

Dat mag niet, want voor de afgelegde weg in een eenparig versnelde beweging heb je een andere formule geleerd (denk aan een vallend voorwerp). Bovendien meten jullie maar langs één as, de x-as, tenzij x en a vectoren zijn, en dat denk ik niet.

Probeer eens iets te doen met de drie assen waarlangs de spot kan meten. Als de proefpersoon vrij mag bewegen kun je nog steeds uit de drie versnellingen bepalen waar hij zich bevindt. Je moet dan de bewegingen langs de drie assen apart berekenen. Het lijkt me niet wijs jullie vergelijking als uitgangspunt te nemen want daar kom je vroeg of laat mee in de problemen. Bepaal eens welke tussenstappen je kan nemen om uit de versnelling op een interval van 0,475 s de afgelegde afstand in de betreffende richting te bepalen. Succes,

#3

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 13:06

Waarom vinden jullie dat?


Als we de SUN Spot tijdens het wandelen van hoek veranderen, dan weten we niet of deze nou vooruit is gaan bewegen of van hoek is veranderd, omdat beide door de sunspot als versnelling worden gemeten?

Dat mag niet, want voor de afgelegde weg in een eenparig versnelde beweging heb je een andere formule geleerd (denk aan een vallend voorwerp). Bovendien meten jullie maar langs één as, de x-as, tenzij x en a vectoren zijn, en dat denk ik niet.


LaTeX ](*,) (oeps).


Probeer eens iets te doen met de drie assen waarlangs de spot kan meten. Als de proefpersoon vrij mag bewegen kun je nog steeds uit de drie versnellingen bepalen waar hij zich bevindt. Je moet dan de bewegingen langs de drie assen apart berekenen. Het lijkt me niet wijs jullie vergelijking als uitgangspunt te nemen want daar kom je vroeg of laat mee in de problemen. Bepaal eens welke tussenstappen je kan nemen om uit de versnelling op een interval van 0,475 s de afgelegde afstand in de betreffende richting te bepalen. Succes,


Hmm, ik ga hier naar kijken.

#4

JWvdVeer

    JWvdVeer


  • >1k berichten
  • 1114 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 14:52

Ligt er volledig aan wat voor referentie je neemt. Je kunt namelijk heel goed met dit apparaat nu bepalen wat er met dit apparaat zelf gebeurt. Wat er echter exact gebeurt met de persoon die het apparaat bij zich heeft is een hele andere vraag. Daar kun je niets over zeggen als je niet weet hoe het apparaat t.o.v. de persoon staat.
Waar je mogelijk wel wat mee kunt is dat je weet dat de zwaartekracht altijd naar beneden gericht is. Op het moment dat er dus enkel een kracht van ca. 1G voor een iets langere tijd in een bepaalde richting blijft staan, weet je dus dat dat de grondrichting is. Daarnaast kun je ook als je het bewegingspatroon weet bepalen hoe de persoon staat. Maar persoonlijk denk ik ook niet dat het heel interessant is om te weten...

#5


  • Gast

Geplaatst op 16 juni 2010 - 16:02

Maar persoonlijk denk ik ook niet dat het heel interessant is om te weten...

Nou dat weet ik nog zo net niet. Voor het overige ben ik het helemaal met je eens hoor. Het probleem met een veranderde stand is, dat het assenstelsel waarlangs je de verplaatsingen meet, ook verdraait. Dan kom je echter in een moeilijk parket, voor het voortgezet onderwijs tenminste.
Hoe kun je dit oplossen?
Denk eens mee, meijuh en collega's. Op één of andere manier moet je denk ik vaststellen op welk moment (bij welke verdraaing) je oorspronkelijke vergelijkingen (waar je nog over moet nadenken, daar hou ik je aan) niet meer opgaan. Misschien iets met meetnauwkeurigheid, want 30 meter kun je zien als 'iets tussen 25 en 35 m' of misschien mag je ook wel stellen dat je pas bij 31m het sein 'overschrijding!' hoeft te geven? Daaruit kun je bepalen hoe nauwkeurig de versnellingen in je oorspronkelijke x,y,z-richting kloppen voor bepaalde verdraaiingen, met de cosinus van de verdraaiing als criterium. Ik hou even op, laat het weer even aan jullie over, ok?

#6

JWvdVeer

    JWvdVeer


  • >1k berichten
  • 1114 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 16:56

Ik hou even op, laat het weer even aan jullie over, ok?

Makkelijke oplossing.

Ik zou gewoon eens willen weten wat de TS er uiteindelijk mee wil doen. Kijk, als de TS enkel wil dat het apparaat een seintje geeft wanneer deze weer in de beginpositie is, dan ga je niet proberen om de positie van de persoon uit te vinden. Dan ga je gewoon een soort grote numerieke integraal van die krachten maken tot het punt waarop deze weer 0 is en dan geef je een seintje af.

#7

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 17:25

Makkelijke oplossing.

Ik zou gewoon eens willen weten wat de TS er uiteindelijk mee wil doen. Kijk, als de TS enkel wil dat het apparaat een seintje geeft wanneer deze weer in de beginpositie is, dan ga je niet proberen om de positie van de persoon uit te vinden. Dan ga je gewoon een soort grote numerieke integraal van die krachten maken tot het punt waarop deze weer 0 is en dan geef je een seintje af.


We moeten gewoon 30 meter met de sun spot lopen. Als de sunspot vindt dat het 30 meter heeft afgelegd moet het een lampje laten branden.

De gemiddelde versnelling nemen gaat niet werken, omdat het geen eenparige beweging is.
Het apparaatje leest nu om de .457 ms een sensor waarde.
Verder wil ik implementeren dat het om de 100 ms berekent wat zijn afstand is.

Ik denk dat ik er vanuit kan gaan dat die .475 ms een eenparige beweging is en dus (100/.475 =) 211 verschillende snelheden berekent per 100 ms. Hoe ik dit precies ga implementeren moet ik nog even over nadenken.

#8

JWvdVeer

    JWvdVeer


  • >1k berichten
  • 1114 berichten
  • Ervaren gebruiker

Geplaatst op 16 juni 2010 - 21:48

We moeten gewoon 30 meter met de sun spot lopen. Als de sunspot vindt dat het 30 meter heeft afgelegd moet het een lampje laten branden.

Ik neem aan dat je een beginsituatie hebt? Doordat het apparaat zijn eigen tilt kan berekenen kun je naar mijn idee gewoon steeds de assen naar de uitgangssituatie terugrekenen. Als je dat doet kun je dus vrij eenvoudig bepalen wat de beweging in het horizontale vlak is. Of heb ik dat nu fout?

Ik denk dat ik er vanuit kan gaan dat die .475 ms een eenparige beweging is en dus (100/.475 =) 211 verschillende snelheden berekent per 100 ms. Hoe ik dit precies ga implementeren moet ik nog even over nadenken.

Je moet het krachtenspel steeds terugredeneren naar de beginsituatie en dus kijken wat de verplaatsing is in transversale vlak (het vlak evenwijdig met de vloer). Je moet dan de versnelling optellen bij de snelheid (allebei vectoren). De absolute snelheid moet je dan optellen bij de afgelegde weg. Je wilt per slot van rekening wss ook dat je gewaarschuwd wordt wanneer iemand een rondje van 30m aflegt.

Veranderd door JWvdVeer, 16 juni 2010 - 21:55


#9

meijuh

    meijuh


  • >100 berichten
  • 202 berichten
  • Ervaren gebruiker

Geplaatst op 17 juni 2010 - 13:58

Ik neem aan dat je een beginsituatie hebt? Doordat het apparaat zijn eigen tilt kan berekenen kun je naar mijn idee gewoon steeds de assen naar de uitgangssituatie terugrekenen. Als je dat doet kun je dus vrij eenvoudig bepalen wat de beweging in het horizontale vlak is. Of heb ik dat nu fout?


Hier ga ik later nog naar kijken.

Je moet het krachtenspel steeds terugredeneren naar de beginsituatie en dus kijken wat de verplaatsing is in transversale vlak (het vlak evenwijdig met de vloer). Je moet dan de versnelling optellen bij de snelheid (allebei vectoren). De absolute snelheid moet je dan optellen bij de afgelegde weg. Je wilt per slot van rekening wss ook dat je gewaarschuwd wordt wanneer iemand een rondje van 30m aflegt.

Ik studeer informatica, geen natuurkunde. Ik heb dus elke .475 ms een bepaalde versnelling die hij kan meten. Kun je me een formule geven of een paar tips waar ik naar kan kijken om hiermee de afgelegde weg te bepalen?

#10


  • Gast

Geplaatst op 18 juni 2010 - 16:17

In tegenstelling tot mijn eerdere berichten is het inderdaad niet zonder meer mogelijk om de koers te bepalen (de looprichting) Daar heb je een gyroscoop voor nodig en die zit niet in handapparaten. Je kunt dus geen absolute verplaatsingen bepalen in de ruimte, je kan geen hoogteverschillen bepalen, etc. Een apparaat voor inertie-navigatie kan op dit moment alleen in vliegtuigen of schepen worden ingebouwd.

Je zou kunnen bepalen hoeveel meter het apparaat heeft afgelegd. Bv. een meter naar voor en een meter naar achter is gewoon twee meter afgelegd. De normale bewegingsvergelijkingen in drie dimensies, die goniometrie met drie hoeken omvatten (verschrikkelijke dingen, ik zal proberen ze ergens voor je te vinden) kun je dan eventueel vereenvoudigen naar een hanteerbare vorm.
Je hoeft dan niet veel meer te doen met de verdraaiing tov de aarde. Immers het maakt niet uit als je een meter naar boven loopt. Het enige dat je hoeft te doen is uit de versnellingsvector de grootte van de snelheidsvector te bepalen en daaruit de afgelegde afstanden.

helaas is de vraag, of de wandelaar het apparaat heeft verdraaid of dat hij zelf een bocht maakt. Wat is het verschil, zul je denken, ik meet gewoon waar het apparaat is? Stel eens dat op een moment de man in x-richting een snelheid heeft. Stiekum draait hij het apparaat 90 graden. Nu wordt er een vertraging gemeten in y-richting, wat normaal betekent dat de man een bocht draait en dus z'n snelheid houdt, en dus neemt de afgelegde afstand voorturend toe. Maar doordat hij het apparaat dwars houdt, is hij in feite aan het afremmen, en neemt de afstand snel af. Dat verschil kun je nooit bepalen.

Ofwel? Eisen dat de wandelaar het apparaat voor zich heeft en niet verdraait? Dan kunnen we verder. Anders denk ik dat het onmogelijk is.

#11

JWvdVeer

    JWvdVeer


  • >1k berichten
  • 1114 berichten
  • Ervaren gebruiker

Geplaatst op 18 juni 2010 - 23:40

De sunspot kan zijn tilt per as meten (=draaihoek)

In tegenstelling tot mijn eerdere berichten is het inderdaad niet zonder meer mogelijk om de koers te bepalen (de looprichting)

Als het apparaat zelf de beweging kan meten die het maakt ten opzichte van zijn eigen assen, kun je dus bijhouden of aan dat aparaat vragen hoe hij nu staat ten opzichte van een begintoestand. Je kunt dus elk moment het krachtenspel naar mijn idee terugvertalen naar hoe het krachtenspel er uit zou zien ten opzichte van de normale toestand (ofwel de begintoestand). Een voorwaarde is wel dat de begintoestand dan ook een bekende positie heeft. Al is dit naar mijn mening ook niet per definitie nodig: 30 meter kun je op den duur echt wel bepalen wat dan hoogstwaarschijnlijk het horizontale vlak is. Daarnaast heb je ook nog altijd de zwaartekracht. Dus in een bepaalde richting zal de versnelling altijd overheersen (als ik tenminste de handleiding mag geloven).

#12


  • Gast

Geplaatst op 19 juni 2010 - 14:46

Op het gevaar af te ontaarden in een wellesnietes discussie, de handleiding geeft duidelijk aan dat hij de hoek kan bepalen tussen de zwaartekrachtsvector en zijn eigen as. Hij kan dus verder geen hoeken meten (Zoals ik al zei, daarvoor heb je gyro's nodig).
Dus kun je de looprichting maar op één manier bepalen, en dat uitgaande van de veronderstelling dat de x-as altijd wijst in de looprichting. De wandelaar moet het apparaat vasthouden alsof hij vast verbonden is met zijn lichaam (dus niet t.o.v. de aarde want dat is niet uitvoerbaar, hoewel het erg fijn zou zijn voor de berekening).
Je moet nu aannemen, dat zolang de snelheid in looprichting geen nul geworden is, deze alleen wordt bepaald door de versnelling in x-richting. De versnelling in y-richting mag niet worden opgevat als een stap opzij, maar als het inzetten van een bocht. De gemeten y-versnelling is dus - (de centripetale versnelling). Pas als de snelheid beneden een bepaalde waarde is gekomen, zeg 1 m/s, mag een y-versnelling worden opgevat als een stap opzij. De snelheid wordt nu geacht te liggen in y-richting, en in het verhaal van boven wisselen x en y van rol.
Misschien mag je ook aannemen dat opzij stappen zodanig langzaam gaat, dat de beweging in die richting beperkt blijft tot losse stappen. Dat merk je dan aan een cyclische versnelling in y-richting (stap, stop, stap, stop), met een herhalingstijd van ongeveer een seconde. In dat geval behandel je de beide bewegingen dus geheel anders.

Nu zie ik, dat je nog steeds geen idee hebt hoe je de versnelling in x-richting gebruikt om de afgelegde afstand te bepalen. Ik noem even dt de bemonsteringstijd (.475 ms). Dat betekent dat je tussen twee tijdstippen op een afstand van dt geen informatie hebt over de beweging. De gemakkelijkste berekening is nu, dat je de snelheid in x-richting (v) voortdurend aanpast aan de gemeten versnelling, dus

LaTeX

De in die tijd afgelegde afstand is

LaTeX

Dit houdt je op alle meetmomenten vol, net zolang tot xnieuw 30 m is, of als de snelheid onder de grenswaarde (zie boven) komt. In dat laatste geval wacht je af tot er een nieuwe versnelling wordt gemeten en begint het proces opnieuw.

Ik weet dat er enorm veel vereenvoudigingen zitten in dit verhaal. Uitgaande van de apparatuur die tot je beschikking staat is dit volgens mij het maximaal haalbare. Je kan de algortime verfijnen met een filter, dat de gemeten versnellingen afvlakt. Maar een kortere rekentijd, zoals je 1ms, heeft geen zin, omdat je dan gewoon 100 keer dezelfde berekening uitvoert met dezelfde versnelling. Bovendien geven zulke rekentrucs een schijnzekerheid, omdat de onzekerheid over de bewegingen van het apparaat (verdraaiingen) veel groter is.
Je kan gaan rekenen in z-richting, zodat lopen op een helling kan worden verrekend. Dat lijkt aantrekkelijk, maar volgens mij zijn de optredende verticale versnellingen bij lopen zo groot, dat je daar een geleidelijke stijging niet uit kan filteren.

Ik heb vrijwel de hele oplossing gegeven voor mijn grove vereenvoudiging van de werkelijkheid. Ik ga er van uit dat dit niet de hele oplossing is voor jullie probleem (de groep van TS, niet de overige gebruikers). Misschien kunnen jullie er desondanks iets mee. Succes,

#13

Kalkoen

    Kalkoen


  • >250 berichten
  • 389 berichten
  • Ervaren gebruiker

Geplaatst op 19 juni 2010 - 16:00

Ik zien niet in wat het probleem is? Als je de tilt van het toestel naar alle hoeken kan achterhalen, dan kan je toch altijd met was cosinussen en sinussenwerk berekenen in welke richting de resulterende acceleratie werkt? En blijkbaar geeft de documentatie inderdaad aan dat de tilt ten opzichte van een as te achterhalen is door de een acceleratie in een bepaalde as te delen som van alle acceleraties? Als je daaruit weet naar welke richting het toestel gekantelt is en wat dus de positie is van uw assenkruis van de accelerometer ten opzichte van uw referentiestelsel is, dan kan je toch ook nagaan wat de beweging is van uw accelerometer ten opzichte van uw rerferentiestelsel?

de flow moet er eigenlijk zo uitzien bij elke berekening:
1. bereken de tilt van uw assenstelsel ten opzichte van het referentiestelsel door:
tiltX = arcsin (Ax/|Atot|)
tiltY = arcsin (Ay/|Atot|)
tiltZ = arcsin (Az/|Atot|)

met |Atot|= wortel(Ax²+Ay²+Az²)
Zie daarvoor ook de documentatie.

2. bereken de richting en grootte van uw versnelling (en snelheid en beweging) ten opzichte van het stelsel Xa Ya Za waarin dat gedefinieert is door de werkelijke positie van uw accelerometer.

3. draai die bewegingsrichting onder een hoek die ge in 1 hebt berekend voor elke component in het referentiestelsel X-Y-Z.

Het enige waar ge wat mee zult knosselen, is hoe ge dit met cosinussen en sinussen juist krijgt, maar normaal moet dit te doen zijn. Het kan bijvoorbeeld zijn dat ge in stap 1 uitkomt dat er een tilt is gebeurt rond de Z as van 90 graden. Daar zult ge eens een schetske van moeten maken. Dus dan wijst de Y-as van de accelerometer in de richting van de X-as van ons stelsel. Een sinus van 90 zal de waarde van de Y-as naar 1 brengen, een cosinus van 90 zal de waarde van de X-as naar 0 brengen. Uw richting van de referentie X-as is dan bepaald door de Y-as van het toestel. Zo zult ge voor elke stap de referentie X-Y-Z moeten berekenen, en met de waarden van stap 3 kunt ge dan gaan berekenen waar ge in de echte ruimte zijt.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures