Rechner für zweigliedrige Roboterarme: Inverse Kinematik & Drehmoment

Berechnen Sie die Vorwärts- und inverse Kinematik eines ebenen zweigliedrigen Roboterarms, vergleichen Sie die Stellungen „Ellenbogen unten/oben“ und bestimmen Sie die statischen Gelenkmomente aus den Massen der Glieder und der Nutzlast.

#forward kinematics #inverse kinematics #payload #static torque #two-link arm #workspace

Dieser Rechner für zweigliedrige Roboterarme hilft Studierenden, Selbstbauern und Ingenieuren, die gewünschte Werkzeugposition mit den Gelenkwinkeln und statischen Belastungen eines ebenen Roboters zu verknüpfen. Er eignet sich zum Entwerfen eines kleinen Manipulators, zum Vergleichen von Gliedlängenverhältnissen, zum Überprüfen einer Robotikaufgabe oder zum Abschätzen der Schwerkraftbelastung, die ein Gelenk halten muss.

Wählen Sie Gelenkwinkel → Position, um einen Schulterwinkel und einen relativen Ellenbogenwinkel einzugeben. Der Schulterwinkel wird von der positiven horizontalen x-Richtung aus gemessen; positive Winkel verlaufen gegen den Uhrzeigersinn. Der Ellenbogenwinkel wird relativ zu Glied 1 gemessen: Bei null ist der Arm gestreckt. Drücken Sie ▶ neben dem Schulterwinkel, um den Arm zu drehen und die Änderungen der Endpunktposition und der vorzeichenbehafteten Haltemomente zu beobachten. Die Wiedergabe zeigt aufeinanderfolgende statische Stellungen; ihre Geschwindigkeit geht nicht in die Berechnung von Trägheitslasten ein.

Wählen Sie Zielposition → Gelenkwinkel, um die inverse Kinematik zu berechnen. Geben Sie die Zielkoordinaten relativ zur Schulter ein und wählen Sie „Ellenbogen unten“ oder „Ellenbogen oben“. Diese Bezeichnungen stehen hier für positive beziehungsweise negative relative Ellenbogenwinkel. Sie beschreiben die gegenüberliegenden Seiten des Strahls von der Schulter zum Ziel. Daher erscheint der Ellenbogen auf dem Bildschirm nicht immer unterhalb beziehungsweise oberhalb des Ziels. Der gestrichelt gezeichnete Arm und die Vergleichstabelle zeigen die jeweils andere Lösung.

Der schattierte Arbeitsraum zeigt den idealen geometrischen Erreichbarkeitsbereich ohne Gelenkbegrenzungen. Sein Außenradius entspricht der Summe der Gliedlängen, sein Innenradius dem Betrag ihrer Differenz. Ein Ziel außerhalb dieses Kreisrings ist nicht erreichbar. Bei vollständig gestrecktem oder vollständig gefaltetem Arm fallen die beiden Lösungszweige zusammen, und die Jacobi-Matrix der Position wird singulär. Sind gleich lange Glieder vollständig zur Schulter zurückgefaltet, sind unendlich viele Schulterwinkel möglich; die inverse Berechnung setzt dort vereinbarungsgemäß den Schulterwinkel null an.

Für die Berechnung der Gelenkmomente geben Sie die Masse jedes Glieds, dessen Schwerpunktlage als Anteil seiner Länge sowie die gemeinsame Masse von Werkzeug und Nutzlast an der Armspitze ein. Für ein homogenes Glied beträgt dieser Anteil 0,5. Der Arm liegt in einer vertikalen Ebene; die Schwerkraft wirkt nach unten. Die Momentenkarten zeigen die zum Halten der Stellung erforderlichen Antriebsmomente, positiv gegen den Uhrzeigersinn. Verwenden Sie zum Vergleichen der Gelenkmomentbeträge die Absolutwerte. Das Diagramm zeigt den Verlauf beim Durchlaufen des Schulterwinkelbereichs mit konstantem ausgewähltem Ellenbogenwinkel. Die Karten für die Arbeitsraummaxima zeigen die größten allein durch die Schwerkraft verursachten Momentbeträge ohne Gelenkbegrenzungen.

