Aus RN-Wissen.de
Wechseln zu: Navigation, Suche


Einleitung und grundsätzliche Anmerkungen

Da z.Zt. immer mehr Hobbyrobotiker auf den Geschmack kommen sich einen Hexapod (oder andere Beinzahl) selbst zu bauen, möchte ich einige grundsätzliche Tipps geben und Hindernisse aufzeigen. Laufroboter gehören von der mechanischen Seite und der Programmierung zu den schwersten Hobbyroboterprojekten. Ein Hexabot ist demnach kein Roboter für: "so eben schnell", sondern will wohl durchdacht und geplant werden. In den meisten Hobbyanwendungen hat ein Hexabot einen Durchmesser von etwa 500mm und ein Gewicht zwischen 1kg und 3kg. Da mit höherem Gewicht die Kosten für passende Servos enorm ansteigen, durchbrechen Hexabots ab 3kg sehr schnell die 1000-€-Marke. Auch Hexabots mit einem Gewicht zwischen 1kg bis 2kg können leicht einige Hundert Euro kosten. Konsequenter Leichtbau ist also eine der Herausforderungen und zugleich ein wichtiger Tipp. Für die Energieversorgung empfehlen sich leichte Lithium-Polymer-Akkus; aus Kostengründen kann auch mit (deutlich schwereren) RC-Akkus gearbeitet werden. Falls Bleiakkus zum Einsatz kommen sollen, übersteigen im Regelfall die daraus resultierenden mechanischen Probleme weit den Nutzfaktor.

Bemerkung zu Laufrobotern mit deutlich mehr als 3kg: Sobald auf Modellbauservos verzichtet wird und Getriebemotoren zum Einsatz kommen sollen, gilt es einige Dinge besonders zu beachten. Ein Servo verfügt im allgemeinen über Getriebemotor, Potentiometer und eine integrierte Schaltung zur Ansteuerung. Wird nun nur ein Getriebemotor verwendet, müssen Potentiometer und integrierte Schaltung auf andere Weise bereitgestellt werden. Dies führt zu zusätzlichen Kosten. Des Weiteren sind die meisten Getriebemotoren auf Drehzahl ausgelegt und nicht auf Halten der Kräfte. Für ein Roboterbein sind die Bewegungswege sehr kurz und lediglich kleine Stellbewegung nötig, so dass die Motoren hauptsächlich auf Halten beansprucht werden. Bei ungünstiger Wahl der Motoren können sich diese erhitzen und dadurch zerstört werden. Auch sollte ab 5kg jede Achse bzw. jedes Knickelement kugelgelagert werden, um die Reibungsverluste zu minimieren. Bei 18 Achsen und somit 18-36 Kugellagern werden die Kosten enorm. Als Fazit kann somit gesagt werden: Eine vernünftige Lösung über 10kg ist mit enormen Kosten verbunden, daher ist sie als Hobbyprojekt nicht mehr geeignet.

Spinnenbeine, Hexapods, Quadropods und Polypods

Wenn man sich erstmal nicht damit zufriedengibt, einfach mit den Beinen irgendwie herumzurudern ("Hauptsache, es bewegt sich"), sind Beinbewegungen gar nicht so ohne. Die Profis verwenden hier für die exakte Berechnung der Beine das Verfahren der inversen Kinematik. Da es sich bei diesem Thema jedoch um sehr spezielle mathematische Verfahren und aufwändige Berechnungen handelt, beschränken wir uns auf die einfachere und etwas ungenauere Lösung mit fest programmierten Positionen für die einzelnen Schritte.

Schauen wir uns mal die häufigste Variante an, das sind die echsen- oder spinnenartigen Bauformen. Hauptmerkmal ist, dass die Beine seitlich am Körper angebracht sind.

Dabei können folgende Anordnungen und Beine unterschieden werden: Die auf dem Bild gezeigte Anordnung von 3 Beinen links so wie rechts ist die gängigste für Hexabots. Alternativ können die Beine auch in einem Sechseck angeordnet werden (siehe auch Bild weiter unten). Diese Anordnung hat den Vorteil, dass sie etwas wendiger ist, dies erkauft man sich durch eine etwas komplizierte Programmierung. Denn die Beinstellungen sind hier aufwändiger.

Roboter mit nur 4 Beinen werden gemeinhin als Quadropods bezeichnet. Roboter mit mehr als 6 Beinen werden als Polypod bezeichnet.

Ein Beinpaar im Querschnitt

