Themen:

AVR, avr-gcc, CAN, CPLD, Elektronik, Mikrocontroller, MSP430, PIC, Roboter, Schaltungen, Sensoren, Software, Testboards

ein vierbeiniger Laufroboter

Tags: Roboter
Stand: 5. Oktober 2006, 18:02
2 Kommentar(e)

Das Projekt ist ursprünglich einfach zu Spaß entstanden, wurde dann aber zum Jugend Forscht Projekt und später als Besondere Lernleistung im Abitur verwendet.

mein Stand beim Jufo Reginalwettbewerb Hessen Insgesamt war ich damit erstaunlich erfolgreich, bei Jugend Forscht 2004 bin ich damit unter dem Titel “Entwicklung eines autonomen, vierbeinigen Laufroboters mit verteilter Steuerung” im Bereich Technik Landessieger in Hessen geworden und war damit auf dem Bundeswettbewerb dabei. Die Ausarbeitung dazu gibt es weiter unten zum herunterladen.
Für die Besondere Lernleistung wurde dann insbesondere die schriftliche Ausarbeitung noch ein ganzes Stück erweitert da es die Begrenzung auf 14 Seiten aus dem Jufo-Wettbewerb nicht mehr gab. Insgesamt waren es am Ende über 50 Seiten die ich abgegeben habe ;-)

Konzept

der Viele Laufroboter werden von einem zentralen Computer gesteuert. Er liest die Sensordaten ein, verarbeitet sie und steuert die Mechanik an. Dies hat den großen Nachteil, dass der Prozessor sehr leistungsfähig sein muss, da er sehr viele Dinge auf einmal erledigen muss. Ich habe versucht, mich mit der Konstruktion meines Laufroboter mehr an dem dezentralen Prinzip der Steuerung in der Natur zu orientieren. Dies bedeutet, dass nicht ein zentraler Prozessor die Steuerung des Roboters übernimmt, sondern die Aufgaben auf mehrere Prozessoren verteilt werden.

Ein ganz klares Ziel bei der Konstruktion war, dass der Roboter auf jeden Fall autonom agieren können sollte, also nicht zum Beispiel über Funk an einen externen PC angeschlossen ist und von dort seine Befehle erhält.

Schichtenmodell

Die Aufteilung der Aufgaben im Laufroboter erfolgt nach einem Schichtenmodell. Dies soll eine größtmögliche Autonomie ermöglichen.

              ... weitere Ebenen ...
           (Navigation oder ähnliches)
                       |
             Koordination der Beine
               /                \
     Beinansteuerung       Sensoren zur Erfassung
      /      \                  der Umgebung
     /        \
Servos    Sensoren am Bein

Die unterste Schicht stellt die Bewegung der Beine dar. Pro Bein kommt ein Mikroprozessor zum Einsatz, der die Servos ansteuert und die Sensoren am Bein ausliest.
Die nächste Schicht besteht aus einem Mikroprozessor, der die Bewegung der Beine koordiniert und für die “globalen” Sensoren des Roboters (Entfernungsmesser, Ausrichtung im Raum, Neigung, evtl. Temperatur usw.) zuständig ist. Diese beiden Schichten sind für die Bewegung des Roboters zuständig. Weitere Schichten darüber könnten sich dann mit der Bewegungsplanung, Navigation usw. befassen.

Stößt eine Schicht auf ein Problem (zum Beispiel ein Hindernis oder einen Abgrund), so versucht zuerst nur der betroffene Mikroprozessor das Problem zu lösen. Ist dies nicht möglich (Bein findet keinen Boden mehr zum Aufsetzten, da der Roboter an einem Abgrund steht), so wird die nächst höhere Schicht informiert und diese versucht wiederum das Problem zu lösen usw. (der Roboter könnte sich kurz rückwärts bewegen und dann in eine andere Richtung weiterlaufen). Auf diese Weise werden zum Beispiel leichte Unebenheiten im Boden und ähnliches von den Beinprozessoren ausgeglichen, ohne dass die anderen Prozessoren etwas davon “bemerken” und sich so um andere Probleme kümmern können. Das System kann so sehr flexibel auf einen unebenen bzw. unbekannten Untergrund reagieren.

Mechanik

Die Mechanik orientiert sich an dem Aussehen von Echsen mit nach außen abgewinkelten Extremitäten. Es ist diesem Vorbild aber nur sehr frei nachempfunden und ergibt sich hauptsächlich aus dem benötigen Platz für die Servos und die Platinen.

Um ein flüssiges Laufen zu ermöglichen, entschied ich mich für eine Konstruktion mit drei Freiheitsgraden pro Bein. Es wäre auch möglich, die Beine nur mit zwei Freiheitsgeraden zu bauen, allerdings “schleifen” die Beine dann immer über den Boden, da der Bewegungsradius sehr eingeschränkt ist.

Elektronik

Die Elektronik teilt sich auf mehrere Platinen auf: zum einen pro Bein jeweils eine Beinsteuerung mit je einem Mikroprozessor, zum anderen eine Erweiterungsplatine, deren Mikroprozessor für die Koordination der Bewegung zuständig ist. Es ist mittlerweile schon die zweite Version der Elektronik, die sich auf dem Roboter befindet, da die erste noch nicht ausgereift genug war und ein paar Fehler enthielt.