Mit dem Umschalter für metrische/US-Einheiten wählen Sie die Einheiten für Eingaben und Ergebnisse. Die Zeichnungsbeschriftungen behalten die ausdrücklich angegebenen SI-Einheiten bei. Die Ergebnisse berücksichtigen weder Beschleunigung, Reibung, Getriebeverluste, Motorerwärmung, Gelenkanschläge, Kollisionsfreiräume noch strukturelle Nachgiebigkeit. Sie bestimmen weder die erforderliche Motorbemessung noch eine sicher zulässige Nutzlast. Für einen Arm in einer horizontalen Ebene mit vertikalen Gelenkachsen ist ein anderes Schwerkraftmodell erforderlich. Die vollständige Dynamik, auch unter Verwendung von Identifikationsparametern des Panda, erfordert eine separate Mehrkörperberechnung.

So wird gerechnet

Die kinematische Konvention folgt Ben-Ari und Mondada, Elements of Robotics, §16.1–16.2, S. 269–273 der Druckausgabe (beigefügte PDF, S. 273–277). Die Schulter liegt im Ursprung; +x zeigt nach rechts, +y nach oben, und beide Gelenkkoordinaten sind gegen den Uhrzeigersinn positiv. Die absolute Orientierung von Glied 2 ist q1+q2q_1+q_2.

x=L1cos⁡q1+L2cos⁡(q1+q2),y=L1sin⁡q1+L2sin⁡(q1+q2).x=L_1cos q_1+L_2cos(q_1+q_2),qquad y=L_1sin q_1+L_2sin(q_1+q_2).

Für die inverse Kinematik liefert der Kosinussatz C2=(x2+y2−L12−L22)/(2L1L2)C_2=(x^2+y^2-L_1^2-L_2^2)/(2L_1L_2). Bei direkter Verwendung von arccos⁡C2arccos C_2 und L1+L2cos⁡q2L_1+L_2cos q_2 gehen nahe dem Ursprung bei gleich langen, gefalteten Gliedern signifikante Stellen verloren. Die Implementierung verwendet daher die algebraisch äquivalente, faktorisierte Halbwinkelkonstruktion, die hier aus demselben Dreieck hergeleitet wird:
hf=(rmax⁡−r)(rmax⁡+r),ho=(r−rmin⁡)(r+rmin⁡),h_f=sqrt{(r_{max}-r)(r_{max}+r)},qquad h_o=sqrt{(r-r_{min})(r+r_{min})},
q2=2atan2⁡(hf,ho),δ=atan2⁡ ⁣(hfho,r2+(L1−L2)rmax⁡),q_2=2operatorname{atan2}(h_f,h_o),qquad delta=operatorname{atan2}!left(h_fh_o,r^2+(L_1-L_2)r_{max}right),
q1,down=atan2⁡(y,x)−δ,q1,up=atan2⁡(y,x)+δ.q_{1,mathrm{down}}=operatorname{atan2}(y,x)-delta,qquad q_{1,mathrm{up}}=operatorname{atan2}(y,x)+delta.
Der Ellenbogenwinkel des oberen Lösungszweigs ist −q2-q_2. „Unten“ bezeichnet den Lösungszweig mit positivem q2q_2. Die beiden Quadratwurzeln in jedem Faktor werden getrennt ausgewertet; Beträge verhindern, dass Rundungsfehler oder zurückgewiesene Eingaben außerhalb des Arbeitsraums komplexe Werte erzeugen. Die separate Radiusbedingung weist unerreichbare Ziele weiterhin zurück. C2C_2 bleibt eine erläuternde Größe und wird nicht zur Winkelberechnung verwendet.

Schulterwinkel können sich um eine volle Umdrehung unterscheiden, ohne die Armstellung zu verändern. Nur am exakten Ursprung bei gleich langen, vollständig gefalteten Gliedern wird q1=0q_1=0 als beliebiger Repräsentant verwendet; für nahe gelegene Zielpositionen außerhalb des Ursprungs gilt diese Vereinbarung nicht. Von null verschiedene Zielabstände der inversen Kinematik unter 10−1010^{-10} der Gesamtreichweite werden zurückgewiesen, da die Darstellung der Winkel in Grad andernfalls die relative Genauigkeit begrenzen würde. Die Radiusbedingung lautet ∣L1−L2∣≤r≤L1+L2|L_1-L_2|le rle L_1+L_2, mit einer relativen Rundungstoleranz von 10−1210^{-12} an den Arbeitsraumgrenzen.

Die statischen Momente werden hier aus dem Momentengleichgewicht / der Ableitung der potenziellen Energie hergeleitet, im Einklang mit Mohammadijoo, Gravity Compensation, §9 und Aufgabe 5. Mit ci=fiLic_i=f_iL_i gilt:

A=g[m1c1+(m2+mp)L1],B=g(m2c2+mpL2),A=g[m_1c_1+(m_2+m_p)L_1],quad B=g(m_2c_2+m_pL_2),
T2=Bcos⁡(q1+q2),T1=Acos⁡q1+T2.T_2=Bcos(q_1+q_2),qquad T_1=Acos q_1+T_2.

Dies sind die Haltemomente der Antriebe; sie wirken den generalisierten Schwerkraftmomenten entgegen. Die maximalen Momentbeträge im unbeschränkten Arbeitsraum sind A+BA+B und BB. Beim gewählten Ellenbogenwinkel beträgt der Hüllwert des Schultermoments A2+B2+2ABcos⁡q2sqrt{A^2+B^2+2ABcos q_2}. Die Jacobi-Determinante für Winkel im Bogenmaß ist L1L2sin⁡q2L_1L_2sin q_2; der normierte Singularitätsindikator ist ∣sin⁡q2∣|sin q_2|.

Annahmen

Zwei starre, massebehaftete Glieder mit idealen Drehgelenken in einer vertikalen Ebene. Die Schwerkraft wirkt in −y-Richtung. Jeder Schwerpunkt liegt auf der Mittellinie seines Glieds zwischen dessen Gelenken; 0,5 entspricht einem homogenen Glied. Werkzeug und Nutzlast bilden eine Punktmasse am Ende von Glied 2. Die Gliedmassen dürfen angebaute Bauteile einschließen, sofern Gesamtmasse und gemeinsamer Schwerpunkt korrekt abgebildet werden. Es gibt keine Gelenkbegrenzungen oder Hindernisse. Beide Gelenkmomente werden am Gelenkabtrieb bestimmt; ein Getriebemodell ist nicht enthalten. Die Animation durchläuft geometrisch eine Folge statischer Gleichgewichtslagen und ist keine dynamische Simulation. Die Momentengleichungen und Arbeitsraumgrenzen werden hier hergeleitet; es werden keine Panda-Parameter in ein ebenes Modell eingesetzt.

Anwendungsbereich

Geeignet für ebene Reichweitenuntersuchungen und ausschließlich schwerkraftbedingte Gelenkbelastungen, mit positiven Gliedlängen, nichtnegativen Massen und nichtnegativer Schwerebeschleunigung sowie relativen Schwerpunktlagen zwischen 0 und 1. Die Warnung innerhalb von etwa 1,7° um eine kollineare Stellung verwendet ∣sin⁡q2∣<0.03|sin q_2|<0.03 als didaktischen Indikator, nicht als Grenzwert einer Robotersteuerung. Unerreichbare Ziele werden zurückgewiesen und nicht auf den Arbeitsraum projiziert. Am exakten Ursprung bei gleich langen, vollständig gefalteten Gliedern ist der inverse Schulterwinkel nicht eindeutig. Ein inverses Ziel außerhalb des Ursprungs muss mindestens 10⁻¹⁰ der Gesamtreichweite von der Schulter entfernt sein; kleinere Abstände werden mit einer Meldung zurückgewiesen, statt stillschweigend die Ursprungskonvention anzuwenden.

Die angezeigten maximalen Momentbeträge gelten für eine Geometrie ohne Gelenkbegrenzungen und müssen nicht bei einer vorgegebenen Zielposition auftreten. Vorzeichenbehaftete Momentanteile können sich in bestimmten Stellungen aufheben. Reibung, Beschleunigung, Corioliseffekte, Motor- und Getriebeträgheit, Wirkungsgrad, Umkehrspiel, Nachgiebigkeit, Werkzeugversätze, Kabelkräfte, Kontaktkräfte, thermische Beanspruchung im Betrieb und Sicherheitsreserven liegen außerhalb dieses Modells. Für die Motorauswahl müssen diese zusätzlichen Belastungen und die vom Hersteller angegebenen Dauermomentgrenzen berücksichtigt werden.

Gaz et al. (2019), DOI 10.1109/LRA.2019.2931248, behandelt die Identifikation des vollständigen Modells des Franka Panda mit sieben Gelenken (beigefügte PDF, S. 2–3 und 6–7); die Veröffentlichung dient als weiterführende Literatur für eine spätere Dynamikberechnung. Dieses Werkzeug berechnet keine Panda-Dynamik. Zeichnungen behalten ihre SI-Beschriftungen; numerische Eingaben, Ergebniskarten, Diagramme und Tabellen verwenden die Einheiteneinstellungen des Katalogs.

Quellen

  • Ben-Ari, M. and Mondada, F. (2018). Elements of Robotics, Chapter 16, Kinematics of a Robotic Manipulator, pp. 267–291. Open access. https://doi.org/10.1007/978-3-319-62533-1_16
  • Carnegie Mellon University, Robotics for Creative Practice (Fall 2026), two-link-ik.py, sample output. Angles use −y as zero, requiring a −90° shoulder-coordinate conversion. https://courses.ideate.cmu.edu/16-375/f2026/text/python/lecture-samples/two-link-ik.html
  • Mohammadijoo, A., Robot Control, Chapter 2 Lesson 3: Gravity Compensation, §9 and Problem 5. Published rounded gravity torque example. https://mohammadijoo.github.io/CaaT_Academy/Lectures/Robot_Control_Course/Chapter02/Lesson3.html
  • Gaz, C., Cognetti, M., Oliva, A., Giordano, P. R. and De Luca, A. (2019). Dynamic Identification of the Franka Emika Panda Robot With Retrieval of Feasible Parameters Using Penalty-Based Optimization. IEEE RA-L 4(4), 4147–4154. Further reading only. https://doi.org/10.1109/LRA.2019.2931248 ; open repository: https://mural.maynoothuniversity.ie/15321/1/MC_dynamic.pdf

Eingaben

EingabeSymbolEinheitVorgabe
Berechnen aussolve_fromGelenkwinkel → Position
Länge Schulter–EllenbogenL1m0.5
Länge Ellenbogen–WerkzeugL2m0.4
Schulterwinkel (▶ zum Drehen)
Gegen den Uhrzeigersinn ab der horizontalen +x-Richtung. Die Wiedergabe zeigt eine Folge statischer Stellungen.
q1deg25
Relativer Ellenbogenwinkel
Von Glied 1 zu Glied 2 gemessen, positiv gegen den Uhrzeigersinn. Bei null ist der Arm gestreckt.
q2deg70
Ziel xx_targetm0.55
Ziel yy_targetm0.25
Ellenbogenkonfiguration
Unten/oben bedeutet, dass der Ellenbogen rechts/links des gerichteten Strahls von der Schulter zum Ziel liegt, auf dem Bildschirm also nicht immer darunter/darüber.
branchEllenbogen unten (q₂ ≥ 0)
Masse von Glied 1
Berücksichtigen Sie starr an Glied 1 befestigte Bauteile. An der Schulter montierte Bauteile erzeugen kein zusätzliches Moment am Arm.
m1kg2
Masse von Glied 2m2kg1
Werkzeug- und Nutzlastmasse an der Armspitzempkg0.5
Glied 1: Schwerpunktabstand / Länge
Längenanteil ab der Schulter entlang von Glied 1. Für ein homogenes Glied verwenden Sie 0,5.
f10.5
Glied 2: Schwerpunktabstand / Länge
Längenanteil ab dem Ellenbogen entlang von Glied 2. Für ein homogenes Glied verwenden Sie 0,5.
f20.5
Schwerebeschleunigung
Wirkt senkrecht nach unten (−y). Die Gelenkachsen stehen senkrecht auf dieser vertikalen Ebene.
g0m/s^29.81

Ergebnisse

Mit den obigen Vorgabewerten liefert der Rechner:

ErgebnisWert
Werkzeug x0,4183 m
Werkzeug y0,6098 m
Schulterwinkel25 deg
Relativer Ellenbogenwinkel70 deg
Haltemoment der Schulter (mit Vorzeichen)10,7716 N·m
Haltemoment des Ellenbogens (mit Vorzeichen)-0,342 N·m
Max. |Schultermoment| im Arbeitsraum16,1865 N·m
Max. |Ellenbogenmoment| im Arbeitsraum3,924 N·m
Minimale Reichweite0,1 m
Maximale Reichweite0,9 m

Mit Quellen abgeglichen

Jeder Fall unten wurde mit diesem Rechner berechnet und stimmt mit dem Wert aus seiner Quelle überein (innerhalb der Toleranz, wo eine angegeben ist).

Vorwärtskinematik nach Lehrbuch: 60°, −30°

Quelle: Ben-Ari and Mondada (2018), Elements of Robotics §16.1, printed p. 269, attached p. 273. Worked example gives x=y=(1+sqrt(3))/2 for L1=L2=1, q1=60°, q2=−30°. The SI length scale is taken as metres; angles follow the book.

Eingaben: Länge Schulter–Ellenbogen = 1 m; Länge Ellenbogen–Werkzeug = 1 m; Schulterwinkel (▶ zum Drehen) = 60 deg; Relativer Ellenbogenwinkel = -30 deg; die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Werkzeug x1,366 m1,366 m
Werkzeug y1,366 m1,366 m

Inverse Kinematik nach Lehrbuch: beide Lösungszweige

Quelle: Ben-Ari and Mondada (2018), §16.2, printed pp. 272–273, attached pp. 276–277. Independently published solutions (30°,30°) and (60°,−30°) at x=y=(1+sqrt(3))/2 with unit link lengths.

Eingaben: Berechnen aus = Zielposition → Gelenkwinkel; Länge Schulter–Ellenbogen = 1 m; Länge Ellenbogen–Werkzeug = 1 m; Ziel x = 1,366 m; Ziel y = 1,366 m; die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Ellenbogen unten: Schulterwinkel30 deg30 deg
Ellenbogen unten: relativer Winkel30 deg30 deg
Ellenbogen oben: Schulterwinkel60 deg60 deg
Ellenbogen oben: relativer Winkel-30 deg-30 deg

CMU-Beispielausgabe für beide Ellenbogenkonfigurationen

Quelle: CMU two-link-ik.py sample output, https://courses.ideate.cmu.edu/16-375/f2026/text/python/lecture-samples/two-link-ik.html . Published angles [1.27724626,2.33921623] and [3.61646249,−2.33921623] radians for equal unit links at [0.5,0.6]. The source uses −y as shoulder zero, so converted shoulder = rad2deg(source shoulder)−90°; elbow is only converted to degrees. Tolerance accounts for printed rounding.

Eingaben: Berechnen aus = Zielposition → Gelenkwinkel; Länge Schulter–Ellenbogen = 1 m; Länge Ellenbogen–Werkzeug = 1 m; Ziel x = 0,5 m; Ziel y = 0,6 m; Ellenbogenkonfiguration = Ellenbogen oben (q₂ ≤ 0); die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Ellenbogen unten: Schulterwinkel-16,819 deg-16,819 deg
Ellenbogen unten: relativer Winkel134 deg134 deg
Ellenbogen oben: Schulterwinkel117,2 deg117,2 deg
Ellenbogen oben: relativer Winkel-134 deg-134 deg
Werkzeug x0,5 m0,5 m
Werkzeug y0,6 m0,6 m

