Makro-Dateiformat
Dieser Abschnitt bietet einen detaillierteren Überblick über das Format der aufgezeichneten .hrpr-Makrodatei.
Wenn Sie eine aufgezeichnete .hrpr-Wenn Sie die 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-Dateiformate.PROGRAM_NAME: Gibt den vollständigen Pfad an, unter dem die Datei gespeichert wurde. Gemischte Trennzeichen\und/sowie wiederholte//haben keinen Einfluss auf die Interpretation der Datei.DATE: Gibt das Datum an, an dem die Aufzeichnung erstellt wurde.SAMPLE_RATE: Gibt die Aufzeichnungsfrequenz an. HARP zeichnet mit 100 Abtastwerte pro Sekunde (100 Hz) auf.POSITION_LEADER: Bezeichnet das Gerät Inverse3, das während der Aufzeichnung als Positionsführer verwendet wurde.ORIENTATION_LEADER: Bezeichnet das Gerät VerseGrip oder Ruko, das während der Aufzeichnung als Orientierungshilfe diente.FOLLOWERS: Listet die Follower-Geräte auf, die in der Aufzeichnung enthalten sind. Beispielsweise bezieht sichcg_0auf Kontrollgruppe 0, und der Wert in eckigen Klammern gibt die Platzierung des Followers innerhalb dieser Kontrollgruppe an.DESCRIPTION: Speichert eine optionale Freitextbeschreibung der Aufzeichnung.
Nach dem Kopfzeilenbereich werden die aufgezeichneten Bewegungsdaten in dem Format gespeichert, das in der folgenden Tabelle beschrieben ist.
| Feld | Bedeutung | Beispiel |
|---|---|---|
| N# | Rahmennummer | N1 N169 |
| t# | Zeit als Unix-Zeitstempel in Millisekunden | t1788878409547 |
| {...} | 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 Z | Werkzeugpositionskoordinate in Metern | X 0,1183887 Y -0,0375092 Z 0,1076392 |
| rW rX rY rZ | Werkzeugorientierung als Quaternion | rW 0,1575889 rX -0,160 rY 0,973 rZ -0,051 |
| F#.##### | Lineargeschwindigkeit (Vorschubgeschwindigkeit) in m/s | F0.0010804 F0.0150 |
| Fis.##### | Winkelgeschwindigkeit (Vorschubgeschwindigkeit) in rad/s | Fa0,2586200 Fa1,0053328 |
| J6[#,#,#,#,#,#] | Gelenkwinkel in Radiant | J6[0,403; 0,157; 1,000; -0,936; 0,214; 0,977] |
| JV6[#,#,#,#,#,#] | Gelenkgeschwindigkeiten | JV6[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 enthält, bewegt den Roboter an die entsprechende absolute kartesische Position.
- Wenn eine Koordinate weggelassen wird, behält der Roboter für diese Achse seinen aktuellen Wert bei.
- Wird beispielsweise X in einem Befehl weggelassen, aktualisiert die Wiedergabe nur die angegebenen Achsen, etwa Y und Z, und behält die aktuelle X-Position bei.
- Das Dateiformat ist bewusst flexibel gestaltet: Jede Zeile darf nur die Achsen oder Werte enthalten, die geändert werden müssen.
- Wenn Sie eine vorhandene
.hrpr-Um eine Datei zu bearbeiten, verwenden Sie Speichern unter, um die Originaldatei zu behalten 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 Bewegungsdaten:
(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 auf eine festgelegte Z-Position zu bewegen, ohne die übrigen Achsen zu verändern.
Da die ausgelassenen 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 ausschließlich entlang dieser beiden Achsen zu bewegen.
In Zeile N5 Es werden nur die Werte der X- und Y-Achse aktualisiert. Alle nicht berücksichtigten Achsen behalten ihre aktuellen Werte bei.
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 geändert werden müssen.
- Die Ausrichtung des Roboters bleibt während der gesamten Sequenz unverändert.
- Der erste Befehl bewegt den Roboter mit der angegebenen Vorschubgeschwindigkeit in die vollständige Zielposition.
N2aktualisiert nur die Y-Achse.N3undN4aktualisieren nur die Z-Achse.N5aktualisiert die X-Achse und passt die Vorschubgeschwindigkeiten an.N6aktualisiert sowohl die Y-Achse sowie die Z-Achse.
Indem Sie Werte weglassen, die sich nicht ändern, bleibt das Makro übersichtlicher und lässt sich leichter lesen und 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
}