User manual
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
Text auf der seriellen Schnittstelle aus und setzt die Status LEDs, aber dafür ist kein
Platz mehr in dem Graphen oben gewesen. Der obige Graph soll auch nur den grund-
legenden Aufbau verdeutlichen.
Beispiel 10: Endliche Automaten Teil 2
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_05_Move_04_FSM2\
Datei: RP6Base_Move_04_FSM2.c
ACHTUNG: Der Roboter bewegt sich in diesem Beispielprogramm!
Nun probieren wir uns mal an einem Automaten bei dem sich der Roboter auch be-
wegt! Die Funktion des Programms ist einfach gehalten – zunächst blinkt Status LED5.
Damit will uns der Roboter signalisieren: „Drück mal bitte jemand auf den linken Bum-
per!“. Tut man das, fährt der RP6 etwa 15cm rückwärts und lässt dann die Status
LED2 blinken – was bedeuten soll, dass nun der rechte Bumper gedrückt werden
muss, damit etwas passiert. Tut man auch das, fährt der RP6 die 15cm wieder vor-
wärts und dieser Zyklus beginnt von neuem.
Die Struktur des Automaten ist eigentlich nichts besonderes – fast genau wie der Au-
tomat von oben der ständig „START Zustand1 Zustand2...“ ausgegeben hat. Nur ha-
ben wir nun ein paar weitere Bedingungen eingebaut. Beispielsweise warten wir in
zwei Zuständen mit der „isMovementComplete()“ Funktion darauf, dass der Roboter
den Bewegungsvorgang abschließt. Und noch eine kleine Besonderheit: wir führen in
zweien der Zustände ein einfaches Programmfragment aus. In diesem Fall benutzten
wir eine Stopwatch dazu eine LED alle 500ms umzuschalten. Dort könnte auch etwas
ganz anderes ausgeführt werden – z.B. das Lauflicht aus Beispiel 1.
Man könnte jetzt noch viele Seiten über Automaten und ähnliches füllen, aber wie ge-
sagt – das hier ist eine Bedienungsanleitung und kein Fachbuch. Also weiter mit den
Beispielprogrammen...
Beispiel 11: Verhaltensbasierter Roboter
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_05_Move_04\
Datei: RP6Base_Move_04.c
ACHTUNG: Der Roboter bewegt sich in diesem Beispielprogramm!
Worauf wir mit den Beispielen zu Automaten eigentlich hingearbeitet haben, findet
sich in diesem Beispielprogramm.
Hier wurde ein einfacher, verhaltensbasierter Roboter implementiert. Der Roboter hat
hier zwar nur zwei kleine Verhaltensweisen, aber es soll ja zunächst nicht zu kompli-
ziert werden. Wir basteln uns in den nächsten Programmen dann Schritt für Schritt ein
einfaches insektenähnliches Verhalten zusammen. Jetzt im ersten Schritt hat unser
„Insekt“ allerdings nur zwei kleine Fühler, die melden ob es eine Kollision gibt oder
nicht.
Die beiden Verhaltensweisen auf die wir uns zunächst beschränken werden, heissen
„Cruise“ und „Escape“. Das Verhalten Cruise gibt einfach nur den Befehl „fahre Vor-
wärts“. Es tut sonst nichts weiter. Da könnte man natürlich noch ein wenig mehr ein-
bauen und auch z.B. zeitgesteuert mal eine Kurve fahren, langsamer und schneller
- 119 -