Skip to content →

SNATCH3R Weiterentwicklung

Nachdem wir uns die fehlenden Programmiertechniken angeeinget haben, können wir die weiteren Programme für den SNATCH3R entwickeln.

IR-Fernsteuerung suchen

SNATCH3R soll die IR-Fernsteuerung suchen, greifen, anheben und damit herum fahren. Alle diese Aufgaben sollen autonom ablaufen, ohne dass wir dem Roboter dabei helfen. Zuerst bauen wir aus dem IR-Sender eine Art Käfer, damit der Roboter ihn besser greifen und anheben kann. Anschliessend schauen wir uns nochmal die programmierten eigenen Blöcke an:

  • «Grab»: Greift Objekt und hebt an
  • «Reset»: Positioniert Greifer beim Programmstart
  • «Release»: Senkt Greifer ab und lässt Objekt los

Eigener Block: Search

Wir erinnern uns, wie der Roboter die Infrarotfernsteuerung findet: Bei einem negativen Richtungswert soll er nach links fahren und bei einem positiven Wert nach rechts. Da wir nun Datenleitungen und Variablen kennen, können wir ein anspruchsvolleres Programm erstellen. Das findet den Sender auch, wenn er hinter dem Roboter liegt.

Die Werte für die Signal-Richtung reichen von -25 bis 25.

Wir erstellen den eigenen Block «Search», mit dem der Roboter eine komplette Linksdrehung vollführt und dabei seine Umgebung absucht. Anschliessend dreht er soweit nach rechts bis zur Position, an der er den Sender entdeckt hat. Nun könnte der Roboter den Sensor finden, in dem er gerade aus fährt. Da die Sensormessungen nicht allzu genau sind, erstellen wir einen eigenen Block. So können wir bei Bedarf den Roboter noch einmal suchen lassen.

Sensormesswerte

Damit wir den Suchalgorithmus verstehen, müssen wir wissen, wie der Roboter die Richtung zum Sender misst, während er sich dreht.

Wenn sich der Roboter nach links dreht (blauer Pfeil), misst der Infrarotsensor ständig die Richtung zum Sender.

 

Um den Sender zu finden, suchen wir einen Wert, der annähernd aber nicht exakt Null ist. Messwerte, die genau 0 sind, ignorieren wir. Sie deuten darauf hin, dass der Sender sich genau hinter dem Roboter befindet.

Es spielt keine Rolle, ob die gemessenen Werte positiv oder negativ sind. -3 wie auch 3 sind gleich nah an 0. Wir suchen also nach dem kleinsten gemessenen Absolutwert, der nicht gleich 0 ist und speichern ihn.

Der Roboter muss aber auch wissen, wo der Wert gemessen wurde. Der Roboter verfolgt seine Position mithilfe des Drehsensors in Motor C. Der Wert ist zu Beginn 0 und wächst, während sich der Roboter nach links dreht. Jeder Motor muss sich um etwa 1800 Grad drehen, damit sich der Roboter einmal vollständig um seine eigene Achse dreht.

Da der Drehsensorwert des Zeitpunkts gespeichert wird, an dem der kleinste IR-Richtungswert gemessen wurde, kann der Roboter diese Stelle wieder finden. Er muss sich nur zurück drehen (nach rechts), bis der Motor C wieder bei der gespeicherten Position angekommen ist.

MRTZ erstellt das Flussdiagramm.

 

 

So erstellen wir das Programm und testen es. Dazu muss der IR-Sender ein Dauersignal abgeben. Nach erfolgreichem Test schreiben wir das vollständige Programm:

  • SNATCH3R sucht den IR-Käfer
  • fährt zu ihm hin
  • fasst und hebt ihn an
  • fährt zu einer anderen Stelle
  • setzt ihn dort wieder ab

Wir haben einen der kompliziertesten Roboter in diesem Buch fertig gestellt. Wir haben gelernt, dass verschiedene anspruchsvolle Bau- und Programmiertechniken kombiniert werden können, um einen wirklich selbständigen Roboter zu konstruieren.

Published in Mindstorms Allgemein

Comments

Schreiben Sie einen Kommentar

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