Zum Hauptinhalt springen

Makro-Dateiformat

Dieser Abschnitt bietet einen detaillierteren Überblick über das Format der aufgezeichneten .hrpr-Makrodatei.

Wenn Sie eine aufgezeichnete .hrpr-Datei öffnen, sehen Sie eine Reihe von Kopfzeilenfeldern, gefolgt von den aufgezeichneten Bewegungsdaten, die nach Zeitschritten gegliedert sind.

Die Kopfzeile enthält die folgenden Schlüssel:

  • FORMAT_VERSION: Gibt die Version des .hrpr-Dateiformats an.
  • PROGRAM_NAME: Gibt den vollständigen Pfad an, unter dem die Datei gespeichert wurde. Gemischte Trennzeichen \ und / sowie wiederholte // beeinflussen die Interpretation der Datei nicht.
  • DATE: Gibt das Datum an, an dem die Aufzeichnung erstellt wurde.
  • SAMPLE_RATE: Gibt die Aufzeichnungsfrequenz an. HARP zeichnet mit 100 Abtastwerten pro Sekunde (100 Hz) auf.
  • POSITION_LEADER: Kennzeichnet das Gerät Inverse3, das während der Aufzeichnung als Positions-Leader verwendet wurde.
  • ORIENTATION_LEADER: Kennzeichnet das Gerät VerseGrip oder Ruko, das während der Aufzeichnung als Orientierungs-Leader verwendet wurde.
  • FOLLOWERS: Listet die Follower-Geräte auf, die in der Aufzeichnung enthalten sind. Beispielsweise bezieht sich cg_0 auf Control Group 0, und der Wert in eckigen Klammern kennzeichnet den Follower-Platz innerhalb dieser Control Group.
  • DESCRIPTION: Speichert eine optionale Freitextbeschreibung der Aufzeichnung.

Nach der Kopfzeile werden die aufgezeichneten Bewegungsdaten in dem Format gespeichert, das in der folgenden Tabelle beschrieben ist.

