Zum Inhalt springen

Mechanik: Beine, Koppelgetriebe, Lager und Passungen ​

Ein Laufroboter ist eine Reihe starrer Glieder, die durch Gelenke verbunden sind, und wie gut er läuft, hängt davon ab, wie diese Gelenke aufgebaut sind: was sich worauf dreht, wo die Motoren sitzen und wie viel Spiel jedes Gelenk zulässt. Diese Seite verfolgt ein Strido-Bein vom Körper bis zum Fuß und erklärt dann die Lager, die Gelenkgrenzen und warum Zehntelmillimeter bei gedruckten Teilen zählen.

In Strido

  • Kinematische Daten: hardware/kinematics.yaml (Gliederlängen, gemessen am Upstream-STEP), hardware/joint_limits.yaml (kollisionsfreie Grenzen), generiert in firmware/.../geometry_generated.h und packages/strido-core/src/strido/geometry.py.
  • Gedruckte Teile je Bein: femur, femur_servo_connector, left_shoulder / right_shoulder (Schulterkurbel), short_link, stiff_long_link (Strido, ersetzt die Upstream-long_link), inner_tibia, outer_tibia, foot_spacer, Servohalter und servo_mount_top_bracket, hip_bearing_pin.
  • Lager: 4 × 625ZZ, 4 × 6805-2RS, 8 × 633ZZ, 32 × Sinterbronze-Gleitlager 3 × 5 × 5 (Stücklistenzeilen bearing_625zz, bearing_6805, bearing_633zz, sleeve_3x5x5).
  • Verifikation: docs/verification/fits.md (Schrauben und Lagersitze), clearance.md (bewegte Teile), interference.md (statische Überlappungen), Toleranzregeln in hardware/verification/tolerances.yaml.

Freiheitsgrade ​

Jedes Bein hat drei Freiheitsgrade (DoF), je einen Servo:

GelenkBewegt das BeinServopositionAntrieb
Hüfte (Abduktion)seitwärts, um eine Achse entlang des Körpersim Körper, durch den inneren Schulterrahmendirekt, über ein 25T-Scheibenhorn
Oberschenkelvorwärts und rückwärtsin der Servohalterung des Beinmodulsdirekt, über ein 25T-Scheibenhorn in den Femur-Servoverbinder
Kniebeugt das Unterbeinin derselben Servohalterung, neben dem Oberschenkelservoindirekt, über eine Kurbel und zwei Koppeln

Drei DoF pro Bein sind das Minimum, um einen Fuß an jeden erreichbaren Punkt im 3D-Raum zu setzen. Vier Beine ergeben insgesamt 12 Servos, dasselbe Layout wie bei einem Unitree Go2. Deshalb kann Strido die Gelenknamen und Konventionen des Go2 verwenden.

Die kinematische Kette eines Beins ​

Diagramm wird gezeichnet…

Hüfte: beidseitig gelagert ​

Die Verzahnung des Hüftservos trägt eine Seite des Beinmoduls. Die andere Seite dreht sich auf einem 625ZZ-Lager im äußeren Schulterrahmen, auf dem gedruckten hip_bearing_pin und einer M3 × 10-Drehpunktschraube. Da die Achse an beiden Enden gelagert ist, werden das Gewicht des Beins und die Bodenkräfte nicht allein von den kleinen Abtriebslagern des Servos getragen, wie es bei einer einseitigen Auskragung der Fall wäre.

Oberschenkel: Direktantrieb ​

Der Oberschenkelservo dreht den Femur direkt. Das Aluminium-Scheibenhorn ist im femur_servo_connector eingeklemmt und mit 4 × M3 × 20 an den Femur geschraubt. Der Femur misst 130 mm von der Oberschenkelachse bis zum Knie.

Knie: Kurbel, Parallelogramm und Viergelenk ​

Säße der Knieservo am Knie, hingen 72 g Servo am Ende des Oberschenkels, wo sie jeder Schwingbewegung die meiste Trägheit hinzufügen. Strido hält den Knieservo oben im Beinmodul und überträgt seine Bewegung das Bein hinunter:

  1. Servoarm → Schulterkurbel (Parallelogramm). Das Armhorn des Knieservos (Radius 24,0 mm) treibt die kurze Koppel (28,28 mm) an. Die kurze Koppel treibt den ersten Arm der Schulterkurbel (Radius 24,0 mm) an, die sich auf einem 6805-2RS-Lager um die Oberschenkelachse dreht. Servowelle und Oberschenkelachse liegen 28,26 mm auseinander. Zwei gleiche Kurbeln, verbunden durch eine Koppel von der Länge ihres Abstands, bilden ein Parallelogramm: Die Schulterkurbel überträgt den Servowinkel exakt auf die Oberschenkelachse.
  2. Schulterkurbel → Tibia (Viergelenk). Der zweite Arm der Kurbel (Radius 26,92 mm) schiebt die lange Koppel (131 mm) zu einer 24-mm-Kurbel an der Tibia. Die Tibia dreht sich auf zwei 633ZZ-Lagern an der Knieachse. Zusammen mit dem Femur (130 mm) bildet dies ein Viergelenkgetriebe.

Da das Gestell des Viergelenks der Femur selbst ist und die Armlängen nicht gleich sind, hängt der Unterschenkelwinkel nichtlinear sowohl vom Kurbelwinkel als auch vom Oberschenkelwinkel ab. Eine Bewegung nur des Oberschenkels ändert den Kniewinkel. Die Firmware (servo_map.cpp, kinematics.cpp) und strido-core (leg.py) lösen das Koppelgetriebe daher exakt und rechnen jeden angeforderten Unterschenkelwinkel in einen Kniekurbelwinkel um.

Das Upstream-CAD von Yertle hat hier eine kleine Inkonsistenz: Das gezeichnete Knie (−98,8°) und der Winkel, bei dem sich das Koppelgetriebe tatsächlich schließt (−101,2°), unterscheiden sich, eine Abweichung der Koppellänge von 1,02 mm. Strido verwendet die gemessenen Längen, nicht die gezeichnete Pose (docs/design.md).

Übertragungswinkel ​

In einem Viergelenk ist der Übertragungswinkel der Winkel zwischen der Koppel (lange Koppel) und der Abtriebskurbel. Nahe 0° oder 180° schiebt die Koppel entlang der Kurbel, statt sie zu drehen. Die Kraftübertragung bricht dort zusammen, und das Koppelgetriebe kann klemmen oder durchschlagen. Der Durchlauf des Bewegungsbereichs verwirft jede Pose mit einem Übertragungswinkel unter 25° (transmission_min_deg).

Gelenkgrenzen ​

Die Grenzen stammen aus einem Kollisionsdurchlauf der vollständigen Baugruppe: jedes gedruckte Teil, Lager, Horn und Strido-Befestigungselement. Der Durchlauf läuft über Oberschenkel × Unterschenkel in einem 5°-Raster bei null Abduktion, gefolgt von einem Hüftdurchlauf in der Steh- und der Mittelpose. Eine weitere Regel hält jeden Servo innerhalb von ±85° um seine Montage-Neutralstellung, innerhalb seines Stellwegs von ±90°. Dies sind die generierten Werte (das Durchlaufergebnis in hardware/joint_limits.yaml, auf den Servostellweg begrenzt in codegen.py / geometry_generated.h; das vordere Oberschenkelminimum von −40° stammt aus dieser Begrenzung):

GelenkFLFRRLRR
Hüfte−17,5…50°−50…17,5°−17,5…45°−45…17,5°
Oberschenkel−40…125°−40…125°−15…125°−15…125°
Unterschenkel−150…−45°−150…−45°−150…−45°−150…−45°
Kniekurbel−2,5…75°−2,5…75°−2,5…75°−2,5…75°

Die vorderen Oberschenkel schwenken kollisionsfrei bis −45°, doch die ±85°-Stellwegregel um die 45°-Neutralstellung begrenzt sie auf −40°. Am FL-Bein kollidieren 566 der Rasterzellen Oberschenkel × Unterschenkel, 422 sind zulässig.

Die Firmware begrenzt jeden Befehl auf diese Grenzen und meldet clamped in /diagnostics, wenn sie eingreifen musste. Die Vorzeichenkonventionen folgen dem Go2: Oberschenkel positiv = Fuß nach hinten, Unterschenkel negativ = Knie gebeugt.

Lager ​

LagerGröße (Bohrung × AD × Breite)Anz.Wo
625ZZ5 × 16 × 5 mm4Hüftdrehpunkt, äußere Schulterrahmen
6805-2RS25 × 37 × 7 mm4Schulterkurbel, dreht sich um die Oberschenkelachse um den Femur-Servoverbinder
633ZZ3 × 13 × 5 mm8Knie, zwei pro Tibia (innere und äußere Hälfte)
Sinterbronze-Gleitlager3 × 5 × 5 mm32Koppelaugen, zwei pro Auge, 8 pro Bein

Suffixe: ZZ bedeutet beidseitig eine Metalldeckscheibe, die Staub abhält, aber nicht abdichtet. 2RS bedeutet beidseitig Gummidichtungen, die zusätzlich das Fett im Lager halten.

Kugellager oder Gleitlager. Ein Kugellager rollt, daher ist die Reibung gering und bleibt auch unter Last gering. Das passt zu den Gelenken, die das Gewicht des Roboters tragen und sich über große Winkel drehen. Ein Sinterbronze-Gleitlager ist ein poröses, ölgetränktes Gleitlager: winzig, günstig und gut geeignet für Koppelbolzen, die auf einer M3-Schraube nur um einige zehn Grad pendeln. Ein reines gedrucktes Loch würde schnell oval verschleißen; das Bronzelager bietet der Schraube eine harte, geschmierte Lauffläche.

Wie lange hält ein Kugellager? Der Rollkontakt ermüdet die Laufbahnen mit der Zeit. Die nominelle Lebensdauer (ISO 281) eines Kugellagers beträgt

L10=(CP)3million revolutions

wobei C die dynamische Tragzahl des Lagers aus dem Katalog ist, P die äquivalente Belastung, die es trägt, und L10 die Lebensdauer, die 90 % einer großen Lagercharge erreichen. Der Exponent 3 gilt für Kugellager (Rollenlager verwenden 10/3). Die dritte Potenz macht die Lebensdauer sehr lastempfindlich: Halbiert man P, verachtfacht sich die Lebensdauer. Als Rechenbeispiel nehmen wir die 3,07 kg des Roboters (docs/design.md) im Trab, bei dem zwei Beine das Gewicht tragen, sodass jedes Bein im Stillstand in der mittleren Standphase etwa P≈3.07kg×9.81m/s2/2≈15.1N trägt. Mit C≈1.14kN, einer typischen Katalogtragzahl für ein 625-Rillenkugellager (prüfen Sie das Datenblatt Ihres Lieferanten),

L10≈(1140N15.1N)3≈4.3×105 million revolutions

Dynamische Fußstöße betragen ein Mehrfaches der statischen Last, und die Gelenke pendeln nur, doch selbst eine zehnfache Last lässt noch Hunderte Millionen Umdrehungen zu. Nicht die Ermüdung begrenzt diese Lager, sondern Schmutz, ein wandernder Außenring oder ein gerissener gedruckter Sitz. Siehe Statik und Dynamik dazu, wie Gelenklasten entstehen.

Prüfen Sie die Passung jedes Lagers und Gleitlagers in seinem gedruckten Sitz vor der Montage (docs/assembly/README.md).

Passungen: Übermaß-, Übergangs- und Spielpassung ​

Eine Passung beschreibt, wie Welle und Bohrung mit gleichem Nennmaß zusammenpassen:

PassungBohrung im Vergleich zum TeilVerwendung
SpielpassungBohrung immer größerTeile, die gleiten oder sich drehen müssen: Schrauben durch Durchgangsbohrungen, Koppelaugen auf Bolzen
Übergangspassungetwa gleich großpositionierte Teile, die sich noch von Hand einschieben lassen
Übermaßpassung (Presspassung)Bohrung immer kleinerTeile, die sich in ihrem Sitz nie bewegen dürfen: Lageraußenringe, Gleitlager

Ein Lager muss sich auf seinen Kugeln drehen, nicht in seinem Sitz. Wandert der Außenring in einem lockeren Sitz, verschleißt der Kunststoff und das Gelenk bekommt Spiel. Ist der Sitz viel zu eng, reißt das gedruckte Teil, oder der Außenring wird so zusammengedrückt, dass das Lager klemmt.

Lagersitze bei Strido ​

tolerances.yaml erlaubt eine CAD-Sitzbohrung zwischen 0,15 mm unter und 0,30 mm über dem Außendurchmesser des Lagers. FDM-Drucker drucken Bohrungen etwa 0,15 mm zu klein, daher berücksichtigen diese CAD-Bänder das erwartete Schrumpfen bereits. Alle 32 Sitze bestehen (docs/verification/fits.md):

LagerADGemessene CAD-SitzeDifferenz zum AD
625ZZ (äußerer Schulterrahmen)16,0 mm16,17–16,21 mm+0,17 bis +0,21 mm
633ZZ (Tibiahälften)13,0 mm13,18–13,23 mm+0,18 bis +0,23 mm
6805-2RS (Schulterkurbel)37,0 mm36,92–36,95 mm−0,05 bis −0,08 mm
Gleitlager, kurze Koppel5,0 mm4,98–4,99 mmetwa −0,02 mm
Gleitlager, lange Koppel5,0 mm4,85–4,95 mm−0,05 bis −0,15 mm

Fällt ein gedruckter Sitz zu locker aus und dreht sich das Lager mit, behebt ein Tropfen Sekundenkleber (CA) das Problem (tolerances.yaml).

Schrauben in gedruckten Bohrungen ​

Dasselbe Schrumpfen betrifft jede Schraubenbohrung. Die Passungsprüfung erfasst 223 Schrauben: 0 Fehler, 137 Warnungen, jeweils mit einer Maßnahme.

  • Durchgangsbohrungen, die zu eng gedruckt werden: einmal mit einem 3,2-mm-Bohrer (ISO 273, feine Reihe für M3) durchbohren.
  • Gewindeformende Bohrungen, in denen die Schraube ihr eigenes Gewinde in den Kunststoff schneidet: Die gedruckte Vorbohrung sollte das 0,70–0,90-Fache des Schraubendurchmessers betragen. Darüber greift die Schraube schwach: Ziehen Sie sie mit Gefühl an, und wenn sie durchdreht, härten Sie die Vorbohrung mit einem Tropfen dünnflüssigem Sekundenkleber (CA) und drehen die Schraube erneut ein (anaerobe Schraubensicherung härtet auf Kunststoff nicht aus). Die Upstream-Servohalterungen liegen knapp über dem Band (ADR-009). Drucken Sie sie mit −0,15 mm X-Y-Lochkompensation oder härten Sie ihre Vorbohrungen mit CA.
  • Sicherungsmutter-Verbindungen im Koppelgetriebe: nur so weit anziehen, bis das Gelenk spielfrei ist. Die Koppeln müssen noch unter ihrem Eigengewicht schwingen (docs/assembly/README.md, Schritt 12).

Warum Toleranzen bei gedruckten Teilen so wichtig sind ​

tolerances.yaml geht davon aus, dass jede gedruckte Fläche um etwa 0,15 mm abweichen kann (0,4-mm-Düse, 0,2-mm-Schichten). Das klingt wenig, doch Beingelenke wirken als Hebel. Angenommen, das Oberschenkelgelenk hat hypothetisch 0,2 mm Spiel, gemessen 24 mm von seiner Achse (dem Radius der Kniekurbeln):

Δθ≈sr=0.2mm24mm≈0.0083rad≈0.48∘

Das ist die Kleinwinkelform der Bogenlänge, s=rΔθ. Der Fuß kann bis zu l1+l2=130mm+124mm=254mm von der Oberschenkelachse entfernt sein, daher verschiebt ihn derselbe Winkel um

Δx≈Δθ(l1+l2)≈0.0083×254mm≈2.1mm

Kleine Fehler in mehreren Gelenken summieren sich, und der Fuß setzt dann woanders auf, als die Kinematik erwartet hat. Dieselben Abweichungen können auch bewegte Teile streifen lassen. Die Prüfung des Bewegungsfreigangs wertet daher jeden Spalt unter 0,3 mm zwischen Teilen an verschiedenen Gliedern als Fehler (er könnte sich nach dem Druck schließen) und unter 1,0 mm als knapp (er kann bei einem rauen Druck streifen). Über 13 Posen hat Strido 0 Fehler und 4 knappe Paare: die Front- und Rückschale gegenüber den Armhörnern und Schulterkurbeln bei voller Hüftabduktion, 0,73–0,79 mm (docs/verification/clearance.md).

Selbsttest ​

  1. Warum sitzt der Knieservo im Beinmodul statt am Knie?
  2. Warum ändert eine Bewegung nur des Oberschenkelservos den Unterschenkelwinkel?
  3. Was geht schief, wenn ein 633ZZ-Sitz viel zu locker gedruckt wird? Und viel zu eng?
  4. Eine Schraubenbohrung für eine M3-Spielpassung wird mit 2,95 mm gedruckt. Was tun Sie?
  5. Schätzen Sie das Fußwackeln bei 0,1 mm radialem Spiel an der 24-mm-Tibiakurbel ab, wenn der Fuß 124 mm vom Knie entfernt ist.
Antworten
  1. Um Masse und Trägheit aus dem schwingenden Unterbein herauszuhalten, damit das Bein mit demselben Servodrehmoment schneller beschleunigen kann.
  2. Das Viergelenk, das die Tibia antreibt, ist am Femur verankert; eine Drehung des Femurs ändert daher die Geometrie des Koppelgetriebes und damit den Kniewinkel.
  3. Zu locker: Der Außenring dreht sich im Kunststoff, verschleißt den Sitz und erzeugt Spiel (Abhilfe mit einem Tropfen Sekundenkleber). Zu eng: Der Sitz reißt oder der zusammengedrückte Außenring lässt das Lager klemmen.
  4. Einmal mit einem 3,2-mm-Bohrer durchbohren (ISO 273, feine Durchgangsbohrung für M3).
  5. Δθ≈0.1/24≈0.0042rad; Δx≈0.0042×124mm≈0.5mm am Fuß.

Weiterführende Literatur ​

MIT-Lizenz. Mechanik abgeleitet von Yertle (Jerome Graves). CAD, Simulation und native Tests sind kein Hardware-Nachweis – siehe Verifikation.