Veröffentlichtes Rechenbeispiel: Schwerkraftkompensation am zweigliedrigen Arm

Quelle: Abolfazl Mohammadijoo, Gravity Compensation, Problem 5, https://mohammadijoo.github.io/CaaT_Academy/Lectures/Robot_Control_Course/Chapter02/Lesson3.html . Published example: m1=5kg, m2=3kg, L1=0.5m, L2=0.4m, q1=π/4, q2=π/6, g=9.81; gravity torques rounded to [20.6,1.5] N·m. Payload zero; uniform COM. Absolute tolerances reflect the one-decimal published rounding.

Eingaben: Schulterwinkel (▶ zum Drehen) = 45 deg; Relativer Ellenbogenwinkel = 30 deg; Masse von Glied 1 = 5 kg; Masse von Glied 2 = 3 kg; Werkzeug- und Nutzlastmasse an der Armspitze = 0 kg; die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Haltemoment der Schulter (mit Vorzeichen)20,6 ± 0,05 N·m20,599 N·m
Haltemoment des Ellenbogens (mit Vorzeichen)1,5 ± 0,05 N·m1,523 N·m

Review-Regressionstest: gleich lange Glieder, fast gefaltet, Ellenbogen unten

Quelle: Independent review of board subtask #794 supplied this target and incorrect/correct torque comparison (approximately 1.72e−8 and 4.91e−9 N*m). The tighter expectations are derived independently from equal-link isosceles symmetry: elbow x=r/2, cos(q1)=cos(q1+q2)=r/(2L)=1e−9, q1=−acos(r/(2L)), q2=2acos(r/(2L)). Direct weight moments give T1=17.1675e−9 and T2=4.905e−9 N*m. This is an analytical numerical-stability regression, not an additional published benchmark. Equal-link geometry is also described by Ben-Ari and Mondada §16.1, attached PDF p. 273.

Eingaben: Berechnen aus = Zielposition → Gelenkwinkel; Länge Ellenbogen–Werkzeug = 0,5 m; Ziel x = 1 × 10⁻⁹ m; Ziel y = 0 m; die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Schulterwinkel-90 deg-90 deg
Relativer Ellenbogenwinkel180 deg180 deg
Haltemoment der Schulter (mit Vorzeichen)1,717 × 10⁻⁸ N·m1,717 × 10⁻⁸ N·m
Haltemoment des Ellenbogens (mit Vorzeichen)4,905 × 10⁻⁹ N·m4,905 × 10⁻⁹ N·m

Review-Regressionstest: gleich lange Glieder, fast gefaltet, Ellenbogen oben

Quelle: Analytical mirrored branch of the independent review's near-folded regression for board subtask #794. Reflecting the down branch in the x axis reverses both joint angles while preserving all horizontal gravity lever arms, so holding torques remain 17.1675e−9 and 4.905e−9 N*m. Angles follow equal-link isosceles geometry, not the general half-angle implementation. This is a requested regression, not a published benchmark.

Eingaben: Berechnen aus = Zielposition → Gelenkwinkel; Länge Ellenbogen–Werkzeug = 0,5 m; Ziel x = 1 × 10⁻⁹ m; Ziel y = 0 m; Ellenbogenkonfiguration = Ellenbogen oben (q₂ ≤ 0); die übrigen wie oben.

ErgebnisQuelleDieser Rechner
Schulterwinkel90 deg90 deg
Relativer Ellenbogenwinkel-180 deg-180 deg
Haltemoment der Schulter (mit Vorzeichen)1,717 × 10⁻⁸ N·m1,717 × 10⁻⁸ N·m
Haltemoment des Ellenbogens (mit Vorzeichen)4,905 × 10⁻⁹ N·m4,905 × 10⁻⁹ N·m

Related Resources

Responses

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

L ading...