Anforderungen an unser autonomes Auto

  1. Das Auto hält bei einer roten Ampel an und fährt bei einer grünen Ampel in die Kreuzung hinein.
  2. Das Auto muss erkennen, ob es Vorfahrt hat oder nicht. Insbesondere soll beim Linksabbiegen auf den entgegenkommenden Verkehr geachtet werden.
  3. Eine Karambolage soll vermieden werden, das heißt es sollen keine Autos übereinander fahren.
  4. Das Auto soll (entweder auf Befehl oder zufällig) an der Kreuzung links, rechts oder geradeaus fahren können.
  5. Ein zusätzliches Hinderniss (z.B. ein Fussgänger) soll erkannt werden.

Natürlich soll die Simulation so echt wie möglich aussehen, so soll das Auto rechtzeitig blinken, bevor es abbiegt. Eine weitere Aufgabe wäre das Längs- und Querparken möglichst realistisch darzustellen.

 

Objekte unter Scratch

Bei Scratch werden die Bestandteile als Objekte bezeichnet. Bei unserer Ampelanlage haben wir z.B. Ampeln, Autos und eine Steuerung, die meist im Bühnenbild als Skript versteckt wird.

Ein Objekt hat einen eigenen Namen: da wir ja 4 Ampeln haben ist dies sinnvoll.

Eine Ampel hat bestimmte Eigenschaften (auch Attribute  genannt), wie z.B der Zustand rot; rot-gelb, grün oder gelb. Den Zustand kann man auch mit Hilfe von Zahlen codieren. 

Die Ampel kann auch etwas (dies nennt man Methoden), wie z.B. den Zustand von rot auf grün wechseln. dies soll allerdings nicht zufällig geschehen, sondern durch eine Steuerung ausgelöst.

Ein Auto hat ebenfalls Attribute, z.B. x-Position, y- Position, Richtung. Diese drei Attribute sind in Scratch  schon vorgegeben, darüberhinaus können wir uns noch zustätzliche Attribute überlegen, wie z.B. den momentanen Bereich auf dem Bildschirm.

Als Methoden wäre Anhalten, Fahren, Links- oder Rechtsabbiegen denkbar, diese müssen wir selbst programmieren.

Die Ampeln

Jede der 4 Ampeln besteht aus 4 Kostümen (Darstellung für die Zustände "rot", "rot-gelb", "grün", "gelb"). Zu Beginn wird die Ampel in einen definierten Ausgangszustand gesetzt, d.h. es werden die xy-Koordinaten, der Zustand (grün oder rot) und auch die Richtung der Ampel definiert.  Je nachdem, in welchem Zustand sich die Ampel befindet, zeigt sie ein anderes Erscheinungsbild (=Kostüm).

Das Umschalten von rot (= Zustand 0) auf grün (=Zustand 2) wird durch Nachrichten gesteuert, die periodisch gesendet werden. Dieses Script ist auf der Bühne (Hintergrundobjekt) zu finden.

Das Auto

Das Auto bewegt sich über die Bühne und soll an einer roten Ampel anhalten und zufallsgesteuert geradeaus, rechts- oder linksabbiegen. Das Auto hat zwei bunte Kreise als Sensoren, die darauf achten sollen, dass kein anderes Auto im Weg ist.
Auf den folgenden Bilder wird erklärt, wie die das Auto es schafft, 

Abbiegen

files/Roboter/scratch/Aufgaben/Verkehr/AutoObjekt/AutoObjekt6.PNGDas Auto soll in alle Richtgungen fahren können. Die Richtung einer Gradzahl angegeben. Außerdem ist diese Richtung für das Auto über die Variable Richtung stets abrufbar.

Rechtsabbiegen:

Fahrtrichtung momentan Ziel
von unten nach oben --> nach rechts 0 90
von links nach rechts--> nach unten 90 180
von oben nach unten --> nach links 180 -90
von rechts nach links --> nach oben -90 0

Die Zielrichtung ist also immer 90 Grad größer, lediglich im dritten Fall, muss man statt 180 +90 =270, die Zielrichtung auf -90 stellen.

 

 

Es gibt noch viel zu tun!

Bis sich die Autos wirklich autonom auf unserer Kreuzung zurecht finden wird es noch viel zu tun geben. Natürlich können wir dies nur ansatzweise erledigen, denn der Aufwand wird durch zusätzliche Marken stark ansteigen und da unsere Animation im Browser abläuft werden Speicherprobleme die Animation zunehmend verlangsamen.