Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

(Hexapods in der Kurve)
K (nur Rechtschreibung korr.)
 
(41 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
===Spinnenbeine===
+
==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.
  
Wenn man sich erstmal nicht damit zufriedengibt, einfach mit den Beinen irgendwie herumzurudern ("Hauptsache, es bewegt sich"), sind Beinbewegungen gar nicht so ohne.  
+
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.
  
Schauen wir uns mal die häufigste Variante an, das ist die echsen- oder spinnenartigen Bauformen.
+
==Spinnenbeine, Hexapods, Quadropods und Polypods==
  
====Ein Beinpaar im Querschnitt====
+
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.
  
http://www.roboternetz.de/wiki/uploads/Main/podleg2a.jpg
+
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.
 +
 
 +
 
 +
[[Bild:Podlegside.jpg]]
  
 
(Die Beinhaltung ist hier ganz allgemein gehalten, tatsächlich sind da große Unterschiede, je nach Bauart.)
 
(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
 
*Z ist die vertikale Drehachse des "Schulter"-Gelenks
*g zeigt das Gewicht der Spinne
 
 
*h ist die Höhe des Körpers über dem Boden
 
*h ist die Höhe des Körpers über dem Boden
 
*a ist der Oberschenkel
 
*a ist der Oberschenkel
 +
*β der Winkel des Oberschenkels
 +
*K ist das Knie
 
*b ist der Unterschenkel  
 
*b ist der Unterschenkel  
*α der Winkel im Knie (oder Ellenbogen)
+
*α der Winkel im Knie  
Das linke Bein ist in zwei Positionen dargestellt:
+
*F ist der Fußpunkt
*ganz angezogen
+
*γ der Winkel, den der Unterschenkel mit dem Boden einnimmt
*ganz gestreckt
+
*r ist der resultierende Radius des Fußpunktes um die Schulter
Auch das kann natürlich real ganz anders sein, aber irgendeinen Maximal- und einen Minimalwert gibt's immer
+
*M der Schwerpunkt unseres Roboters
 +
*br der Abstand des Schwerpunkts bis zur Schulter
  
 +
==Variante "Lynxmotion"==
 +
[[Bild:Podlynx.jpg]]
  
====Das linke Bein von oben====
+
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.
  
http://www.roboternetz.de/wiki/uploads/Main/podleg0b.jpg
+
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.
  
man findet die Werte aus der obigen Zeichnung
+
==Ein (linkes) Bein von oben==
 +
 
 +
[[Bild:Podlegtop.jpg]]
 +
 
 +
man findet die Werte aus der seitlichen Ansicht
 
*Z die vertikale Drehachse der Schulter (bleiben wir mal bei "Schulter")
 
*Z die vertikale Drehachse der Schulter (bleiben wir mal bei "Schulter")
*r<sup>min</sup> als kleinstmöglicher Radius
+
*r<sup>min</sup> als kleinstmöglicher Radius, den der Fußpunkt beschreiben kann (wenn der Unterschenkel maximal angezogen ist = kleines &alpha;)
*r<sup>max</sup> als größtmöglicher Radius
+
*r<sup>max</sup> als größtmöglicher Radius (= großes &alpha;)
*&alpha;<sup>max</sup> das ist der größtmöglich Drehwinkel des Schultergelenks
+
*&delta;<sup>max</sup> das ist der größtmögliche Drehwinkel des Schultergelenks
*s ist die größtmögliche Schrittweite (bei gerader Fortbewegung)
+
 
 +
schraffiert ist der Bereich, in dem sich die "Fußspitze" bewegen kann.
  
  schraffiert ist das Bereich, in dem sich die "Fußspitze" bewegen kann.
+
  '''s''' ist somit die größtmögliche Schrittweite (bei gerader Fortbewegung)
  
 
und dann noch
 
und dann noch
*M ist der Schwerpunkt des gesamten Fahrzeuges
+
*M ist der Schwerpunkt (oder Mittelpunkt) des gesamten Fahrzeuges
*b die halbe Breite
+
*br die halbe Breite
*f der Abstand des Beines von der Querachse
+
*f der Abstand dieses Beines von der Querachse
  
====Schritte====
+
==Beinbewegung==
Wie müßte nun ein einzelner Schritt erfolgen ? Würde man nun einfach mit dem Servo nach hinten drehen, bewegt sich die Fußspitze in einem Kreisbogen. Dadurch wird zwar ein Schritt gemacht, aber zwischendurch würde die Fußspitze nach außen wegrutschen. Irgendwie muß also das Bein unterwegs so verkürzt werden, daß sich die Fußspitze entlang der geraden Sehne '''s''' bewegt. Und dann muß noch die Winkelgeschwindigkeit des Schultergelenks angepaßt werden, da ja auch der Radius verändert wird.
+
===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.
  
=====Das linke (mittlere) Bein von oben, in einer Kurve=====
+
[[Bild:Podtopc.jpg]]
Um irgendein Fahrzeug in eine Kurve 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''' muß um den Mittelpunkt des Kurvenradius einen Bogen machen.
+
*P Kurven-Mittelpunkt
 +
*M Fahrzeugmittelpunkt
 +
*r<sub>fzg</sub>Radius des Fahrzeuges um P
  
http://www.roboternetz.de/wiki/uploads/Main/podleg2.jpg
+
==Anordnung der Beine==
 +
===Hexapods===
 +
[[Bild:Hextop1.jpg]]
 +
[[Bild: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.
  
====Die Kräfte====
+
==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:
  
=====Statisch, im Ruhezustand=====
+
===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.
  
Wir sehen hier ein Bein-Paar im Querschnitt mit drei verschiedenen "Kniewinkeln" gezeichnet. Die Vektoren sind so eingezeichnet, als würde der Boden die Spinne nach oben drücken wollen.  
+
Im linken Bild sind die Beine 2, 3 u. 6 gerade ganz vorne, die anderen Beine 1, 4 u. 5 ganz hinten
Die Verhältnisse des Unterschenkels hab ich einmal vernachlässigt, denn wenn er genau senkrecht steht und die auftretenden Kräfte vom Hebe-Servo genau kompensiert werden, muß er nur das Gewicht (anteilsmäßig) tragen, und das wirkt resultierend ja genau in seiner Längsrichtung
+
  
=====mit 90&deg;===== 
+
[[Bild:Podstp1.jpg]]
Das Servo muß hier die gößte Kraft aufwenden
+
[[Bild:Podstp2.jpg]]
  
http://www.roboternetz.de/wiki/uploads/Main/podvec2a.gif
+
Im rechten Bild sind 2, 3 u. 6 mit ihrer Bewegung fertig, sie haben das Fahrzeug fortbewegt, jetzt kehrt sich die Sache um
  
Abgesehen davon, daß hier das Servo also auch im Ruhezustand das volle Gewicht tragen muß, liegt auch der Schwerpunkt des gesamten Fahrzeuges sehr hoch, mit allen seinen Nachteilen.
+
'''Schwerpunkt ?'''
  
=====mit ca 10&deg;=====
+
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.
(0&deg; wären mit realen Gelenken kaum zu erreichen, und dann auch nur, wenn der Unterschenkel länger als der Oberschenkel ist)
+
http://www.roboternetz.de/wiki/uploads/Main/podvec2b.gif
+
  
Hier hängt das Gewicht fast vollständig am Kniegelenk, und der Schwerpunkt der Spinne ist sehr tief. Andererseits besteht aus dieser Haltung keine Möglichkeit, ein Bein zu heben.
+
Und man sieht, dass diese Fläche bemerkenswert klein ist.
Das Drehmoment der "Knie" nach innen muß durch (relativ geringen) Druck nach außen ausgeglichen werden
+
  
=====mit ca 45&deg;=====
+
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.
http://www.roboternetz.de/wiki/uploads/Main/podvec2.gif
+
  
erwartungsgemäß finden sich hier Mittelwerte
+
===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.
  
====Schrittfolgen====
 
  
http://www.roboternetz.de/wiki/uploads/Main/podtop.gif
+
===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. <br>
 +
Bein 2: D -> E  -> F <br>
 +
Bein 3: E -> F  --> A <br>
 +
Bein 4: B -> C  -> D <br>
 +
Bein 5: C -> D  -> E <br>
 +
Bein 6: F --> A -> B <br>
  
das ist die Ansicht eines Hexapods von oben. Es ist ja klar, daß wir nicht alle sechs Beine gleichzeitig bewegen können. Man braucht also eine Schrittfolge.
+
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.
  
=====geradeaus 3:3=====
+
==Hexapods in der Kurve==
  
Die folgende Methode wird gerne angewandt, weil sie recht einfach und auch rein mechanisch gemacht werden kann. Die Beine 1, 4 u. 5  bzw. 2, 3 u. 6  werden jeweils gleich angesteuert, phasenmäßig aber um 180 Grad versetzt.
+
Nochmals das Bild von oben
  
Im linken Bild sind die Beine 2, 3 u. 6 gerade ganz vorne, die anderen Beine 1, 4 u. 5 ganz hinten
+
[[Bild:Hextop1.jpg]]
  
http://www.roboternetz.de/wiki/uploads/Main/posstep1.gif
+
Die effektiven Beinwege '''s''' können auch wie die Räder von einem sechsrädrigen Fahrzeug verstanden werden.
http://www.roboternetz.de/wiki/uploads/Main/posstep2.gif
+
  
Im rechten Bild sind 2, 3 u. 6 mit ihrer Bewegung fertig, sie haben das Fahrzeug fortbewegt, jetzt kehrt sich die Sache um
+
Wenn wir nun eine Kurve beschreiben wollen, verkürzen wir die Wege '''s''' auf einer Seite, dadurch ergibt sich ein Drehpunkt '''P'''
  
======Schwerpunkt ?======
+
[[Bild:Hexcurv1.jpg]]
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 strichliert angedeutet sind. Teilweise überlappen sie sich, das ist das Bereich, wo sich der Schwerpunkt des ganzen Fahrzeuges befinden darf
+
  
Sind wir aber ganz pingelig, geht es gar nicht um den Schwerpunkt selbst, sondern um den Kräftevektor, der von diesem ausgeht und an irgendeiner Stelle "durch" den Boden geht.  
+
Was man sieht: Es muss eigentlich jedes Bein eine individuelle Bewegung machen.
 +
UND: jedes Bein muss seinen eigenen [[Spinnenbeine#Beinbewegung|Kurvenradius einhalten]]
  
Dieser Vektor ergibt sich aus der Summe aller Beschleunigungen, die am Fahrzeugschwerpunkt wirken,
 
** Schwerkraft (Steigung, Gefälle, Schräglage) und
 
** Antriebs-  u. Bremsbeschleunigung. 
 
Zeigt dieser Vektor NEBEN die oben genannte Fläche, kippt das Fahrzeug.
 
  
Und man sieht, daß diese Fläche bemerkenswert klein ist.  
+
===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.
  
=====Hexapods in der Kurve=====
+
Für Beine gibt es zwei völlig unterschiedliche Situationen:
 +
===Ohne Bodenhaftung===
 +
(Glatteis)
 +
[[Bild:Podvec1.jpg]]
  
Nochmals das Bild von oben
+
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.
  
http://www.roboternetz.de/wiki/uploads/Main/podtop.gif
+
===Mit Bodenhaftung===
 +
(Teppich)
 +
[[Bild:Podvec2.jpg]]
  
Die effektiven Beinwege '''s''' können auch wie die Räder von einem sechsrädrigen Fahrzeug verstanden werden.
+
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.  
  
Wenn wir nun eine Kurve beschreiben wollen, verkürzen wir die Wege '''s''' auf einer Seite, dadurch ergibt sich ein Drehpunkt '''P'''
+
''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. ''
  
http://www.roboternetz.de/wiki/uploads/Main/podcurv1.gif
+
 
 +
====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:  
 +
 
 +
[[Bild: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==
 +
* [[Servos]]
 +
 
 +
* [[Technische Mechanik ( Statik / Elastomechanik )]]
  
  
 
[[Kategorie:Mechanik]]
 
[[Kategorie:Mechanik]]
 
[[Kategorie:Praxis]]
 
[[Kategorie:Praxis]]
 +
 +
[http://www.lynxmotion.com Lynxmotion, Referenz für Roboter mit Beinen]

Aktuelle Version vom 24. November 2008, 15:24 Uhr

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


LiFePO4 Speicher Test