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

Bahnplanung: gerade Bahn mit Zeitplan

Nach dieser Lektion: Ich kann eine gerade Bahn mit gleichmäßigen Punkten und einer Dauer planen, die eine Höchstgeschwindigkeit einhält.

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

Welchen Weg nimmt die Hand und wann?

Eine Bahnplanung legt fest, welchen Weg die Hand eines Roboterarms nimmt und zu welcher Zeit sie wo sein soll. Ohne Plan ruckelt der Arm oder soll schneller fahren, als seine Motoren schaffen.

Hier planen wir die einfachste Bahn, eine Gerade, mit einer Höchstgeschwindigkeit und einem festen Zeittakt. Es bleibt eine Simulation.

Am Ende dieser Lektion

Notiz

Ich kann eine gerade Bahn mit gleichmäßigen Punkten und einer Dauer planen, die eine Höchstgeschwindigkeit einhält.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Bahnder Weg, den die Hand von Start bis Ziel nimmt
InterpolationPunkte gleichmäßig zwischen zwei Punkten verteilen
Stützpunktein Punkt der Bahn, an dem die Hand sein soll
Höchstgeschwindigkeitdie größte Geschwindigkeit, die erlaubt ist10 cm je Sekunde
Zeitschrittdie Zeit zwischen zwei Stützpunkten

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

Interpolation verteilt Punkte gleichmäßig auf der Geraden

Zwischen Start und Ziel legen wir n gleiche Schritte. Beim Schritt k ist der Anteil t gleich k geteilt durch n. Er läuft von 0 bis 1.

Der Stützpunkt ist der Start plus t mal der Unterschied zwischen Ziel und Start. Das gilt für x und für y getrennt.

Beispiel: eine Bahn in vier Schritten

Schritt kAnteil tStützpunkt (x, y)
00(20, 30)
10,25(25, 25)
20,5(30, 20)
30,75(35, 15)
41(40, 10)

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

Fünf gleiche Punkte von 20 bis 40

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.linspace(20, 40, 5))"

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

Stützpunkte in Python berechnen

Code: python
# Eine Bahn von (10, 30) nach (30, 10) in vier gleichen Schritten.
start = [10, 30]
ziel = [30, 10]
n = 4
for k in range(n + 1):
    t = k / n
    x = start[0] + t * (ziel[0] - start[0])
    y = start[1] + t * (ziel[1] - start[1])
    print(k, x, y)
# Setzen Sie n auf 2 und starten Sie erneut.

Die Höchstgeschwindigkeit bestimmt die Dauer

Die Länge der Bahn ist der Abstand zwischen Start und Ziel. Die Dauer ist die Länge geteilt durch die Höchstgeschwindigkeit. Schneller darf die Hand nicht fahren.

Der Zeittakt teilt die Dauer in Schritte. Ist der Takt 0,5 Sekunden, ergeben sich so viele Schritte, wie in die Dauer passen, aufgerundet.

Beispiel: Länge, Dauer und Schritte

GrößeRechnungErgebnis
Länge von (20, 30) nach (40, 10)Wurzel aus 20 mal 20 plus 20 mal 20etwa 28,28 cm
Dauer bei 10 cm je Sekunde28,28 geteilt durch 10etwa 2,83 s
Schritte bei Takt 0,5 s2,83 geteilt durch 0,5, aufgerundet6

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

Die Dauer bei 10 Zentimetern je Sekunde

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.round(np.hypot(20, 20) / 10, 2))"

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

Jeder Stützpunkt braucht seine eigenen Gelenkwinkel

Der Arm steuert Winkel an und keine Koordinaten. Für jeden Stützpunkt berechnen wir deshalb mit der inversen Kinematik die Winkel.

Die Punkte liegen gleichmäßig auf der Geraden. Die Winkel ändern sich aber ungleichmäßig, wie die Tabelle für die Bahn von (20, 30) nach (40, 10) zeigt.

Beispiel: Winkel an drei Stützpunkten

Stützpunktw1 in Gradw2 in Grad
(20, 30)22,6290
(30, 20)090
(40, 10)-13,1870,53

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

Der zweite Winkel an den drei Stützpunkten

Befehl
docker exec jupyter python3 -c "import numpy as np; print([round(float(np.degrees(np.arccos((x * x + y * y - 1300) / 1200))), 2) for x, y in [(20, 30), (30, 20), (40, 10)]])"

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

Ein häufiger Fehler

Warnung

Viele glauben, gleichmäßige Winkel ergäben eine gerade Linie der Hand. Das stimmt nicht: Gleichmäßige Winkel führen die Hand auf einem Bogen. Für eine Gerade berechnen Sie die Punkte zuerst und daraus jeweils die Winkel.

Ü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.