Aller au contenu principal

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_0 dé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.

ChampSignificationExemple
N#Numéro de trameN1
N169
t#Heure sous forme d'horodatage Unix en millisecondest1788878409547
{...}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 ZCoordonnées de position de l'outil en mètresX0.1183887 Y-0.0375092 Z0.1076392
rW rX rY rZOrientation de l'outil sous forme de quaternionrW0.1575889 rX-0.160 rY0.973 rZ-0.051
F#.#####Vitesse linéaire (avance), en m/sF0.0010804
F0.0150
Fa#.#####Vitesse angulaire (avance), en rad/sFa0.2586200
Fa1.0053328
J6[#,#,#,#,#,#]Angles articulaires en radiansJ6[0.403,0.157,1.000,-0.936,0.214,0.977]
JV6[#,#,#,#,#,#]Vitesses articulairesJV6[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 .hrpr existant, 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.
  • N2 ne met à jour que l'axe Y.
  • N3 et N4 ne mettent à jour que l'axe Z.
  • N5 met à jour l'axe X et modifie les vitesses d'avance.
  • N6 met à 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
}