EV3 Projektwoche Distanzmessung

grafische Programmiersprachen für den EV3/NXT.
NXT-G, Robolab, LabView und was noch so schön bunt ist...

Moderator: Moderatoren

mali80
Mindstormsfreund
Mindstormsfreund
Beiträge: 5
Registriert: 14. Jun 2016 08:58

EV3 Projektwoche Distanzmessung

Beitragvon mali80 » 20. Jun 2016 18:59

Hallo zusammen,

nächste Woche starte ich mein erstes Roboter-Projekt an einer Schule. Ich arbeite seit einiger Zeit in AGs mit den EV3s, sehr niederschwellig und ausschliesslich mit der grafischen Programmiervariante (mehr kann ich leider selbst nicht), aber mit großer Freude.

Ziel des Projekts: Die EV3-Fahrgestelle sollen eine großformatige Landkarte abfahren, jeweils von einem festen Startpunkt zu unterschiedlichen Zielen ( via Line-Follower und/ oder einfach Bewegungsprogrammierung).

Dabei soll die zurückgelegte Distanz mit dem Maßstab der Karte verrechnet werden und am Ende der Strecke auf dem Display ausgegeben werden.

Meine Frage nun - wie kann ich die zurückgelegte Distanz messen und ausgeben? Meine Ideen gingen in Richtung "Motorumdrehungen aufzeichnen“ … aber ich kann das leider nicht umsetzen.

Über Anregungen und Hilfestellungen freue ich mich sehr!

mali80
Mindstormsfreund
Mindstormsfreund
Beiträge: 5
Registriert: 14. Jun 2016 08:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon mali80 » 12. Jul 2016 06:47

Liebe Leute,

das Projekt hat unfassbar viel Spaß gemacht. Ich hätte nicht gedacht, dass man mit den EV3s in einer Hauptschulgruppe aus 5. und 6.-Klässlern so viel Erfolg haben kann.

Leider ist das Problem der Distanzmessung nicht gelöst worden. Wenn da jemand im Nachhinein noch eine Idee hat, gerne posten. Und wenn hier andere "Educator" unterwegs sind, die sich einen Austausch über den Einsatz von EV3s in Lerngruppen wünschen - jederzeit gerne.

Technicmaster0
Schreibt super viel
Schreibt super viel
Beiträge: 373
Registriert: 22. Dez 2010 12:36
Wohnort: In Berlin rechts abbiegen
Kontaktdaten:

Re: EV3 Projektwoche Distanzmessung

Beitragvon Technicmaster0 » 12. Jul 2016 10:36

Warum kannst du das mit den Motorumdrehungen nicht umsetzen? Das dürfte einfacher 3-Satz sein und die Umdrehungssensoren sind ja schon in den Motor eingebaut.

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 13. Jul 2016 20:44

Hallo Mali80,

nehmen wir mal den Idealfall: mathematisch exakt abrollende unendlich dünne Rädern ohne Reibung mit Line Follower Sensor genau in der Mitte zwischen den Radseiten. Dann sollte es reichen, die Umdrehungssensoren beider Motoren vor der Linienfahrt zurückzusetzen, am Ende auszulesen und dann den Mittelwert beider Werte festhalten (Teil-Kreiskurvenumfänge sind proportional zu deren Teilkurvenradien). Nun muss man noch testen, wieviel Motorumdrehungen bei echter Fahrt welcher tatsächlichen Strecke auf der Karte entsprechen. Dann kann man den gemessenen Mittelwert der gezählten Umdrehungen mit diesem Quotienten und dem Maßstab multiplizieren. Fertig ist die Entfernung.

In der Realität sind natürlich alle o.g. idealen Bedingungen nicht wirklich ideal und verändern sich oft auch nicht linear (soll heißen, Abweichungen zu den Idealbedingungen sind weder immer konstant noch ändern sie sich immer proportional zu leicht messbaren Kriterien). Räder sind nicht exakt gleich groß, haben "breite" Reifen und verformen sich. Bei kleinschrittigen Drehzahländerungen summieren sich Anlauf+Stopp-Fehler. All diese Abweichungen können kaum sichtbar werden oder aber bei vermehrten Kurvenfahrten (erst recht mit "groben" Rädern oder Ketten!) plötzlich auch stark ins Gewicht fallen. Als gute Näherung sollte dieser Ansatz aber reichen.

