System-Failures.org

Elektronik. Mikrocontroller. Robotik.

Besondere Lernleistung W.A.R.C.

Nachdem ich nun endlich meine Homepage fertig gestellt habe, möchte ich euch meine Besondere Lernleistung, die ich im Rahmen des Abiturs gemacht habe, nicht vorenthalten.

The finished robot

Der Name W.A.R.C. steht für Wheeled Autonomous or Radio Controlled Robot und beschreibt die Grundfunktionen des Roboters.

Zielsetzung:
Das Ziel dieser Projektarbeit war es, ein sich autonom steuerndes Fahrzeug zu konstruieren, das unebenes Gelände befahren kann und dabei Kollisionen mit den sich ergebenden Hindernissen vermeidet.
Des Weiteren soll dieser Roboter per Funk ferngesteuert werden können, wobei er jedoch eine Teilautonomie behält, da er sich selbst stoppt, sobald der Benutzer ihn in einen Grenzbereich steuert, der für ihn eine Gefahr darstellt.

Das Chassis:

Elktronik installiert

Nachdem die Ziele nun gesteckt waren, konnte es mit der Entwicklung des Chassis losgehen. Nach vergeblicher Suche nach einen geeigneten Chassis, das mir als Basis dienen könnte, beschloss ich mein eigenes Chassis zu bauen. Das Chassis wurde komplett aus 2mm dickem Aluminium gebaut, um den Anforderungen eines sich ständig wechselnden Untergrunds gerecht zu werden. Um eine gewisse Federung im Roboter zu realisieren, wurde das Chassis in der Mitte getrennt und beide Hälften über eine Starrachse verbunden, sodass diese unabhängig voneinander gedreht werden konnten und so gewährleisten, dass auf jeder Seite immer mindestens ein Rad am Boden ist. Damit auch möglichst immer Traktion auf jeglichem Untergrund vorhanden ist, kamen extrabreite Reifen aus dem Modellbaubereich zum Einsatz.  Um die großen Reifen auch antreiben zu können, bekam jeder seinen eigenen Antriebsmotor, der an der Seitenwand des Chassis verschraubt wurde und über eine Starrachse mit dem Rad verbunden ist.

Die Elektronik:

Foxboard:

Foxboard

Das Foxboard dient mit seinem embedded Linux System als Hauptkommunikationsschnittstelle. So wurden an die beiden USB-Host Anschlüsse ein WLAN USB-Stick und eine Webcam angeschlossen, die dazu dienen, dem Benutzer das Steuern des Roboters per Funk zu ermöglichen, auch wenn dieser nicht im Sichtfeld des Benutzers ist. Das Foxboard kann auch zum Streamen der Webcambilder und der Telemetriedaten während der Fahrt genutzt werden, sodass der Operator auch während der Fahrt alles im Auge behalten kann. Um mit den Mikrocontrollern zu kommunizieren, die die Motoren steuern und die Sensoren auswerten, wurde das Foxboard per UART mit dem Hauptcontroller verbunden. Über eine kleine Serverapplication, die von mir in C geschrieben wurde, empfängt der Roboter-Daten und leitet diese an den Uart weiter oder sendet die Telemetriedaten, die er über die UART-Schnittstelle bekommt, an das Fernsteurungsinterface.

Hauptplatine:

Hauptsteuerung des Roboters

Die Hauptsteuerung wurde enwickelt, um die Sensoren, die in dem Roboter verbaut wurden, auszuwerten und daraus den nächsten Steuerbefehl, der an den Motorcontroller geschickt werden soll, zu errechnen. So wertet der Hauptcontroller 2 Ultraschallsensoren (vorne), 4 Infrarotsensoren (an den Seiten und hinten am Roboter) und einen Beschleunigungssensor (im Gehäuse) aus, um den bestmöglichen Fahrweg zu errechnen. Hier werden auch die Telemetriedaten an das Foxboard weitergegeben oder die per Funk übermittelten Steuerbefehle verwertet. Über den TWI-Bus des Atmega644, der auf dem Board zum Einsatz kommt, kommuniziert der Hauptcontroller mit der Motorsteuerung und steuert so die Fahrt des Roboters.

Motorsteuerung:

Motorsteuerung Layout

Die Motorsteuerung dient zur intelligenten Steuerung der vier Motoren. So bekommt der Atmega644, der auf dem Board verbaut ist, die Daten per TWI-Bus vom Hauptcontroller und steuert die Motoren an. Um immer möglichst den vollen Grip auf den Untergrund zu bringen, wertet der Controller die beiden inkrementellen Drehzahlgeber aus und steuert die Motoren so, dass ein Durchdrehen der Räder verhindert wird. Über die Auswertung der Drehzahlgeber bestimmt der Controller die Wegstrecke und korrigiert den Geradeauslauf des Roboters, um Drifts in eine Richtung zu verhindern. Sind die Daten zur Steuerung der Motoren errechnet, generiert der Controller das PWM Signal und schickt es per 10pol Kabel an die Motortreiber.

Motortreiber:

Endstufe für die Motoren

Die Motortreiber beinhalten die Leistungsstufe für die Motoren und sind per 10pol Kabel an die Motorsteuerung angeschlossen. Die Endstufe kann für jeden Motor bis zu 2 Ampere breitstellen, was für ausreichend Vorschub und Drehmoment für die Reifen sorgen sollte, sodass der Roboter auch in rauerem Terrain gut voran kommt.

Clientinterface:

Control for the robotJoystick Control

Die Software dient dazu dem Benutzer zu ermöglichen, während der Fahrt die Telemetriedaten und den Videostream der Roboters zu beobachten und bei Bedarf den Roboter auch fernzusteuern. Um dem Benutzer das Steuern des Roboters zu erleichtern, hat er die Möglichkeit, den Roboter per Joystick, Tastatur oder Maus zu steuern  und so mit ein bisschen Übung den Roboter auch schnell durch das Gelände zu bewegen.

Fazit:
Ich bin froh, die Chance für solch ein Projekt im Rahmen des Abiturs bekommen zu haben, da es eine Abwechslung aus dem tristen Alltag hinter Büchern (gerade in der Abi-Zeit) darstellte und kann es jedem, der die Möglichkeit geboten bekommt, nur empfehlen. Vorerst werde ich W.A.R.C. nicht weiterentwickeln, da ich momentan einen humanoiden Roboter plane.

Bei weiterem Interesse an diesem Projekt könnt ihr euch gerne hier meine komplette Ausarbeitung herunterladen.

Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Comment

*