Format du fichier de macro
Cette section présente une vue d'ensemble plus détaillée du format de fichier de macro .hrpr enregistré.
Lorsque vous ouvrez un fichier .hrpr enregistré, vous voyez une série de champs d'en-tête suivis des données de mouvement enregistrées, organisées par pas de temps.
L'en-tête contient les clés suivantes :
FORMAT_VERSION: Indique la version du format de fichier.hrpr.PROGRAM_NAME: Indique le chemin complet où le fichier a été enregistré. Les séparateurs\et/mélangés, ainsi que les//répétés, n'affectent pas l'interprétation du fichier.DATE: Indique la date de création de l'enregistrement.SAMPLE_RATE: Indique la fréquence d'enregistrement. HARP enregistre à 100 échantillons par seconde (100 Hz).POSITION_LEADER: Identifie l'appareil Inverse3 utilisé comme meneur de position pendant l'enregistrement.ORIENTATION_LEADER: Identifie l'appareil VerseGrip ou Ruko utilisé comme meneur d'orientation pendant l'enregistrement.FOLLOWERS: Énumère les appareils suiveurs inclus dans l'enregistrement. Par exemple,cg_0désigne le groupe de contrôle 0, et la valeur entre crochets identifie l'emplacement du suiveur dans ce groupe de contrôle.DESCRIPTION: Contient une description facultative en texte libre associée à l'enregistrement.
Après l'en-tête, les données de mouvement enregistrées sont stockées selon le format décrit dans le tableau ci-dessous.
| Champ | Signification | Exemple |
|---|---|---|
| N# | Numéro de trame | N1 N169 |
| t# | Heure sous forme d'horodatage Unix en millisecondes | t1788878409547 |
| {...} | contient une trame. Chaque ligne de suiveur se termine par ,. Un fichier doit contenir au moins un bloc complet pour être lu. | {cg_0::Follower(0): ... cg_0::Follower(1): ...} |
| X Y Z | Coordonnées de position de l'outil en mètres | X0.1183887 Y-0.0375092 Z0.1076392 |
| rW rX rY rZ | Orientation de l'outil sous forme de quaternion | rW0.1575889 rX-0.160 rY0.973 rZ-0.051 |
| F#.##### | Vitesse linéaire (avance), en m/s | F0.0010804 F0.0150 |
| Fa#.##### | Vitesse angulaire (avance), en rad/s | Fa0.2586200 Fa1.0053328 |
| J6[#,#,#,#,#,#] | Angles articulaires en radians | J6[0.403,0.157,1.000,-0.936,0.214,0.977] |
| JV6[#,#,#,#,#,#] | Vitesses articulaires | JV6[0.000 0.000 0.000 0.000 0.000 0.000] |
Interprétation des lignes
- Une ligne qui précise les commandes X, Y et Z déplace le robot vers la position cartésienne absolue correspondante.
- Si une coordonnée est omise, le robot conserve sa valeur actuelle pour cet axe.
- Par exemple, si X est omis dans une commande, la lecture ne met à jour que les axes indiqués, comme Y et Z, tout en conservant la position X actuelle.
- Le format de fichier est volontairement souple : chaque ligne peut ne contenir que les axes ou les valeurs qui doivent changer.
- Lorsque vous modifiez un fichier
.hrprexistant, utilisez Enregistrer sous pour conserver le fichier d'origine et créer une version distincte de votre macro modifiée.
Exemples
Format
L'exemple suivant présente une partie d'un fichier de macro .hrpr enregistré, incluant les informations d'en-tête et les échantillons de mouvement enregistrés :
(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] ,
}
...
Hauteur Z de sécurité
Cet exemple montre comment une seule commande d'axe Z peut être ajoutée à la ligne N4 pour déplacer le robot à une position Z précise sans modifier les autres axes.
Comme les valeurs des axes omis sont conservées, seul l'axe Z est mis à jour lors de cette étape.
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
}
Déplacement XY
Cet exemple montre comment les commandes X et Y peuvent être utilisées ensemble pour déplacer le robot uniquement selon ces deux axes.
À la ligne N5, seules les valeurs des axes X et Y sont mises à jour. Tous les axes omis conservent leur valeur actuelle.
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
}
Optimisation d'une macro
L'exemple suivant présente une macro optimisée dans laquelle seules les valeurs devant changer sont incluses dans chaque commande.
- L'orientation du robot demeure inchangée tout au long de la séquence.
- La première commande déplace le robot vers la pose cible complète à une vitesse d'avance spécifiée.
N2ne met à jour que l'axe Y.N3etN4ne mettent à jour que l'axe Z.N5met à jour l'axe X et modifie les vitesses d'avance.N6met à jour à la fois l'axe Y et l'axe Z.
En omettant les valeurs qui ne changent pas, la macro demeure plus compacte et plus facile à lire ou à modifier.
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
}