Beinsteuerung

Beincontroller Parade Die Ansteuerung der Beine besteht aus zwei kleinen Platinen: Der Analogteil dient der Verstärkung und Filterung der Signale der Servostrommessung. Dies ist über einen Tiefpass realisiert, der das Signal glättet, und einen Operationsverstärker, der das Signal so verstärkt, dass es gut messbar ist.

Da die Servos mit einer anderen Spannung als der Mikrocontroller betrieben werden, war es notwendig, für die Signalleitung der Servos eine Pegelanpassung durchzuführen. Dazu wird mit einem zusätzlichen Transistor ein Open-Collector-Ausgang geschaffen. So wird außerdem verhindert, dass Störungen bei den Servos auf den Mikroprozessor übertragen werden können.

Außerdem befindet sich auf der Platine des Analogteils noch ein Stecker, über den der I2C Bus des Mikrocontroller abgegriffen wird. Daran könnte man zum Beispiel über einen I2C Portexpander später noch zusätzliche Sensoren am Bein anschließen.

Auf der anderen Platine ist der Mikrocontroller mit externer Beschaltung untergebracht. Weiterhin befinden sich noch ein Treiber für das RS485 Netzwerk und einige LEDs zur Statusanzeige mit auf der Platine. Der Stecker für das RS485 Netzwerk ist so ausgelegt, dass man mehrere dieser Platinen zusammenstecken kann, wenn man das möchte. Die Referenzspannung für den Analog/Digital Wandler kann über ein Potentiometer eingestellt werden.

Die Verbindung der beiden Platinen erfolgt über ein 10-poliges Flachbandkabel. Sie haben außerdem die gleiche Größe, so dass man sie sehr einfach stapeln kann.

Erweiterungsplatine

Die Erweitungsplatine enthält neben dem Mikroprozessor und dem RS485 Treiber noch Anschlüsse für ein LC-Display, auf dem Informationen über die aktuelle Situation angezeigt werden können, weiterhin für zwei weitere Servos und einen Infrarot Entfernungsmesser. Die beiden Servos und der Entfernungsmesser bilden den “Kopf” des Roboters. Der eingesetzte Entfernungsmesser ist ein GP2D120 von Sharp. Dieser liefert an einem analogen Ausgang eine Spannung, abhängig von der gemessenen Entfernung. Der GP2D120 kann Entfernung von 4 bis ca. 40 cm messen. Leider ist die ausgegebene Spannung nicht proportional für Entfernung, so dass dies im Mikrocontroller umgerechnet werden muss.
Um den gesamten Bereich vor dem Roboter erfassen zu können, wurde der GP2D120 auf zwei Servos montiert, welche ein Schwenken in zwei Achsen zulassen, so dass der gesamte Bereich abgetastet werden kann.

Auch auf dieser Platine befindet sich ein Anschluß für den I2C Bus, um weitere Sensoren anschließen zu können. An diesem Bus sind auch zwei I2C EEproms angeschlossen, die zum Speichern von Sensordaten oder ähnlichem gedacht sind, in der aktuellen Version aber noch nicht benutzt werden. Außerdem sind die nicht benutzten Pins des Mikrocontrollers auf Stiftleisten geführt worden, um das System später auch noch erweitern zu können.

Software

Die Software für die einzelnen Mikrocontroller wurde in C geschrieben. Die einzelnen Beincontroller empfangen per RS485 Beinpositionen und fahren diese daraufhin an. Die Erweiterungsplatine kümmert sich dann um die Schrittmusterberechnung und überprüft ständig ob sich der Mittelpunkt des Roboters innerhalb des Schwerpunktdreiecks, welches von den Beinen die auf dem Boden sind aufgespannt wird, befindet, also der Roboter stabil steht.

Bilder

Version 1:

Beincontroller Gesamtansicht (Seite) Rückansicht Seitenansicht des Laufroboters v1 Bild auf die Platinen

Version 2:

Ansicht von oben Sicht auf den Platinenstack Bild auf das Hinterteil des Laufroboters Blick auf die Seite Ansicht von vorne-links Gesamtansicht des Laufroboters v2

Downloads:

Jugend forscht - Entwicklung eines Laufroboters.pdf [1.41 MB]

Zum Anfang

Kommentare

# Vrings meinte am 10. März 2008, 21:05 dazu:

wow nicht schlecht?.ähm ich habe praktisch keine erfahrung in elektronik würde aber trotzdem gerne eine eigenen roboter bauen.kannst du mir da was empfehlen (bücher,adressen,etc.)???

# eisen meinte am 12. April 2008, 15:37 dazu:

link zum thema: » http://roboternetz.de/

Deine Meinung:

  • Textformatierung ist mit Markdown möglich.
  • HTML wird entfernt.
  • Kommentare werden moderiert und sind daher eventuell nicht sofort sichtbar.
  • Irrelevante Kommentare werden gelöscht.