9.4.3 xNN - Kurven fahren


In diesem Projekt soll der Roboter mit Hilfe eines Farbsensors die Farbe bestimmen über welche er fährt und abhängig von der Farbe seine Richtung ändern:

  • wenn er über die Farbe weiß fährt, soll er gerade aus fahren,

  • wenn er über die Farbe grün fährt, soll er eine Rechtskurve fahren,

  • wenn er über die Farbe gelb fährt, soll er eine Linkskurve fahren.


Kurvenfahrt mit zwei Rädern

Der Roboter hat kein Lenkrad und auch kein Lenkgestänge. Er hat zwei Räder, die sich unabhängig voneinander drehen können:

  • Wenn sich beide Räder genau gleich schnell drehen, dann fährt der Roboter geradeaus.

  • Wenn sich das rechte Rad schneller dreht als das linke, dann fährt der Roboter eine Linkskurve.

  • Wenn sich das linke Rad schneller dreht als das rechte, dann fährt der Roboter eine Rechtskurve.

Damit sich die beiden Räder unterschiedlich schnell drehen können, werden die beiden Motoren unabhängig voneinander gesteuert.


Programmierung ohne neuronales Netz

Der kleine Roboter soll sich bewegen und dabei Farben erkennen. Dazu muss er wie folgt konfiguriert werden:

  • er benötigt für die zwei Räder jeweils einen Motor,

  • er benötigt einen Farbsensor.

Das kann in der Roboterkonfiguration eingestellt werden:

  • Öffne folgenden Link: Open Roberta Lab

  • Klicke auf "ROBOTERKONFIGURATION XNNbasis" und verändere die Konfiguration des Roboters so, dass er nur noch die beiden Motoren und einen Farbsensor hat und der Farbsensor am Sensorport 1 angeschlossen ist:

  • Klicke auf "PROGRAMM NEPOprog", so dass der Programmiereditor geöffnet wird.

Damit beide Motoren einzeln gesteuert werden können, muss die Expertenansicht der Anweisungen eingeschaltet werden.

  • Klicke auf das Symbol "Stern 2"

  • Baue folgendes Programm. Die Anweisung "Setze Motor Port B Tempo %" findest du unter "Aktion - Bewegen" im Expertenmodus:
    • Wenn der Roboter über weiß fährt, drehen sich beide Motoren gleich schnell.
    • Wenn der Roboter über grün fährt, dreht sich das linke Rad (Port C) schneller.
    • Wenn der Roboter über gelb fährt, dreht sich das rechte Rad (Port B) schneller.


Programmierung mit einem neuronalen Netz

Der Programmablauf soll jetzt mit Hilfe eines einfachen neuronalen Netzes gesteuert werden:

  • Im Eingabe-Neuron (EN) wird der Wert 100 für die volle Geschwindigkeit (100 %) des Roboters gespeichert.

  • Abhängig von der Farbe sollen die Ausgabe-Neuronen (AN1 und AN2) unterschiedliche Werte annehmen, damit die Motoren sich verschieden drehen und der Roboter eine Kurve fährt. Dazu werden im Programmablauf die Gewichte G1 und G2 zwischen dem Eingabe-Neuron und den Ausgabe-Neuronen geändert.

Damit kann ein geeignetes neuronales Netz wie folgt geplant werden:

  • Klicke im Open Roberta Lab auf "NEURONALES NETZ NEPOnn":

  • Klicke auf das Neuron n1, ändere den Namen in EN für Eingabe-Neuron und klicke auf den Haken.

  • Klicke auf das Neuron n2, ändere den Namen in AN1 für Ausgabe-Neuron 1 und klicke auf den Haken.

  • Klicke oberhalb von AN1 auf das Plus-Symbol, so dass ein weiteres Ausgabe-Neuron eingefügt wird und ändere dessen Namen auf AN2.

Du solltest folgendes sehen:

  • Baue folgendes Programm:

Erklärung des Programms:

  • Verändere das Programm so, dass der kleine Roboter mehr Farben erkennen kann.

  • Passe abhängig von der Farbe das Kurvenverhalten an:

    • Sanfte Kurve
    • Scharfe Kurve

Lösungsvorschlag

Hier kannst du einen Lösungsvorschlag für das Projekt öffnen.

Den Lösungvorschlag solltest du aber nur dann öffnen, wenn du bereits selbst eine eigene Lösung entwickelt hast.


Falls der gerade gegebene Link nicht funktioniert, kann das Programm manuell geladen werden:

  • Klicke auf folgenden Download-Link für den Quellcode: k03_lv.xml

  • Klicke in Open-Roberta oben links auf "Bearbeiten", dann auf "importiere Programm ..." und lade das gerade heruntergeladene Programm "k03_lv.xml", das sich im Donwload-Ordner befinden sollte.

  • Klicke auf den Tab "PROGRAMM NEPOprog" und dann ganz rechts auf die Schaltfläche "SIM", damit sich das Simulator-Fenster öffnet.

  • Klicke im Simulationsfenster oben links solange auf das Bild-Symbol, bis der Simulationshintergrund weiß ist. Lösche das blaue Hindernis.

  • Klicke auf folgenden Link um die Umgebung für die Simulation herunterzuladen: k03_lv.json

  • Klicke im Simulationsfenster in der Symbolleiste auf "Simulationseinstellungen hochladen", wechsle in den "Downloads-Ordner", wähle die heruntergeladene Datei "k03_lv.json" und bestätige die Wahl.

  • Klicke in der Simulationsumgebung unten auf "Starte dein Programm in der Simulation".