1. Grundlagen
PTP bedeutet Point to Point, also eine Bewegung von
einem Ausgangspunkt zu einem Zielpunkt. Der gewählte PTP-Modus bestimmt,
wie der Dobot dieses Ziel anfährt und
wie die vier Zahlenwerte x, y,
z und r interpretiert werden.
index = dType.SetPTPCmd(
api,
dType.PTPMode.PTPMOVLXYZMode,
x,
y,
z,
r,
isQueued=1
)[0]
x,
y, z und r.
Bei den ANGLE-Modi stehen diese vier Werte jedoch
nicht für kartesische Koordinaten, sondern für Gelenkwinkel.
Die drei wichtigsten Bewegungsprinzipien
MOVJ
Die Gelenke werden so bewegt, dass das Ziel erreicht wird. Der Werkzeugpunkt muss dabei nicht auf einer Geraden zum Ziel laufen.
MOVL
Der Werkzeugpunkt wird auf einer linearen Bahn zum Ziel geführt.
JUMP
Typische Pick-and-Place-Bewegung: anheben, überführen und wieder absenken. Die JUMP-Parameter werden separat eingestellt.
2. Übersicht aller PTP-Modi
| Wert | Python-Name | Prinzip | Parameter | Typischer Einsatz |
|---|---|---|---|---|
| 0 | PTPJUMPXYZMode |
JUMP | absolute X/Y/Z/R-Zielwerte | Pick-and-Place mit Anheben und Absenken |
| 1 | PTPMOVJXYZMode |
MOVJ | absolute X/Y/Z/R-Zielwerte | schnelles Anfahren eines freien Zielpunkts |
| 2 | PTPMOVLXYZMode |
MOVL | absolute X/Y/Z/R-Zielwerte | geradliniges Absenken, Anheben oder Verschieben |
| 3 | PTPJUMPANGLEMode |
JUMP | absolute Gelenkwinkel | JUMP-Bewegung mit Zielvorgabe im Gelenkraum |
| 4 | PTPMOVJANGLEMode |
MOVJ | absolute Gelenkwinkel | gezieltes Anfahren einer Gelenkstellung |
| 5 | PTPMOVLANGLEMode |
MOVL | absolute Gelenkwinkel | seltener Spezialfall; vor Einsatz testen |
| 6 | PTPMOVJANGLEINCMode |
MOVJ, relativ | Änderungen der Gelenkwinkel | relative Gelenkbewegung |
| 7 | PTPMOVLXYZINCMode |
MOVL, relativ | relative Änderung von X/Y/Z/R | schrittweises lineares Verfahren |
| 8 | PTPMOVJXYZINCMode |
MOVJ, relativ | relative Änderung von X/Y/Z/R | relative XYZ-Bewegung mit MOVJ-Bahnplanung |
| 9 | PTPJUMPMOVLXYZMode |
JUMP + MOVL | SDK-/Firmwareabhängig dokumentiert | Spezialmodus; vorsichtig testen |
3. Die PTP-Modi im Detail
0 – PTPJUMPXYZMode
JUMPabsolutkartesisch
Das Ziel wird als absolute kartesische Position
X, Y, Z, R angegeben. Der Dobot führt eine
JUMP-Bewegung aus.
Geeignet für: Pick-and-Place-Aufgaben, bei denen ein Hindernis oder ein Werkstück sicher überfahren werden soll.
1 – PTPMOVJXYZMode
MOVJabsolutkartesisch
Das Ziel wird als absolute Position X, Y, Z, R angegeben.
Der Controller berechnet eine Gelenkbewegung zum Ziel.
Die Bahn des Werkzeugpunkts ist nicht zwingend gerade.
Geeignet für: schnelle Fahrten zwischen freien Punkten.
2 – PTPMOVLXYZMode
MOVLabsolutkartesisch
Das Ziel wird als absolute Position X, Y, Z, R angegeben.
Der Werkzeugpunkt bewegt sich linear zum Ziel.
Geeignet für: kontrolliertes Absenken oder Anheben des Saugnapfs sowie geradlinige Bewegungen.
X, Y und R unverändert bleiben
und nur Z geändert wird.
3 – PTPJUMPANGLEMode
JUMPabsolutGelenkwinkel
Das Ziel wird im Gelenkkoordinatensystem angegeben. Die vier übergebenen Zahlenwerte stehen für die Zielstellung der Gelenke.
x, y, z, r nennt, sind sie in diesem Modus
als Gelenkwerte zu verstehen.
4 – PTPMOVJANGLEMode
MOVJabsolutGelenkwinkel
Der Dobot fährt eine absolute Gelenkstellung an. Die Zielvorgabe erfolgt über die Gelenkwinkel.
Geeignet für: Aufgaben, bei denen eine bestimmte Roboterkonfiguration beziehungsweise Gelenkstellung gewünscht ist.
5 – PTPMOVLANGLEMode
MOVLabsolutGelenkwinkel
Die offizielle API-Beschreibung ordnet diesen Modus MOVL zu, während das Ziel im Gelenkkoordinatensystem angegeben wird.
6 – PTPMOVJANGLEINCMode
MOVJrelativGelenkwinkel
Die Werte geben keine absoluten Gelenkstellungen an, sondern Änderungen gegenüber der aktuellen Gelenkstellung.
Beispiel: Ein Wert von +5 bedeutet sinngemäß,
dass der betreffende Gelenkwinkel um 5° verändert wird.
7 – PTPMOVLXYZINCMode
MOVLrelativkartesisch
Die Werte werden als relative Änderung der aktuellen kartesischen Position verwendet. Die Bewegung erfolgt linear.
# Z relativ um 5 mm absenken
dType.SetPTPCmd(
api,
dType.PTPMode.PTPMOVLXYZINCMode,
0, # ΔX
0, # ΔY
-5, # ΔZ
0, # ΔR
isQueued=1
)
PTPMOVLXYZINCMode kennzeichnet ihn jedoch eindeutig
als inkrementellen XYZ-Modus. Vor sicherheitskritischem Einsatz sollte
das Verhalten am eigenen Dobot mit kleinen Bewegungen geprüft werden.
8 – PTPMOVJXYZINCMode
MOVJrelativkartesisch
Das Ziel ergibt sich aus einer relativen Änderung von
X, Y, Z, R. Die Bahnplanung erfolgt nach dem MOVJ-Prinzip.
Der Werkzeugpunkt muss deshalb zwischen Start und Ziel nicht auf einer geraden Linie laufen.
9 – PTPJUMPMOVLXYZMode
JUMP + MOVLSpezialmodus
Dieser Modus ist im Python-SDK als Kombination aus JUMP und MOVL benannt. Die ältere offizielle englische API-Dokumentation beschreibt die Parameter jedoch nicht vollständig widerspruchsfrei.
4. Python-Beispiele
Absolute lineare Z-Bewegung
pose = dType.GetPose(api)
x = pose[0]
y = pose[1]
z = pose[2]
r = pose[3]
neue_z = 20.0
index = dType.SetPTPCmd(
api,
dType.PTPMode.PTPMOVLXYZMode,
x,
y,
neue_z,
r,
isQueued=1
)[0]
Absolute XYZ-Bewegung mit MOVJ
index = dType.SetPTPCmd(
api,
dType.PTPMode.PTPMOVJXYZMode,
220,
50,
80,
0,
isQueued=1
)[0]
Relative lineare Z-Bewegung
index = dType.SetPTPCmd(
api,
dType.PTPMode.PTPMOVLXYZINCMode,
0,
0,
-5,
0,
isQueued=1
)[0]
isQueued=1 wird der Befehl in die Warteschlange eingereiht.
Die Queue muss gestartet sein, zum Beispiel mit
dType.SetQueuedCmdStartExec(api).
5. Praktische Empfehlungen
| Aufgabe | Empfohlener Modus | Warum? |
|---|---|---|
| Saugnapf senkrecht absenken | PTPMOVLXYZMode |
Geradlinige, kontrollierte Bewegung |
| Saugnapf schrittweise um wenige Millimeter bewegen | PTPMOVLXYZINCMode |
Relative lineare Bewegung |
| Freien Zielpunkt schnell anfahren | PTPMOVJXYZMode |
Gelenkoptimierte Bewegung |
| Werkstück aufnehmen und an anderer Stelle ablegen | PTPJUMPXYZMode |
Typische Pick-and-Place-Bewegung |
| Bestimmte Gelenkstellung anfahren | PTPMOVJANGLEMode |
Direkte Vorgabe der Gelenkstellung |
6. Quellen und Hinweis zur Dokumentation
Die Namen und Zahlenwerte der zehn Python-Modi stammen aus
DobotDllType.py. Die grundsätzliche Zuordnung der PTP-Modi
zu JUMP, MOVJ, MOVL, kartesischen Zielwerten, Gelenkwerten und
Inkrementen wird in der offiziellen Dobot-Magician-API-Beschreibung
dokumentiert.
Offizielle API-Beschreibung:
Dobot Magician API Description V1.2.3
Verwendete Python-Definition von DobotDllType.py:
DobotDllType.py auf GitHub
Stand dieser Zusammenstellung: Juli 2026.
Bei älteren Dobot-SDKs können Dokumentation, Firmware und Python-Wrapper
an einzelnen Stellen unterschiedlich oder missverständlich formuliert sein.
Maßgeblich für ein konkretes Projekt ist deshalb immer auch die tatsächlich
verwendete Version von DobotDllType.py und der Dobot-Firmware.