Wenn man es genauer wollte, müsste man immer wieder testen und unter Umständen für bessere Messungen verschiedene Korrekturfaktoren mit einbringen (beispielsweise könnte man die geringere Wegstrecke in dauernden Kurvenfahrten durch Drehzahländerungsfehler und erhöhtes "Radieren" bei den Reifen dadurch korrigieren, dass man permanent die Absolutbeträge der gemessenenen Differerenzen zwischen beiden Umdrehungszahlen addiert, deren Summe zum Schluss durch den schon ermittelten Mittelwert der Umdrehungen teilt und diesen Wert als Reibungskorrektur mit einfließen lässt).

Zu Deiner AG: Wieviele Schüler und EV3 sets sind das eigentlich so? Waren EV3s alle von der Schule gestellt? Wie gehst Du didaktisch vor, wenn es nur wenige EV3s und viele Teilnehmer gibt. Das stelle ich mir gar nicht so leicht vor :-) Finde ich aber sehr interessant.
Zuletzt geändert von elfulus am 24. Aug 2016 22:22, insgesamt 1-mal geändert.
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Technicmaster0
Schreibt super viel
Schreibt super viel
Beiträge: 373
Registriert: 22. Dez 2010 12:36
Wohnort: In Berlin rechts abbiegen
Kontaktdaten:

Re: EV3 Projektwoche Distanzmessung

Beitragvon Technicmaster0 » 13. Jul 2016 23:10

Genau diese Methode hat bei mir eigentlich immer genau genug funktioniert - zumindest wenn man die Gradzahl und nicht die Anzahl der Umdrehungen misst.

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5288
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3 Projektwoche Distanzmessung

Beitragvon HaWe » 14. Jul 2016 08:28

Du hast Recht, für Geradeausfahrt kein Problem, da ist einfach

Code: Alles auswählen

1 Radumdrehung = 360° = 360 Encoder Ticks

und

Code: Alles auswählen

Radumfang = Raddurchmesser mal Pi


Der Rest ist Dreisatz für die Abrollstrecke (sx) von 1° = 1 Encodertick:

Code: Alles auswählen

360°/ Radumfang = 1°/ sx


Code: Alles auswählen

sx =  Radumfang / 360 = (Raddurchmesser *Pi) / 360
(Abrollstrecke für 1 Grad)


Bei Kurvenfahrt wirds deutlich schiweriger, das ist Mittelstufen-Trigonometrie, das geht nur mit sin, cos und in schwierigeren Fällen zur Positionsberechnung mit atan bzw. atan2.
Stichwort-Suche: Odometrie.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 14. Jul 2016 08:39

Ahoi...
meines Erachtens reicht für die reine Ermittlung des zurückgelegten Weges bei mittigem Sensor mein geschildertes Verfahren der Mittelwerte der Umdrehungen (meinetwegen auch der Gradzahlen). Das ganze gilt auch für Kurven, da bei gleich großen Rädern und in hinreichend kleinen Teilabschnitten die beiden Teilkurven der jeweiligen Rädern auf konzentrischen Kreisen um einen virtuellen Mittelpunkt fahren. Komplizierter wird's erst, wenn man wirklich Odometrie betreiben will, also die möglichst genaue Bestimmung der aktuellen Position oder Luftliniendistanz anhand der Umdrehungssensoren. Dann kommt man ohne Winkelfunktionen nicht mehr aus.

edit: Ich würde für die Distanzmessung auch vorschlagen, bei der Ermittlung des Verhältnisses von Radumdrehung zu Abrollstrecke die theoretische Berechnung über den Kreisumfang nur als ersten Anhaltspunkt zu verstehen. Stattdessen sollte man die tatsächliche Abrollstrecke in einem hinreichend langen Testabschnitt bei bekannten Umdrehungen/Gradzahlen real ausmessen. Die Differenzen durch Radart, Radabstand, Reibung, Mechanik jedes einzelnen Modells haben in meiner Erfahrung einen nicht zu vernachlässigenden Einfluss.
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5288
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3 Projektwoche Distanzmessung

Beitragvon HaWe » 14. Jul 2016 10:27

nein, denn bei Kurvenfahrt ändert sich ja auch die Richtung:
Du kannst eine Strecke von ca. 3m fahren, aber wenn das - zufällig oder nicht - im Bogen erfolgt, bist du u.U. nach 3m wieder am Ausgangspunkt und hast letztendlich gar keine Entfernung zum Startpunkt zurückgelegt.

Ohne Richtungsbestimmung bei Kurvenfahrt gibt es also keine Strecke, sondern nur Unfug .
Hier hilft dann nur Trigonomtrie.

