Entwicklung einer Roboterplattform (FTW-TV3) Johnny5

Entwicklung einer Roboterplattform (FTW-TV3) Johnny5

Aufgabenstellung

Die Roboterplattform FTW TV-3 – Johnny5 wurde für neue Bachelorarbeiten beschafft. Als neue Variante für autonome Systeme soll der Roboter auch im Zuge der Öffentlichkeitsarbeit eingesetzt werden. Vorbild für das Aussehen des Roboters war der im Film „Nummer 5 lebt!“ gezeigte Militärroboter S-A-I-N-T Nummer 5. In dem Film gibt sich der Roboter den Namen „Johnny 5“, da er diesen in dem Lied „Who's Johnny“ gehört hat. Dieser wurde ebenfalls als Namen für den Roboter übernommen. Der Bausatz Johnny5 der Firma Lynxmotion bildet die mechanische Basis des Roboters. Die dort vorgesehenen elektrischen Module wurden durch eigene Module ersetzt und weitere Sensoren hinzugefügt, um die autonomen Funktionen des Roboters zu verbessern. Das Herzstück des Roboters bildet der Mikrocontroller LPC-2387 der Firma NXP. Die Programmierung des Prozessors wird in C mit der μVision4 - Entwicklungsumgebung der Firma Keil realisiert. Zur Übertragung zwischen Roboter und PC wird der ZigBee-Funkstandard verwendet. Zum Einsatz kommt das XBee-Modul der Firma Digi International Inc. Um Fehler des Programms feststellen zu können und um Datensätze zu speichern oder zu laden, ist eine SD-Karte vorgesehen.

Durchführung

Zu Beginn wurden mit Hilfe einer Testplatine für den Prozessor die einzelnen Peripherals programmiert und gestestet. Dabei wurde der I²C-Bus als Basis für die Kommunikation unter den Robotermodulen eingesetzt. Das XBee-Modul wird über eine UART-Schnittstelle angeschlossen. Hier wurden ein Servo-Controller zur Bewegung der Servomotoren, ein Ultraschallsensor für die Entfernungsmessung, zwei Pyrosensoren zur Detektion von Wärmequellen, ein Beschleunigungssensor zur Bestimmung der Lage des Fahrwerks sowie ein Display zur Ausgabe von Informationen an den Benutzer vorgesehen. Der Motortreiber wird direkt vom Prozessor über die PWM-Unit angesprochen. Die Zählimpulse der Lichtschranken werden auf die Counter der Timer-Units 0 und 1 des Prozessors gegeben. Die SD-Karte wird direkt über das SD-Karten-Interface des Prozessors angesprochen. Die vier Taster des Roboters sind an vier GPIO-Pins sowie über eine Logik an einen externen Interrupt – Pin des Prozessors angeschlossen. Die sich daraus ergebenden Ergebnisse flossen anschließen in die Erstellung der Platinen ein. Zu erst wurde die Rückenplatine mit dem Servo-Controller gefertigt. Auf die Platine wurde zentral der Servo-Controller aufgebracht. Dieser steuert alle Servos des Roboters. Über ein 14-adriges Flachbandkabel wird die Rückenplatine mit der Hauptplatine verbunden. Dieses führt neben den 5V – Versorgungsleitungen auch die Leitungen des I²C-Bus, die UART -Leitungen für das XBee-Modul, ein Leitung für das Busy-Signal des Servocontrollers, Leitungen für die Reset-Signale des XBee-Moduls und des Servo-Controllers, sowie eine 3,3V – Versorgungsleitung. Die Servomotoren werden über zwei 1,5mm² Kabel mit 5V versorgt. Zur Kontrolle der Spannungen sind zwei LED’s aufgebracht. Nach der Rückplatine wurde die Tasterplatine gefertigt. Diese dient als Träger für die vier Taster. Zur Kontrolle wurde eine grüne LED für die Spannungsversorgung sowie für jeden Taster eine rote LED zur Anzeige eines Tastendrucks aufgebracht. Die Tasterplatine wird über ein 10-adriges Flachbandkabel mit der Hauptplatine verbunden. Als letztes wurde die Hauptplatine gefertigt. Auf ihr sind zwei DC/DC-Konverter aufgebracht, welche die 14,4V der zwei in Reihe geschalteten 7,2V-Akkus auf 5V herunter wandeln. Der Motortreiber wird direkt an die 14,4V angeschlossen. Die DC/DC-Koverter sowie der Motortreiber sind über Feinsicherungen abgesichert. Der Stecker der Prozessorplatine befindet sich hinten auf der Hauptplatine. Da bei eingebauter Platine der Reset-Taster des Prozessors nicht mehr erreichbar ist, wurde dieser über einen zusätzlichen Taster nach außen geführt. Unter dem Prozessor befindet sich die Halterung der SD-Karte. Bei der Programmierung des Roboters stand die Programmierung mit dem Betriebssystem von Keil im Vordergrund. Das gesamte Programm des Roboter basiert auf mehreren System-Tasks welche die grundlegenden Funktionen des Roboters managen. Das XBee-Modul und die SD-Karte werden jeweils über einen eigenen Task gesteuert. Ein Tastendruck wird mittels einer Interrupt-Service-Routine abgefragt und als Event an den Systemtask weiter gegeben. Der System-Task steuert über die verschiedenen Events das Roboterprogramm. Der Benutzer kann bis zu drei eigene Programme mit den Tastern 1 bis 3 starten. Über ein Interface können diese leicht in das Roboterprogramm eingefügt werde. Zur Kontrolle der einzelnen Module kann über den Taster 4 ein Testmenü aufgerufen werden. Dieses beinhaltet einige einfache Testfunktionen um die Funktionen der angeschlossenen Module zu testen. Ein einfaches Programm zur autonomen Steuerung des Roboters sowie ein Programm zur Fernsteuerung wurden als Benutzerprogramme erstellt und gestestet. Um die über das XBee-Modul übertragenen Daten des Roboters auszuwerten und den Roboter fernsteuern zu können wurde in C# ein eigenes Steuerprogramm für den Roboter entwickelt.

Fazit

Im Bereich der SD-Karte könnten Bewegungsmuster auf der SD-Karte gespeichert und dynamisch vom Roboter zur Laufzeit geladen werden. Zusätzlich könnte die Ausgabe in die Log-Datei erfolgen. Im Bereich der Sensoren wären verschiedene Anwendungen unter Verwendung der Pyrosensoren möglich. Im vorderen Bereich des Roboters ist es mit einem Ultraschallsensor nur schwer kontrollierbar, ob sich die Ketten einem Hindernis nähern. Hier könnte durch weitere Ultraschallsensoren eine Verbesserung erzielt werden. Der Beschleunigungssensor könnte im Bereich des System-Tasks für eine Abschaltung des Motortreibers genutzt werden, sobald sich der Wert der Y-Achse 0 nähert. Zusätzlich könnte dann auch eine Funktion zum selbstständigen Aufrichten des Roboters implementiert werden.