FeldBedeutungBeispiel
N#Frame-NummerN1
N169
t#Zeit als Unix-Zeitstempel in Millisekundent1788878409547
{...}enthält einen Frame. Jede Follower-Zeile endet mit ,. Eine Datei benötigt mindestens einen vollständigen Block, um wiedergegeben zu werden.{cg_0::Follower(0): ...
cg_0::Follower(1): ...}
X Y ZWerkzeugposition-Koordinate in MeternX0.1183887 Y-0.0375092 Z0.1076392
rW rX rY rZWerkzeugorientierung als QuaternionrW0.1575889 rX-0.160 rY0.973 rZ-0.051
F#.#####Lineargeschwindigkeit (Feedrate) in m/sF0.0010804
F0.0150
Fa#.#####Winkelgeschwindigkeit (Feedrate) in rad/sFa0.2586200
Fa1.0053328
J6[#,#,#,#,#,#]Gelenkwinkel in RadiantJ6[0.403,0.157,1.000,-0.936,0.214,0.977]
JV6[#,#,#,#,#,#]GelenkgeschwindigkeitenJV6[0.000 0.000 0.000 0.000 0.000 0.000]

So werden Zeilen interpretiert​

  • Eine Zeile, die Befehle für X, Y und Z angibt, bewegt den Roboter zur entsprechenden absoluten kartesischen Position.
  • Wenn eine Koordinate weggelassen wird, behält der Roboter für diese Achse seinen aktuellen Wert bei.
    • Wird X in einem Befehl beispielsweise weggelassen, aktualisiert die Wiedergabe nur die angegebenen Achsen, etwa Y und Z, und behält die aktuelle X-Position bei.
  • Das Dateiformat ist bewusst tolerant gestaltet: Jede Zeile darf nur die Achsen oder Werte enthalten, die sich ändern müssen.
  • Wenn Sie eine vorhandene .hrpr-Datei bearbeiten, verwenden Sie Speichern unter, um die Originaldatei zu erhalten und eine separate Version Ihres geänderten Makros zu erstellen.

Beispiele​

Format​

Das folgende Beispiel zeigt einen Ausschnitt aus einer aufgezeichneten .hrpr-Makrodatei, einschließlich der Kopfzeileninformationen und der aufgezeichneten Bewegungsabtastwerte:

(FORMAT_VERSION: 1)
(PROGRAM_NAME: C:\Users\demo\Documents\user\projects\demo\raw//2026-8-14_12-13-19.hrpr)
(DATE: 2026/09/14)
(SAMPLE_RATE: 100)
(POSITION_LEADER: 051D)
(ORIENTATION_LEADER: 1451)
(FOLLOWERS:
cg_0::Follower(0): Mecademic Industrial Robotics SERIAL (arm);
cg_0::Follower(1): Mecademic Industrial Robotics PARALLEL (end_effector);
)
(DESCRIPTION: a story of two machines)
N1 t1789402399210 {
cg_0::Follower(0): X0.1183887 Y0.0375092 Z0.1076392 rW0.1575889 rX-0.160 rY0.973 rZ-0.051 F0.0008606 Fa0.9414008 J6[0.403,0.157,1.000,-0.936,0.214,0.977] JV6[0.000,0.000,0.000,0.000,0.000,0.000] ,
cg_0::Follower(1): J1[4.800] ,
}
...

Sichere Z-Höhe​

Dieses Beispiel zeigt, wie in Zeile N4 ein einzelner Z-Achsen-Befehl hinzugefügt werden kann, um den Roboter zu einer festgelegten Z-Position zu bewegen, ohne die übrigen Achsen zu verändern.

Da weggelassene Achswerte beibehalten werden, wird in diesem Schritt nur die Z-Achse aktualisiert.

N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: X0.184 Y0.022 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024
}
N3 t20 {
0: X0.184 Y0.022 Z-0.052 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
N4 t31 {
0: Z0.600
}
N5 t41 {
0: X-0.005 Y0.022 Z-0.6 rW0.049 rX-0.032 rY0.998 rZ-0.024 F0.00010 Fa0.400
}
N6 t51 {
0: X-0.005 Y-0.054 Z0.000 rW0.049 rX-0.032 rY0.998 rZ-0.024
}

XY verfahren​

Dieses Beispiel zeigt, wie X- und Y-Befehle gemeinsam verwendet werden können, um den Roboter nur entlang dieser beiden Achsen zu bewegen.

In Zeile N5 werden nur die Werte der X- und Y-Achse aktualisiert. Alle weggelassenen Achsen behalten ihre aktuellen Werte.

N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: X0.184 Y0.022 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024
}
N3 t20 {
0: X0.184 Y0.022 Z-0.052 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
N4 t31 {
0: X0.184 Y0.022 Z-0.600 rW0.049 rX-0.032 rY0.998 rZ-0.024 F0.00010 Fa0.400
}
N5 t41 {
0: X-0.005 Y0.022
}
N6 t51 {
0: X-0.005 Y-0.054 Z0.000 rW0.049 rX-0.032 rY0.998 rZ-0.024
}

Ein Makro optimieren​

Das folgende Beispiel zeigt ein optimiertes Makro, bei dem in jedem Befehl nur die Werte enthalten sind, die sich ändern müssen.

  • Die Roboterausrichtung bleibt während der gesamten Sequenz unverändert.
  • Der erste Befehl bewegt den Roboter mit der angegebenen Vorschubgeschwindigkeit in die vollständige Zielpose.
  • N2 aktualisiert nur die Y-Achse.
  • N3 und N4 aktualisieren nur die Z-Achse.
  • N5 aktualisiert die X-Achse und ändert die Vorschubgeschwindigkeiten.
  • N6 aktualisiert sowohl die Y-Achse als auch die Z-Achse.

Indem Sie Werte weglassen, die sich nicht ändern, bleibt das Makro kompakter und leichter zu lesen und zu bearbeiten.

N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: Y0.022
}
N3 t20 {
0: Z-0.052
}
N4 t31 {
0: Z-0.600
}
N5 t41 {
0: X-0.005 F0.00010 Fa0.400
}
N6 t51 {
0: Y-0.054 Z0.000
}