Ist es ausschließlich (ziemlich genau) geradeaus, ist es ok, wie bereits beschrieben.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 14. Jul 2016 14:58

Ahoi HaWe,

ich glaube wir reden noch aneinander vorbei :?

Es kommt doch darauf an, ob man die zurückgelegte Wegstrecke (das was bei einem Auto auf dem Kilometerzähler stehen würde) oder die Luftlinie vom Ausgangs- zum Zielort bzw. die genaue Positionierung relativ zum letzten Ort messen will.

In ersterem Fall (von dem ich glaube, dass das die Frage von Mali80 war) reicht meine Vorgehensweise. In letzterem Fall braucht man Trigonometrie, wie ich schon weiter oben zustimmte...

Da mali80 per Line Follower auf einer Landkarte einer Linie (z.B. Ländergrenze?) folgen und die "zurückgelegte Distanz" messen wollte, nehme ich an, dass er die absolvierte Wegstrecke und nicht den kürzesten Abstand von Start- zum Zielpunkt meinte. In diesem Fall braucht man keine fortgeschrittene Odometrie.

@mali80: Vielleicht kannst Du uns ja aufklären, welche Distanz Du genau messen wolltest...
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5288
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3 Projektwoche Distanzmessung

Beitragvon HaWe » 14. Jul 2016 15:28

ich glaube, wir reden schon über die gleiche Sache.
Nur mein Standpunkt ist: Die "zurückgelegte Strecke" ( z.B. zur nächsten Wand ) nutzt dir nur was, wenn sie gerade zurückgelegt wurde, es sei denn, du willst nur eine Art Kilometerzähler. Wenn du aber die Entfernung/Strecke zur nächsten Wand messen willst, dann musst du sie entweder gerade zurücklegen - oder zwischendurch gefahrene Kurven und Bögen und Halb- oder Vollkreise mit einrechnen.

ps,
Beispiel:
Du willst in einem Zimmer die in Fahrtrichtung geradeaus liegende Wand erreichen und die Strecke messen.
Du fährst entlang einer Zimmerwand (rechts) im gewissen Abstand.
Nun fährt dein Robot unbeabsichtigt einen leichten Rechtsbogen.
Du stößt jetzt an die rechte Längswand an anstatt an die vorraus liegende Wand.
Dein Robot merkt nur: er ist angestoßen, und "denkt":
"ich habe die Wand gegenüber erreicht, ich bin also fertig, schaun wir mal nach, wie weit sie entfernt war...."
Und da liegt eben der Hund begraben.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 14. Jul 2016 23:05

Es geht eben einfach darum, ob mali80s Frage auf den Kilometerzähler oder auf den Luftlinienabstand oder genaue Koordinatenveränderung abzielte. Was nutzt oder nicht, hängt ja von der Zielvorgabe ab. Wenn mali80 z.B. die Länge von Grenzlinien auf der Landkarte ermitteln wollte, ist die trigonometrische Zerlegung in Teilkurven schlicht Overkill.
Ansonsten ist aber die odometrische Fragestellung natürlich interessanter :-)
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Benutzeravatar
HaWe
Administrator
Administrator
Beiträge: 5288
Registriert: 11. Jan 2006 21:01
Wohnort: ein kleiner Planet in der Nähe von Beteigeuze

Re: EV3 Projektwoche Distanzmessung

Beitragvon HaWe » 15. Jul 2016 11:24

Ziel des Projekts: Die EV3-Fahrgestelle sollen eine großformatige Landkarte abfahren, jeweils von einem festen Startpunkt zu unterschiedlichen Zielen ( via Line-Follower und/ oder einfach Bewegungsprogrammierung).

Dabei soll die zurückgelegte Distanz mit dem Maßstab der Karte verrechnet werden und am Ende der Strecke auf dem Display ausgegeben werden.


Die "unterschiedlichen Ziele" sind es, die eine Beachtung und Berechnung von Kursänderungen erforderlich machen, auch "einfache Bewegungsprogrammierung" erfordert dies.
Nur wenn die reine gefahrene Räder-Abroll-Strecke gemessen werden soll, erübrigt sich das, und es reicht, den obigen Dreisatz zu verwenden. Dann kann man aber keinen gefahrenen Weg auf einer (virtuellen) Karte auf dem Display ausgeben.
Diskrete Teilstrecken kann man natürlich getreent betrachten, wenn sie ebenfalls stets gerade verlaufen und man ihre genauen Kartenpositionen kennt.
Gruß,
HaWe
±·≠≈²³αβγδε∂ζλμνπξφωΔΦ≡ΠΣΨΩ∫√∀∃∈∉∧∨¬⊂⊄∩∪∅∞®
NXT NXC SCHACHROBOTER: https://www.youtube.com/watch?v=Cv-yzuebC7E

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 15. Jul 2016 11:50

