INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Lenk-Korrektur berechnen (Koordinaten)
16.03.2017, 07:40 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2017 08:36 von Binatone.)
Beitrag #1
Lenk-Korrektur berechnen (Koordinaten)
Hallo Freunde...
Ich hätte da gern ein Problem:
Einen Sketch kann ich nicht anhängen, weil ich derzeit noch nicht weis, wie ich das Problem überhaupt "angreife".

Die Position eines Mähroboters ist bekannt.
Es besteht ein Koordinatensystem (z.B. 10.000 x 10.000 Punkte)
Die Position A ist 2000,3000
Die Position B ist 2200,3100

Position B ist 5 sek nach Position nach Position A erreicht.
Der Robbie hat sich also von A nach B. bewegt

Daraus kann man eine Fahrtrichtung errechnen.
Diese Richtung soll beibehalten werden.
Dann am Ende der Fläche soll eine 180 Grad wende gefahren werden.
Dann die Anschluss-Spur zurück im gleichen Winkel von A/B bis zur anderen Garten-Grenze.
Dann wieder 180 Grad Wende usw.

Der Abstand zur nächsten Spur ist verstellbar, aber das ist erstmal Nebensache.
Zunächst muss ich versuchen, eine Möglichkeit zu finden, wie der Robbie exakt auf einen bestimmten Punkt zufährt und dies möglichst geradlinig.

Die aktuelle Position erhält das System im Sekundentakt per Funk (Koordinaten)

Hat sowas schonmal jemand gemacht?
Ich bitte um Lösungsansätze.

Edit:

Ich begrenze die Sache besser zuerst auf nur eine Aufgabe:
A = Start
B = Ziel
Lenke das Fahrzeug so, das es möglichst exakt an dieser Linie (A->B) entlang fährt.
Edit Ende

Vielen Dank

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 09:48
Beitrag #2
RE: Lenk-Korrektur berechnen (Koordinaten)
(16.03.2017 07:40)Binatone schrieb:  Ich begrenze die Sache besser zuerst auf nur eine Aufgabe:
A = Start
B = Ziel
Lenke das Fahrzeug so, das es möglichst exakt an dieser Linie (A->B) entlang fährt.
Binatone

Hallo Binatone.

Was meisnt du mit "via Funk"? Als GPS-Signal? Wenn ja, halte ich das für zu ungenau. Im besten Fall liegt man das zivil bei +-3m HDOP-Wert. Damit würde dein Robbi ziemlich trunken von A nach B rollen. DGPS wäre evtl ein Ansatz, da bin ich aber noch nicht clever genug. Smile
Ein möglicher Ansatz wäre einen Fluxgate zu nutzen und nach Himmelsrichtung zu fahren. Es könnte nur sein dass die Ströme der Mähermotoren etwas Ärger machen und das Signal verrauschen.

Das was du da versuchst habe ich auch schon länger im Hinterkopf, aber leider noch nicht angegangen. Zeitplanung, Prioritäten... das Übliche eben.

Wäre schön von deinen Erfolgen zu erfahren.

Keep on... Ralf aka RMR
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 10:14
Beitrag #3
RE: Lenk-Korrektur berechnen (Koordinaten)
wie ich die genaue Position bestimme, ist im Moment nebensächlich.
Eben darüber gibt es zur Genüge Diskussionen in sehr vielen Foren.
Hier möchte ich den zweiten Schritt durchdenken.

Gehen wir davon aus, ich hab die Position und kann anhand der Veränderung dann auch die Fahrtrichtung bestimmen.
Doch nun will ich geradeaus auf Punkt B zu fahren auf eben exakt dieser vorgegeben Linie.

Ich bitte Euch um Ideen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 12:15
Beitrag #4
RE: Lenk-Korrektur berechnen (Koordinaten)
Hallo,
gehen wir mal davon aus, das Du einen genauen Start- und Zielpunkt hast.
Die beiden Punkte möchtest Du auf den kürzesten Weg verbinden, d.h. im idealen
Fall eine einfache Gerade.
Das Ding steht am Startpunkt, Lenkung auf null Grad.
Fährt das Ding jetzt mit null Grad los, dann kommt es nach einer bestimmten
Zeit am Ziel an.

Wenn ich Dich richtig verstehe, dann willst Du nichts anderes, als einen
bestimmten Kurs einhalten. Ist ganz einfacht…

Dreieck, von A nach B
Wenn A und B bekannt sind, dann sollte die Länge der Strecke A-B auch
bekannt sein, wenn nicht, dann brauchst Du eine Referenz C.

Du fährst bei A los, sagen wir einen Meter Strecke Richtung B.
Dann verändert sich der Winkel A zu C und die Strecke A zu C.
Die Strecke A zu C wird kürzer… noch alles klar?

Über die Strecke A zu C und die gefahrende Strecke kommst Du immer wieder
auf den bestimmten Punkt zwischen Strecke A und B.

