Lego Mindstroms EV3: Linienfolger (Versuch)

[Thumbnail] Lego Mindstroms EV3: Linienfolger (Versuch)

Ich möchte euch ein kleines Projekt vorstellen, dass sich mit einem Lego Mindstroms gut realisieren lässt: Einen Linienfolger. In diesem Blogpost soll es zunächst um das Konzept gehen.

ACHTUNG: Diesen Ansatz zur Realisierung eines Linienfolgers habe ich verworfen! Dennoch habe ich eine andere Realisierungsmöglichkeit gefunden und umgesetzt: http://coder-tim.de/2017/10/lego-mindstorms-ev3-linienfolger/.
Falls du trotzdem Interesse an dem gescheiterten Ansatz hast… bitte 🙂

Wie wird die Linie wahrgenommen?

Jeder Legoroboter hat standartmäßig einen Farbsensor anbei. Diesen können wir verwenden, damit der Roboter die Linie erkennen kann. Bei mir ist diese rot. Damit ließe sich das Ganze erweitern, indem der Roboter besondere Dinge ausführt, wenn dieser zum Beispiel eine weiße Markierung erkennt.

Wie soll er der Linie folgen?

Das ist ein Problem. Denn wir können dem Roboter sagen, dass er geradeaus fahren soll, solange dieser die rote Farbe (die Linie) erkennt. Aber was ist, wenn er nun von der Linie herunter fährt, weil diese einen Knick (Kurve) macht? Dann muss er suchen. Nur wie?

Die einfachste Möglichkeit wäre im Kreis drehen. Dies ist jedoch nicht effektiv. Beispiel: Die Linie verläuft gerade aus. Der Roboter hingegen fährt in einem flachen Winkel von der Linie herunter. Soll er sich jetzt komplett im Kreis drehen? Besser wäre ein kurzes Korrigieren in die entsprechende Richtung. Folglich brauchen wir eine bestimmte Suchbewegung.

Darüber hinaus macht es Sinn, dass der Roboter sich merkt, in welche Richtung (rechts, links) die letzte Kurve verlaufen ist. Damit kann man das Korrigieren steuern.

Für einen „optimalen“ Linienfolger arbeitet man in der Regel mit einem weißem Untergrund und einer schwarzen Linie, denn dann kann der Mindstorms mit dem Wert des reflektierten Lichts rechnen und so entsprechend korrigieren. Somit lässt sich eine sehr flüssige Linienverfolgung erstellen. Allerdings fährt mein Roboter auf Laminat und seine Hauptaufgabe soll nicht sein, durch ein Labyrinth von Linien zu fahren, sondern er soll Sachen von A nach B bringen. Dies möchte ich über verschiedene Farben erreichen, wie bereits erwähnt.

Fazit

Der Roboter muss eine Suchbewegung ausführen. Dies kann erreicht werden, indem er sich zuerst nach links dreht, dann nach rechts und wieder nach links (usw.). Diese Dreherei muss allerdings größer bzw. länger werden, damit überhaupt etwas gefunden wird. Über das angesprochene Merken der Kurvenrichtung kann diese Drehbewegung (Suche) weiterhin optimiert werden, damit ggf. nur korrigiert wird.

Wie sich die Verfolgungsjagt programmieren lässt, siehst du im zweiten Teil dieser Reihe (sofern schon online).

 

Ich hoffe mein Reden war einigermaßen verständlich. 🙂 Senf dazugeben? Unten ⇓

Was denkst du über diesen Post?
  • Gut (3)
  • Hilfreich (0)
  • Nicht gut (2)
  • Lustig 😀 (0)

von | Kategorie: Programmierung
Schlagwörter: // //

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

8 + 2 =