Warten wir mal, ob sich mali80 noch mal äußert, was er genau wollte. Für "unterschiedliche Ziele" könnte man dem Line-Follower auch einfach unterschiedliche Line-Farben präsentieren. Was "...einfach Bewegungssteuerung..." hier überhaupt meinte, ist mir nicht ganz klar.

Aber sei's drum. Für alle Fälle, die nicht die reine Abrolldistanz betreffen, stimme ich Dir ohnehin zu. Es inspiriert mich sogar momentan dazu, einen Algorithmus für diese Art Messung zu entwickeln. Ich weiss, da gibt es bestimmt schon hunderte Webseiten, auf denen man das fix und fertig findet. Aber ist ja langweilig, dass einfach nachzuschauen und dann bloß den von anderen gezeigten Rechen-Weg nachzuvollziehen :wink: ...
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 15. Jul 2016 17:55

Ahoi..
hab jetzt das meiste Formelwerk als Rohform fertig, mit dem man die Koordinaten bei dauernden Fahrten mit verschiedenen Kurven fortlaufend anhand der Umdrehungen/Abrolldistanzen der Einzelräder ermitteln könnte :-). In den Formeln taucht nur ein Sinus auf, der Rest sind eher Verhältnisse von Kreisbögen und Winkelermittlungen durch selbige.
Dabei fällt aber schnell auf, dass der "odometrische" Ansatz zur Positionsbestimmung doch sehr fehleranfällig ist. Zwangsläufig durch Radparameter, Reibung, Schlupf und vor allem Drehzahländerungen auftauchenden Fehler sind zum Teil wahrscheinlich nur schwierig zu kompensieren, summieren sich aber bei jeder Teilkurvenänderung. Damit würde bereits nach kurzer Zeit die tatsächliche Position sehr weit von der errechneten Postion abweichen (wie wenn man blind und taub herum laufend nach 5min schätzen wollte, wo man jetzt genau ist).
Wäre zwar also bestimmt eine nette Spielerei und auch als erste Vorabschätzung der Position/Entfernung ok, aber ohne dauernde Rekalibirierung durch "Umwelt-Sensoren" für kurvige Langfahrten kaum zu gebrauchen :-(.
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview

Benutzeravatar
elfulus
Schreibt ab und zu
Schreibt ab und zu
Beiträge: 30
Registriert: 24. Sep 2015 13:58

Re: EV3 Projektwoche Distanzmessung

Beitragvon elfulus » 15. Jul 2016 20:04

...als genauigkeitsverstärkender "Umwelt-Sensor", der noch das Wort "Sensor" rechtfertigt (also z.B. kein auf Satelliten gestütztes GPS), wäre meiner Meinung ein Kompass die beste Wahl, da man damit einen Initialwinkel besonders gut beibehalten könnte, der zur Berechnung der Bewegungsvektoren sehr hilfreich wäre. Gerade der Summationsfehler dieses Winkels ist einer der größten Störfaktoren. Gyrosensoren hingegen bringen m.E. nicht viel, weil sie zu ungenau und völlig selbstbezogen arbeiten. Jegliche Art von Entfernungssensoren sind natürlich immer gut, um die Güte der Position zu bestimmen. Allerdings ist die Korrektur der Postion nur anhand eindimensionaler ungenauer Entfernungsmessungen auch nicht trivial bis unmöglich.

Das Beste zur Positionserfassung im Raum ist m.E. immer noch der dauernde Vergleich einer internen Karte mit eingetragenen sensorisch eindeutig indentifizierbaren Orientierungspunkten in der realen Welt. Wie komplex diese Orientierungspunkte dann sein dürfen, hängt nur von Rechenleistung und Sensorik ab. Da würde sich ein EV3 vielleicht mit dem bloßen IR Rückstrahlen von vielen verteilten Katzenaugen und einer darauf basierenden Map zufrieden geben müssen.
Beste Grüße vom elfulus
____________________________
EV3home+Sound,Gyro,US,F1.04H
EdimaxEW-7811Un,EV3-Basic+Labview


Zurück zu „grafische Programmiersoftware“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

Lego Mindstorms EV3, NXT und RCX Forum : Haftungsauschluss