Zeichne Dir mal ein Dreieck auf.
Links unten Punkt A, rechts unten Punkt B und oben Punkt C.
An Punkt C befestigst Du einen Faden.
Nun ziehst Du diesen Faden nach Punkt A und machst dort einen Knoten.
Wenn Du nun diesen Knoten auf der Strecke A zu B bewegst, dann stells Du fest,
das sich der Knoten immer weiter von der Strecke A zu B entfernt.
Am Anfang wird der Knoten unter der Strecke A zu B sein, nach einer Zeit
wird der Knoten über der Strecke A zu B sein.
Um den Knoten auf die Strecke A zu B bekommen muß die Strecke C zu
Schnittpunkt Strecke A zu C verändert werden.
Das kannst Du einfach ausrechnen…
Wenn Du immer dafür sorgst, das der Knoten sich auch der Strecke A zu B
befindet, dann bist Du immer genau auf der Strecke A zu B unterwegs.
Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 15:07
Beitrag #5
RE: Lenk-Korrektur berechnen (Koordinaten)
Knoten....
Das war doch die Heschwindigkeits-Einheit auf See, oder?

Nein im Ernst:
Ich muss das ein paar mal durchlesen, bevor ich das begreife...
Scheiss Hauptschule Big Grin

Vielen Dank
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 15:32
Beitrag #6
RE: Lenk-Korrektur berechnen (Koordinaten)
Hallo,
Gruß und Spaß
Andreas


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 16:00
Beitrag #7
RE: Lenk-Korrektur berechnen (Koordinaten)
Ah ok...
Jetzt hab ich die Brille auf...

Allerdings muss ich da über den Pytagoras wohl die Abstände hin und her rechnen.
Aber das könnte klappen.
Danke!
Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.03.2017, 16:24
Beitrag #8
RE: Lenk-Korrektur berechnen (Koordinaten)
Hallo,
ich stelle mir gerade ein einfaches Koordinatensystem vor. Nur den ersten Quatranten.
[Bild: gededitgui_graphiccoordinates_av.gif]
Die X-Achse geht von 0 bis 10000
Die Y-Achse geht von 0 bis 10000
In diesem Koordinatensystem liegt deine Linie mit Anfang x=2000 y=3000 und Ende x=2200 y=3100.
Dann kann man recht einfach linear zu jeden x-Punkt von 0 bis 10000 den Wert für y berechnen.
Code:
float x1 = 2000.0;
float y1 = 3000.0;
float x2 = 2200.0;
float y2 = 3100.0;
float dx, dy, xAnfang, yAnfang;
int schrittweite = 200;

void setup() {
  Serial.begin(115200);
  Serial.println(F("Punkte auf einer Geraden"));

  dx = (x2-x1)/(x2-x1);
  dy = (y2-y1)/(x2-x1);
  xAnfang = x1-(dx*(x1/dx));
  yAnfang = y1-(dy*(x1/dx));

  for (int i = 0 ; i <= 10000; i += schrittweite) {
    Serial.print(F("Punkt ")); Serial.print(i);
    Serial.print(F("    x=")); Serial.print(xAnfang + i * dx);
    Serial.print(F("    y=")); Serial.println(yAnfang + i * dy);
  }
}

void loop() {
  while (1);
}

Die Ausgabe sieht dann bei einer eingestellten Schrittweite von 200 so aus:
Code:
Punkte auf einer Geraden
Punkt 0    x=0.00    y=2000.00
Punkt 200    x=200.00    y=2100.00
Punkt 400    x=400.00    y=2200.00
Punkt 600    x=600.00    y=2300.00
Punkt 800    x=800.00    y=2400.00
Punkt 1000    x=1000.00    y=2500.00
Punkt 1200    x=1200.00    y=2600.00
Punkt 1400    x=1400.00    y=2700.00
Punkt 1600    x=1600.00    y=2800.00
Punkt 1800    x=1800.00    y=2900.00
Punkt 2000    x=2000.00    y=3000.00
Punkt 2200    x=2200.00    y=3100.00
Punkt 2400    x=2400.00    y=3200.00
Punkt 2600    x=2600.00    y=3300.00
Punkt 2800    x=2800.00    y=3400.00
.
.
.
Punkt 9400    x=9400.00    y=6700.00
Punkt 9600    x=9600.00    y=6800.00
Punkt 9800    x=9800.00    y=6900.00
Punkt 10000    x=10000.00    y=7000.00

Wenn du in diese Rechnung zwei Punkte mit x und y Koordinaten einträgst, bekommst du alle Punkte auf einer Linie für x=0 bis x=10000.
Das sollte auch funktionieren wenn die Gerade fällt statt steigt und auch wenn der Anfangs oder Endpunkt in einem anderen Quadranten liegt.
Probier es mal aus!!

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kalenderwoche berechnen torsten_156 3 307 15.03.2017 15:38
Letzter Beitrag: Tommy56
  Prüfsumme berechnen Bus83 3 392 05.02.2017 12:43
Letzter Beitrag: Tommy56
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 1.427 03.07.2016 09:00
Letzter Beitrag: Binatone
  Korrektur - Schaltungsproblem Clubsport 0 537 18.09.2015 16:53
Letzter Beitrag: Clubsport
  Umwandlung von Koordinaten Matthias Wehrli 5 1.276 22.11.2014 17:32
Letzter Beitrag: itAxel
  Aluminium-Block, Wärmemenge berechnen Cray-1 9 2.729 31.10.2014 19:40
Letzter Beitrag: Cray-1
  H-Brücke für Anwendung berechnen Cray-1 20 4.169 14.10.2014 19:56
Letzter Beitrag: Cray-1

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste