Kinematik
Kinematik ist die Geometrie der Bewegung, ohne Kräfte. Die Vorwärtskinematik bildet Gelenkwinkel auf die Fußposition ab. Die inverse Kinematik bildet eine Fußposition zurück auf Gelenkwinkel ab. Die Jacobi-Matrix verknüpft Gelenkgeschwindigkeiten mit Fußgeschwindigkeiten. Diese Seite leitet alle drei für das Strido-Bein her, einschließlich seines Kniekoppelgetriebes.
In Strido
- Beinmodell:
packages/strido-core/src/strido/leg.py(foot_position,inverse_kinematics,calf_from_crank,crank_from_calf,transmission_angles), in C++ gespiegelt infirmware/strido_esp32s3/lib/strido_core/. - Maße:
hardware/kinematics.yaml(legs_linkage,legs_base), aus dem CAD gemessen. Grenzen:hardware/joint_limits.yaml. - Praxisleitfaden: Kinematik und Gaits zeigt, wie der Gait diese Funktionen nutzt.
Das Bein als kinematische Kette
Jedes Bein hat drei Drehgelenke (Docstring von leg.py; die Konventionen entsprechen dem Unitree Go2):
| Gelenk | Achse | Null | Positiv |
|---|---|---|---|
| Hüfte | Bein senkrecht | Fuß Richtung | |
| Oberschenkel | Femur gerade nach unten | Knie nach hinten | |
| Unterschenkel | Unterschenkel in Linie mit Femur | negativ = Knie gebeugt |
Aus hardware/kinematics.yaml (Bein vorne links, gerundet): Die Hüfte liegt bei base_link, die Beinebene liegt
Oberschenkel und Unterschenkel bewegen sich in einer senkrechten Beinebene. Das Hüftgelenk kippt diese Ebene um
Vorwärtskinematik
In der Beinebene zeige
Die Winkel addieren sich, weil
Als Nächstes die Hüftdrehung. Der Fuß im Hüft-Koordinatensystem vor der Abduktion ist
Das ist foot_position Zeile für Zeile. Zu den Konventionen der Koordinatensysteme siehe Koordinatensysteme und Rotationen.
Inverse Kinematik
Gegeben ist ein Fußziel
Hüftabduktion
Eine Drehung um
Der Fuß liegt unter der Hüfte, also nehmen wir die negative Wurzel:
Ist der Term unter der Wurzel nicht positiv, liegt das Ziel innerhalb des Zylinders mit Radius
Das ebene Zweigelenkproblem: Kosinussatz
Setzen Sie nun
Es gibt zwei Lösungen,
Der Oberschenkelwinkel ist die Richtung zum Fuß minus den Winkel, den der Unterschenkel im Dreieck hinzufügt:
Die Minuszeichen im ersten Term stammen aus der Konvention „Null = gerade nach unten, positiv = nach hinten“. Verwenden Sie atan2, nie atan, damit der Quadrant stimmt.
Das Knie-Viergelenk
Der Knieservo treibt
Bewegt man nur den Oberschenkel, bewegt sich auch das Knie. crank_from_calf invertiert das geometrisch. Das freie Ende der Kurbel liegt auf einem Kreis mit Radius circle_intersection gibt None zurück, wenn sich die Kreise nicht treffen. Dann lässt sich das Koppelgetriebe in dieser Pose nicht zusammensetzen.
Die Jacobi-Matrix
Die Jacobi-Matrix bildet Gelenkgeschwindigkeiten auf die Fußgeschwindigkeit ab,
Die vollständige
Für den Antrieb fügt die Kettenregel einen weiteren Faktor hinzu. Die Geschwindigkeit des Knieservos ist
Arbeitsraum und Singularitäten
Ohne Gelenkgrenzen erreicht der ebene Fuß einen Kreisring:
Gelenkgrenzen und Eigenkollisionen schränken das ein. hardware/joint_limits.yaml begrenzt
Eine Singularität ist eine Pose mit
Das Viergelenk hat eigene Singularitäten. Wenn die lange Koppel mit der Kurbel oder mit der Tibiakurbel fluchtet (Übertragungswinkel nahe transmission_angles misst beide Winkel, und joint_limits.yaml verlangt mindestens transmission_min_deg).
Durchgerechnetes Beispiel: die Standpose
Die Standpose setzt jeden Fuß senkrecht unter seine Hüfte, stand_pose(height=0.17) in strido/gait.py). Für das Bein vorne links gilt
Hüfte.
Knie. Mit
Oberschenkel.
Das stimmt mit stand_pose() überein, das für jedes Bein
Jacobi-Matrix. In dieser Pose gilt
Eine Oberschenkelgeschwindigkeit von
Koppelgetriebe. leg.py liefert einen Kurbelwinkel von
Selbsttest
- Warum lässt sich der Hüftwinkel vor und getrennt von Oberschenkel und Knie lösen?
- Was bedeutet
physikalisch? - Welches Gelenk bewegt den Fuß in der Standpose hauptsächlich nach vorne, und welches hauptsächlich senkrecht?
- Warum sind die Übertragungswinkel wichtig, selbst wenn
weit von null entfernt ist?
Antworten
- Die Hüftachse ist die
-Achse, und , ändern den Abstand des Fußes von ihr nie. Daher hängt nur von der ebenen Tiefe und dem festen Versatz ab. - Das Ziel ist weiter entfernt als
oder näher als , also existiert kein Dreieck. - Der Oberschenkel bewegt ihn nach vorne und hinten (
, ). Nur die Kniespalte hat eine senkrechte Komponente. - Sie beschreiben das Antriebs-Koppelgetriebe, nicht das Bein. Nahe
oder verliert der Knieservo Hebelwirkung und die Abbildung Kurbel–Knie wird schlecht konditioniert, egal was die Bein-Jacobi-Matrix sagt.
Weiterführende Literatur
- K. M. Lynch und F. C. Park, Modern Robotics, Cambridge University Press, 2017, Kap. 4–6 (Vorwärtskinematik, Geschwindigkeitskinematik, inverse Kinematik).
- B. Siciliano et al., Robotics: Modelling, Planning and Control, Springer, 2009, Kap. 2–3.
- R. L. Norton, Design of Machinery, McGraw-Hill, Kap. 4 (Lageanalyse von Viergelenken und Übertragungswinkel).
- Kinematik und Gaits in diesem Wiki.