Entwicklung einer Roboterplattform (Hexapod FTW-Hex2-1)

Entwicklung einer Roboterplattform (Hexapod FTW-Hex2-1)

Diplomand: Christian Bohrer (März 2006)

<< Bilder >> << Videos >>

Die Aufgabenstellung in dieser Diplomarbeit ist einen Roboter auf einer sechsbeinigen Basisplattform – Hexapod – zu entwickeln. Es müssen dafür die Sensoren ausgewählt werden und an den Prozessor angeschlossen werden. Anschließend sollte für diese Sensoren die Funktionen für eine Bibliothek entwickelt werden. Es sollte weiter die Ansteuerung für ein LC- Display erstellt werden, ebenso wie für die Taster, mit denen der Roboter gestartet oder gestoppt werden kann. Als Prozessor soll der XC167 der Firma Infineon verwendet werden, auf einer Phytec Basisplatine mit einem Entwicklungsboard. Ziel der Aufgabe ist, dass der Roboter autonom durch einen nicht vorgegebenen Parcours laufen kann. Der Roboter soll, falls er auf eine Wand trifft, dieser folgen, des Weiteren soll der Roboter auftretende Hindernisse in diesem Parcours ausweichen.

Der FTW-Hex2-1: Wie auch das erste Roboterprojekt von Jörg Fimpler wurde im Bezug auf die beiden betreuenden Professoren, Prof. Dr. Ing. Ferdinand Engelberger und Prof. Dr. Ing. Thomas Latzel (und Prof. Dr.-Ing. Wolfgang Göpfert) auf den Namen FTW-Hex2-1 getauft. Die Nummer bezeichnet den Robotertyp Hex2 als Extreme3 der Firma Lynxmotion und den Prototypen als Zählnummer 1. Diese Basisplattform kann die Grundbewegungsarten vorwärts und rückwärts laufen, auf der Stelle drehen und seitwärts laufen ausführen. Darüber hinaus können die Beine mechanisch justiert werden. Die Basisplattform wurde mit einem Sensorkopf erweitert, dieser kann in zwei Freiheitsgraden bewegt werden.

Die Steuerung: Für die Steuerung des Roboters wurde der Infineon XC161CJ Prozessor, der auf dem phyCore-XC161 der Firma Phytec Messtechnik aufgesetzt ist, verwendet. Der Prozessor ist auf dem phyCore Development Board HD200 verbaut, dass für eigene Schaltungsstrukturen mit einem Expansion Board erweitert wurde. Die Programmierung der Applikation erfolgte in der Programmiersprache C, und als Entwicklungsumgebung wurde die Software Keil µVision 3 benutzt. Als Debug-Schnittstelle diente das Keil Ulink Interface. Die Ansteuerung der Servos erfolgt über den SD21 Servocontroller, bei diesem können bis zu 21 Servo angeschlossen und angesteuert werden.

Der I2C-Bus Die gesamte Kommunikation mit den Sensoren und dem Servocontroller erfolgt über den I2C-Bus. Dieser Bus besteht aus mindestens zwei Leitungen, davon ist eine die Datenleitung und die andere ist die Taktleitung. Es wurden in diesem Projekt noch zusätzlich die +5V Spannungsversorungsleitung und die GND-Leitung zu den Sensoren und dem Servocontroller geführt. Über diese beiden Versorgungsleitungen wurden die Module versorgt. In diesem Projekt wurde ein Single-Masterbetrieb verwendet, der Prozessor ist dabei der Master auf dem I2C-Bus und die angeschlossenen Module werden als die Slaves bezeichnet.

Sensoren: Es wurden ausschließlich Ultraschallentfernungsmesser eingesetzt. Die verwendeten Ultraschallsensoren benötigen nur ein Kommando zum Starten der Entfernungsmessung und speichern die Entfernungen als Zentimeter, inches oder µs. In diesem Projekt werden die Entfernungen nur als Zentimeter verarbeitet. Am Kopf wurde ein SRF08 verwendet, dieser ist in der Lage Multiechos zu verarbeiten. Es werden alle ermittelten Entfernungen in den Registern abgespeichert. Des Weiteren kann dieser Sensor auch im ANN-Mode Messungen durchführen, dabei werden ebenfalls die Multiechos ausgewertet, allerdings wird dabei nicht die exakte Entfernung gespeichert, sondern in Abhängigkeit der Entfernung zum Hindernis ein Register auf ungleich Null gesetzt für ein Hindernis oder auf Null gesetzt für kein Hindernis. An den Seiten und Hinten am Roboter wurden SRF10 Sensoren befestigt, dieser sind in ihrer Bauart kleiner und besitzt nicht die Fähigkeit zur Auswertung von Multiechos. Die Entfernungen können bei beiden Sensoren im bereich von ca. 1 cm bis zu ca.6 m messen. Die Sensoren Messen ständig die Entfernungen, diese werden vom Mikrocontroller bewertet.

Die Wandverfolgung Der Roboter läuft solange geradeaus, bis er auf eine Wand oder ein anderes Hindernis tritt. Der Roboter führt dann eine ANN-Messung aus und dreht anschließend in die Richtung, in der das nächste Hindernis eine größere Entfernung hat. Ab diesem Zeitpunkt beginnt die eigentliche Wandverfolgung, das bedeutet, dass der Roboter entweder in einer Kurve läuft, ein Drehung um 5°, um 20° oder eine Drehung um 90° ausführt. Die Drehrichtung und der Drehwinkel hängen dabei von der Entfernung zur Wand ab, ist diese größer als die optimale Entfernung, dann dreht der Roboter zur Wand. Je größer die Abweichung von der optimalen Entfernung, desto größer der Drehwinkel. Nach einer Drehung zur Wandverfolgung läuft der Roboter einen Schritt geradeaus, und bewertet erst danach die Position zur Wand. Um den Roboter wurde ein Bereich gelegt, wenn in diesem Bereich ein Hindernis auftritt, dann muss der Roboter in die entgegengesetzte Richtung ausweichen. Dabei kommt auch der Seitwärtsgang zur Anwendung.

Christian Bohrer, März 2006