Jaak Bartok

Home Agenda Cursus Projecten Werkplaats Foto's Links Over Jaak Contact

Project Grasmaaier


Dit project beschrijft de ontwikkeling van de automatische grasmaaier. Deze machine moet autonoom het gras afrijden. .... verder uitwerken ...

Positiebepaling

Idee:

Er worden op het grondgebied minimaal 2 "bakens" geplaatst. Deze bakens ontvangen ultrasoon geluid en een RF signaal. De grasmaaier zendt een ultrasoon geluid en een RF signaal. De grasmaaier gaat op bepaalde tijdstippen (bijvoorbeeld: iedere 5 sekonden) een RF signaal tesamen met een ultrasoon signaal uitzenden. Bij de ontvangers, die op een willikeurige afstand van de grasmaaier staan, zal het RF signaal sneller ontvangen worden dan het ultrasoon signaal. Dit omdat de snelheid van het geluid trager is dan de snelheid van het licht. Het tijdsverschil tussen het RF signaal en het ultrasone signaal gaan wij naukeurig meten en dat is een maat voor afstand tussen de baken en de grasmaaier.

Wanneer de afstand van de bakens tot de grasmaaier gekend zijn, kan de positie van de grasmaaier berekend worden, vanuit de positie van de bakens

Wiskunde: Positiebepaling via Bakens, Afstandsmeting & Cirkels

Het idee is dat er bakens zijn met bekende X,Y,Z coördinaten, die een afstand tot een bepaald punt meten. Hierdoor kan je een ingebeelde cirkel rond deze baken tekenen. Als je een 2de baken hebt, met bekende X,y,z Coördinaten, die een afsstand meet tot datzelfde punt. Kan je ook een ingebeelde cirkel rond de 2de baken tekenen. Zo bekom je 2,1 of geen kruispunten van deze 2 getekende cirkels. Als je deze kruispunten berekend kan je positibepaling gaan doen.
Dit document beschrijft hoe je de kruispunten van 2 cirkels rond 2 bakens met bekend xyz coordinaten en een gemeten afstand tot een punt kunt berekenen.

bakens (x,y,z,R)
baken 1: (a,b,c,d)
baken 2: (e,f,g,h)

Basisformules
(1) (x-a)²+(y-b)²+(z-c)² = d²
(2) (x-e)²+(y-f)²+(z-g)² = h²

Uitwerking van (1) en (2)
(1) x²-2ax+a²+y²-2by+b²+z²-2cz+c² = d²
(2) x²-2ex+e²+y²-2fy+f²+z²-2gz+g² = h²

Aannamen: z = 0
(1) x²-2ax+a²+y²-2by+b²+c² = d²
(2) x²-2ex+e²+y²-2fy+f²+g² = h²

(1)-(2)
___ -2ax+a²-2by+b²+c²+2ex-e²+2fy-f²-g² = d²-h²
(3) x(2e-2a)+y(2f-2b)+(a²+b²+c²-e²-f²-g²+h²-d²)=0

Formule vereenvoudiging

i = 2e-2a
j = 2f-2b
k = a²+b²+c²-e²-f²-g²+h²-d²

(3) ix+jy+k = 0
(3) x = (-jy-k)/i

(3) in (1)
(4) j²y²/i²+2jyk/i²+k²/i²+2ajy/i+2ak/i+a²+y²-2by+b²+c²=d²
(4) y²(j²/i²+1)+y(2jk/i²+2aj/i-2b)+(k²/i²+2ak/i+a²+b²+c²-d²)=0

Formule vereenvoudiging

l = j²/i²+1
m = 2jk/i²+2aj/i-2b
n = k²/i²+2ak/i+a²+b²+c²-d²

(4) ly²+my+n=0

Nulpunten berekenen van een tweedegraadsvergelijking:
Discriminant: m²-4ln
If(Discriminant < 0){Geen uitkomst;}
If(Discriminant >= 0)
{
Y1 = (-m+(m²-4ln)^0.5)/(2 l);
X1 = (-j*(Y1)-k)/i;

Y2 = (-m-(m²-4ln)^0.5)/(2 l);
X2 = (-j*(Y2)-k)/i;
}

Klaar.


Formules de positiefunctie te schrijven:
Input variable: a,b,c,d,e,f,g,h
Private variable: i,j,k,l,m,n,Discriminator
Publice variable: X1,Y1,X2,Y2,Error

i = 2e-2a;
j = 2f-2b;
k = a²+b²+c²-e²-f²-g²+h²-d²;
l = j²/i²+1;
m = 2jk/i²+2aj/i-2b;
n = k²/i²+2ak/i+a²+b²+c²-d²;
Discriminator = m²-4ln;

If(Discriminant < 0){Error = 0;}
If(Discriminant >= 0)
{
Error = 1;

Y1 = (-m+(m²-4ln)^0.5)/(2 l);
X1 = (-j*(Y1)-k)/i;

Y2 = (-m-(m²-4ln)^0.5)/(2 l);
X2 = (-j*(Y2)-k)/i;
}

Return X1,Y1,X2,Y2,Error;

Zo bekom je 2 coördinaten. Als jij jou bakens zo plaatst, bijvoorbeeld op de rand van jou tuinafscheiding, dan is er altijd 1 punt dat onmogelijk is. Zo kan jou bepalen waar de grasmaaier is.

Bepalen van afstand