Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Vorwärtskinematik eines Roboterarms

Nach dieser Lektion: Ich kann aus den Gliedlängen und den Gelenkwinkeln berechnen, wo die Hand eines Zwei-Gelenk-Arms liegt.

Lektion, 60 Min.2 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Wo liegt die Hand bei bekannten Winkeln?

Die Vorwärtskinematik berechnet aus den Gelenkwinkeln eines Roboterarms, wo seine Hand liegt. Sie ist die Grundrechnung der Robotik, denn jede Bewegung beginnt mit der Frage, wo der Arm gerade steht.

Hier rechnen wir sie für einen Arm mit zwei Gelenken in einer Ebene, wie ihn eine Fabrik zum Sortieren von Schrauben nutzen könnte. Es bleibt eine Simulation.

Am Ende dieser Lektion

Notiz

Ich kann aus den Gliedlängen und den Gelenkwinkeln berechnen, wo die Hand eines Zwei-Gelenk-Arms liegt.

Schlüsselwörter

BegriffWas er bedeutet
Gliedein starres Stück des Arms zwischen zwei Gelenken
Gelenkdie Stelle, an der sich ein Glied dreht
Gelenkwinkelwie weit ein Gelenk gedreht ist, in Grad
Handdas freie Ende des Arms, das greift oder arbeitet
Vorwärtskinematikaus den Winkeln die Lage der Hand berechnen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Der Ellbogen liegt eine Gliedlänge vom Ursprung entfernt

Das erste Gelenk sitzt im Ursprung, an der Schulter. Das erste Glied ist 30 Zentimeter lang. Es zeigt in die Richtung des ersten Winkels.

Der Ellbogen ist das Ende dieses Gliedes. Seine Koordinaten sind 30 mal cos(w1) und 30 mal sin(w1). Das ist die Drehung aus der letzten Lektion, angewendet auf den Punkt (30, 0).

Beispiel: der Ellbogen bei drei ersten Winkeln

Erster WinkelEllbogen (x, y)Wohin zeigt das Glied?
0 Grad(30, 0)nach rechts
90 Grad(0, 30)nach oben
180 Grad(-30, 0)nach links

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das zweite Glied dreht sich mit beiden Winkeln

Das zweite Glied sitzt am Ellbogen. Sein Winkel w2 ist relativ zum ersten Glied gemessen. Die Richtung in der Ebene ist also die Summe w1 plus w2.

Die Hand liegt am Ende des zweiten Gliedes. Dort ist x gleich 30 mal cos(w1) plus 20 mal cos(w1 plus w2). Und y ist gleich 30 mal sin(w1) plus 20 mal sin(w1 plus w2).

Beispiel: Glieder von 30 und 20 Zentimetern

w1w2Hand (x, y)Form des Arms
00(50, 0)gestreckt nach rechts
090(30, 20)Glied 2 zeigt nach oben
900(0, 50)gestreckt nach oben
90-90(20, 30)Glied 2 zeigt nach rechts
9090(-20, 30)Glied 2 zeigt nach links

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Hand bei 90 und minus 90 Grad

Befehl
docker exec jupyter python3 -c "import numpy as np; a = np.radians(90); b = np.radians(-90); print(np.round(30 * np.cos(a) + 20 * np.cos(a + b), 6), np.round(30 * np.sin(a) + 20 * np.sin(a + b), 6))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Hand bei 60 und minus 60 Grad

Befehl
docker exec jupyter python3 -c "import numpy as np; a = np.radians(60); b = np.radians(-60); print(np.round(30 * np.cos(a) + 20 * np.cos(a + b), 6), np.round(30 * np.sin(a) + 20 * np.sin(a + b), 6))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Hand erreicht nur einen Ring

Sind beide Glieder gestreckt, liegt die Hand am weitesten entfernt: 30 plus 20, also 50 Zentimeter. Ist der Arm ganz zurückgeklappt, ist es am wenigsten: 30 minus 20, also 10 Zentimeter.

Die Hand erreicht deshalb nur einen Ring zwischen 10 und 50 Zentimetern. Diese Grenzen brauchen wir in der nächsten Lektion.

Die Hand eines Arms in Python berechnen

Code: python
import math

# Ein Arm mit zwei Gliedern, Längen in Zentimetern, Winkel in Grad.
glied_1 = 25
glied_2 = 15
w1 = math.radians(40)
w2 = math.radians(30)
ellbogen_x = glied_1 * math.cos(w1)
ellbogen_y = glied_1 * math.sin(w1)
hand_x = ellbogen_x + glied_2 * math.cos(w1 + w2)
hand_y = ellbogen_y + glied_2 * math.sin(w1 + w2)
print(round(hand_x, 2), round(hand_y, 2))
# Setzen Sie den zweiten Winkel auf 0 und starten Sie erneut.

Ein häufiger Fehler

Warnung

Viele rechnen für das zweite Glied nur mit cos(w2) und sin(w2). Aber w2 ist relativ zum ersten Glied gemessen. Die Richtung in der Ebene ist w1 plus w2. Addieren Sie die Winkel, bevor Sie cos und sin nehmen.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.