Das hier dargestellte Bein hat 3 Gelenke (jedoch sind nur 2 sichtbar). Einmal ein Gelenk an der Schulter und eines am Knie, das nicht sichtbare ist in der Ansicht von oben dafür verantwortlich das Bein vor und zurück zu bewegen. Somit hat dieses Bein 3 Freiheitsgrade (1x Knie, 1x Schulter (auf und ab) und 1x Schulter (vor zurück); dies wird oft auch als 3DOF (Degree of Freedom) bezeichnet.


Podlegside.jpg

(Die Beinhaltung ist hier ganz allgemein gehalten, tatsächlich sind da große Unterschiede, je nach Bauart.)

  • Z ist die vertikale Drehachse des "Schulter"-Gelenks
  • h ist die Höhe des Körpers über dem Boden
  • a ist der Oberschenkel
  • β der Winkel des Oberschenkels
  • K ist das Knie
  • b ist der Unterschenkel
  • α der Winkel im Knie
  • F ist der Fußpunkt
  • γ der Winkel, den der Unterschenkel mit dem Boden einnimmt
  • r ist der resultierende Radius des Fußpunktes um die Schulter
  • M der Schwerpunkt unseres Roboters
  • br der Abstand des Schwerpunkts bis zur Schulter

Variante "Lynxmotion"

Podlynx.jpg

Hier ist der Oberschenkel gewissermaßen geteilt. Der vertikal bewegliche Teil davon ist sehr kurz und als Parallelogramm ausgeführt, um den Unterschenkel senkrecht halten zu können. Dieser kann aktiv nur gehoben und gesenkt werden, durch Federn hat er aber ein gewisses seitliches Spiel.

Der Zweck dieser Konstruktion ist es, das Schultergelenk mit nur einem Freiheitsgrad sehr robust ausführen zu können. Diese Variante der Beine hat also insgesamt nur 2 Freiheitsgrade (Schulter und heben, senken) und wird oft auch als DOF2 bezeichnet.

Ein (linkes) Bein von oben

Podlegtop.jpg

man findet die Werte aus der seitlichen Ansicht

  • Z die vertikale Drehachse der Schulter (bleiben wir mal bei "Schulter")
  • rmin als kleinstmöglicher Radius, den der Fußpunkt beschreiben kann (wenn der Unterschenkel maximal angezogen ist = kleines α)
  • rmax als größtmöglicher Radius (= großes α)
  • δmax das ist der größtmögliche Drehwinkel des Schultergelenks

schraffiert ist der Bereich, in dem sich die "Fußspitze" bewegen kann.

s ist somit die größtmögliche Schrittweite (bei gerader Fortbewegung)

und dann noch

  • M ist der Schwerpunkt (oder Mittelpunkt) des gesamten Fahrzeuges
  • br die halbe Breite
  • f der Abstand dieses Beines von der Querachse

Beinbewegung

Geradeaus

Wird das Bein nun für einen Schritt von vorne nach hinten gedreht (durch Drehung des "Schulter"-Servos), würde sich die Fußspitze in einem Kreisbogen bewegen. Unterwegs würde allerdings die Fußspitze nach außen wegrutschen. Am schlimmsten daran ist der Verlust der Haftreibung, von der noch zu sprechen ist.

Das Bein muß also unterwegs so verkürzt werden, daß sich die Fußspitze entlang der geraden Sehne s bewegt. Und dann muss noch die Winkelgeschwindigkeit des Schultergelenks angepasst werden, da ja auch der Radius kontinuierlich verändert wird.

In einer Kurve

Um irgendein Fahrzeug in eine Kurve nach rechts zu bringen, kann man z.B. die Räder links schneller drehen lassen. Sowas geht bei Beinen natürlich nicht. Hier muß die Schrittweite variiert werden. Und noch eine Tücke in der Kurve: Der Schreitweg s muss um den Kurvenradius-Mittelpunkt einen Bogen machen.

Podtopc.jpg

  • P Kurven-Mittelpunkt
  • M Fahrzeugmittelpunkt
  • rfzgRadius des Fahrzeuges um P

Anordnung der Beine

Hexapods

Hextop1.jpg Hextop2.jpg

das sind zwei Möglichkeiten, bei einem Hexpod die Beine anzuordnen. Die linke Variante hat den Vorteil, dass beim Geradeauslauf die Bewegungen der Beine identisch sein können, allerdings den Nachteil, dass der Rumpf länger sein muss (damit sich die Beine nicht in die Quere kommen). Die rechte Bauart hat diesen Nachteil nicht, aber dafür sind die erforderlichen Schrittbewegungen komplizierter.

Schrittfolge

Es ist ja klar, daß wir nicht alle sechs Beine gleichzeitig bewegen können. Man braucht also eine Schrittfolge. Hier können mehrere Varianten unterschieden werden. Da ein Spinnenroboter 6 Beine hat und zum Stehen 3 Stück (ein Dreieck bildend) ausreichen, gibt es: 3:3. Wir können aber auch nur 2 Beine bewegen und 4 auf dem Boden stehen lassen also 2:4 oder alternativ nur ein Bein bewegen und mit den restlichen 5 auf dem Boden stehen, also 5:1. In Kurven ist das Ganze noch etwas komplizierter, daher beschäftigen wir uns als erstes mit:

geradeaus 3:3

Die folgende Methode wird gerne angewandt, weil sie recht einfach und auch rein mechanisch gemacht werden kann, allerdings ist die Belastung für die Servos bei dieser Variante am grössten, denn nur 3 Beine teilen sich das gesamte Gewicht des Roboters. Die Beine 1, 4 u. 5 bzw. 2, 3 u. 6 werden jeweils gleich angesteuert, phasenmäßig aber um 180 Grad versetzt.

Im linken Bild sind die Beine 2, 3 u. 6 gerade ganz vorne, die anderen Beine 1, 4 u. 5 ganz hinten

Podstp1.jpg Podstp2.jpg

Im rechten Bild sind 2, 3 u. 6 mit ihrer Bewegung fertig, sie haben das Fahrzeug fortbewegt, jetzt kehrt sich die Sache um

Schwerpunkt ?

Unterstützt wird das ganze Gerät immer an den Fußpunkten der Beine. Verbindet man diese jeweils drei Punkte, ergeben sich zwei Dreiecke, die in den beiden Zeichnungen gestrichelt angedeutet sind. Teilweise überlappen sie sich, das ist der Bereich, wo sich der Schwerpunkt des ganzen Fahrzeuges befinden darf.

Und man sieht, dass diese Fläche bemerkenswert klein ist.

Für 3:3 laufen benötigt jedes Bein 2 Stellungen einmal vorn (A) und einmal hinten (B). Zuerst befinden sich die Beine 2, 3 u. 6 in Stellung A und werden auf dem Boden gleichzeitig in Stellung B bewegt. Dadurch schiebt sich der Roboter um das Stück A zu B nach vorn. Die Beine 1, 4 u. 5 bewegen sich in der selben Zeit von Stellung B nach A, jedoch ohne Bodenkontakt. Wird nun diese Sequenz, im Wechsel mit 1, 4 u. 5 am Boden und 2, 3 u. 6 in der Luft, zyklisch ausgeführt, hat man schon ein passables Laufprogramm für geradeaus.

geradeaus 2:4

Bei dieser Variante wird jeweils ein Beinpaar gleichzeitig bewegt. Diese sind günstigerweise: 1 und 4 (Paar 1); 3 und 6 (Paar 2); 2 und 5 (Paar 3) Jedes Beinpaar benötigt jedoch 3 Stellungen: A, B, C. Der Algorithmus teilt sich daher auch in drei Schritte auf: I, II und III.

Für Schritt I bringen wir Paar 1 in Stellung A, Paar 2 in Stellung C und Paar 3 in Stellung B. Für Schritt II bewegt sich Paar 1 in Stellung B, Paar 2 in Stellung A (diese Bewegung muss ohne Bodenkontakt erfolgen) und Paar 3 in Stellung C. Für Schritt III bewegt sich Paar 1 in Stellung C, Paar 2 in Stellung B und Paar 3 in Stellung A (auch wieder in der Luft) Ab hier wiederholt sich das Programm.

Fazit: Die Bewegungen sind etwas aufwendiger zu überlegen und zu programmieren, der Roboter gewinnt aber insgesamt an Stabilität und ist nur etwas langsamer als bei 3:3.


geradeaus 1:5

Diese Variante ist die langsamste, aber dafür am stabilsten, denn das Gewicht verteilt sich auf 5 Standbeine. Es werden 6 Stellungen pro Bein benötigt (A, B, C, D, E, F) und 6 Schritte. Es gibt mehrere Möglichkeiten der Startaufstellung; ich will hier eine kurz darstellen: Bein 1: A -> B -> C usw.
Bein 2: D -> E -> F
Bein 3: E -> F --> A
Bein 4: B -> C -> D
Bein 5: C -> D -> E
Bein 6: F --> A -> B

Die Pfeile geben an, in welche Stellung sich die Beine als nächstes bewegen, Bein 6 wird sich in die Stellung A bewegen. Dieser Rückstellvorgang muss immer in der Luft erfolgen. So wird sich der Roboter kontinuierlich vorwärts bewegen.

Hexapods in der Kurve

Nochmals das Bild von oben

Hextop1.jpg

Die effektiven Beinwege s können auch wie die Räder von einem sechsrädrigen Fahrzeug verstanden werden.

Wenn wir nun eine Kurve beschreiben wollen, verkürzen wir die Wege s auf einer Seite, dadurch ergibt sich ein Drehpunkt P

Hexcurv1.jpg

Was man sieht: Es muss eigentlich jedes Bein eine individuelle Bewegung machen. UND: jedes Bein muss seinen eigenen Kurvenradius einhalten


Hexapods drehen

Alternativ, etwas einfacher zu programmieren, weil die Stellungen von oben weiter verwendet werden können, ist das Panzer Modell. Konkret heisst es, die rechte Seite der Beine bewegt sich weiter nach oben, wärend die linke Seite der Beine sich nach unten bewegt. Dadurch wird der Roboter auf der Stelle gedreht. D.h. die Bewegungsrichtung der Beine ist insgesamt links zu rechts gegenläufig.

Kräfte am Spinnenbein

Da eine genaue Berechnung recht aufwendig ist und von vielen Faktoren zusätzlich stark beeinflusst wird (Dynamik und äußere Einflüsse), soll hier nur eine qualifizierende Betrachtung erfolgen.

Für Beine gibt es zwei völlig unterschiedliche Situationen:

Ohne Bodenhaftung

(Glatteis) Podvec1.jpg

Die Beine werden auseinandergedrückt. Das Kniegelenk muß versuchen, Ober- und Unterschenkel beisammenzuhalten, und in der Schulter muss das anteilige Gewicht des Fahrzeuges getragen werden. Durch die langen Hebel wird da, je nach Beinstellung, eine beachtliche Kraft erforderlich.

Mit Bodenhaftung

(Teppich) Podvec2.jpg

Ganz anders bei ausreichender Haftung: Da die Füße ja nicht wegrutschen, zieht das Gewicht des Fahrzeuges über die Oberschenkel die Knie nach innen. Hier müssen die Oberschenkel nach außen stemmen, um dem entgegenzuwirken.

Bitte beachten, die Beine können auch günstiger als auf dem Bild dargestellt, eingerichtet werden, wenn der Oberschenkel waagrecht zum Roboterkörper ist. Dann muss das Schultergelenk zwar das gesamte Gewicht des Roboters tragen, aber das Kniegelenk wird praktisch vollständig entlastet. Auch bei Eis als Untergrund würde ein Wegrutschen der Beine so verhindert werden.


Ein Rechenbeispiel

Des weiteren ist es wichtig zu erwähnen, dass je nach Bauart des Beines, also z.B. denjenigen, die sich weiter an der Seite des Bots befinden, enorme Hebelkräfte auftreten. Um die passenden Servos für seinen Roboter herauszusuchen, hier ein Rechenbeispiel:

Beine65.jpg

Gegeben sei "a" als größtmöglicher Abstand zum Körper (blau). Je nach Bauart des Roboters und der Wahl der Bewegung sind entweder 3 oder 4 oder gar 5 Beine gleichzeit am Boden. Auf diese wird das gesamte Gewicht des Roboters verteilt. Uns interessiert an dieser Stelle, wieviel Ncm im Schultergelenk notwendig sind, um den Roboter hochzudrücken. Aus der Zeichnung wird wieder deutlich, warum es sinnvoll ist, den Unterschenkel möglichst senkrecht zu halten und den Oberschenkel waagrecht. Unter dieser Positionierung muss das Kniegelenk nämlich kein Drehmoment übertragen.

Aber zurück zur Rechnung.

das Drehmoment in der Schulter wird wie folgt berechnet: (Gewicht /Anzahl der Beine)* Hebelarm = Drehmoment in der Schulter

in unserem Beispielt a=10cm; G=1kg--> 1kg * 9,81m/s² = 9,81N ~ 10N; 3Beine am Boden

(10N / 3)* 10cm = 33,3Ncm

Wir benötigen also in der Schulter Servos, welche mindestens 33,3Ncm schaffen, zur Sicherheit wären 35Ncm sinnvoller. Die Rechnung lässt sich natürlich auch so umstellen, dass anhand der Servos das Gesamtgewicht ermittelt werden kann:

(Drehmoment der Servos/Hebelarm)* Anzahl der Beine = Gewicht des Roboters


Dasselbe gilt natürlich auch für Quadropods. Nur muss man die Faktoren der Anzahl der Beine ändern

Siehe auch

Lynxmotion, Referenz für Roboter mit Beinen