매크로 파일 형식
이 절에서는 이미 녹화된 내용을 더 자세히 살펴보겠습니다. .hrpr 매크로 파일 형식.
녹화된 파일을 열기 .hrpr 파일을 열면 일련의 헤더 필드가 표시되고, 그 뒤에는 시간 단계별로 정리된 기록된 운동 데이터가 나열됩니다.
헤더에는 다음 키들이 포함되어 있습니다:
FORMAT_VERSION: 지정.hrpr파일 형식의 버전.PROGRAM_NAME: 파일을 저장할 때의 전체 경로를 지정합니다. 혼합 사용\와/구분 기호 및 중복된//모두 파일 분석에 영향을 미치지 않습니다.DATE: 녹화 생성 날짜를 지정합니다.SAMPLE_RATE: 녹화 빈도를 지정합니다.HARP 를 사용하여 초당 100개의 샘플링 포인트 (100 Hz) 녹화를 진행합니다.POSITION_LEADER: 녹화 기간 동안 위치 마스터로 사용되는 Inverse3 장비.ORIENTATION_LEADER: 녹화 기간 동안 자세 마스터로 사용되는 VerseGrip 또는 루코 장비.FOLLOWERS: 녹화 내용에 포함된 종단 장치를 나열합니다. 예를 들어,cg_0손가락 대조군 0, 대괄호 안의 숫자는 해당 제어 그룹 내의 종단 슬롯 위치를 나타냅니다.DESCRIPTION: 저장 및 녹화와 관련된 선택적 자유 텍스트 설명을 입력합니다.
헤더 부분 다음에는, 기록된 운동 데이터가 아래 표에 명시된 형식으로 저장됩니다.
| 필드 | 의미 | 예시 |
|---|---|---|
| N# | 프레임 번호 | N1 N169 |
| 티# | 밀리초 단위의 유닉스 타임스탬프 | t1788878409547 |
| {...} | 한 프레임의 데이터가 포함되어 있습니다. 각 데이터 행은 ,로 끝납니다. 파일을 재생하려면 최소한 하나의 완전한 데이터 블록이 필요합니다. | {cg_0::Follower(0): ... cg_0::Follower(1): ...} |
| X Y Z | 공구 위치 좌표 (단위: 미터) | X 0.1183887, Y -0.0375092, Z 0.1076392 |
| rW rX rY rZ | 사원수로 표현된 기체 자세 | rW 0.1575889 rX -0.160 rY 0.973 rZ -0.051 |
| 에프#.##### | 선속도(이송 속도), 단위는 m/s | F0.0010804 F0.0150 |
| 파#.##### | 각속도(이송 속도), 단위는 rad/s | Fa0.2586200 Fa1.0053328 |
| J6[#,#,#,#,#,#] | 라디안 단위로 표시된 관절 각도 | J6[0.403, 0.157, 1.000, -0.936, 0.214, 0.977] |
| JV6[#,#,#,#,#,#] | 관절 속도 | JV6[0.000 0.000 0.000 0.000 0.000 0.000] |
해석 방식
- X,Y, Z 명령어가 지정된 행은 로봇을 해당 절대 데카르트 좌표로 이동시킵니다.
- 특정 좌표를 생략하면 로봇은 해당 축의 현재 값을 유지합니다.
- 예를 들어, 명령에서 X를생략한 경우, 재생 시 지정된 축(예: Y 및 Z)만 업데이트되고 현재 X 위치는 유지됩니다.
- 이 파일 형식은 비교적 유연하게 설계되어 있어, 각 행에는 변경이 필요한 축이나 수치만 포함할 수 있습니다.
- 기존의
.hrpr문서를 작성할 때는 다음을 사용해 주십시오. 다른 이름으로 저장 원본 파일을 그대로 두고, 수정된 매크로에 대해서는 별도의 버전을 생성합니다.
예시
서식
다음 예시는 미리 녹화된 .hrpr 헤더 정보와 기록된 모션 샘플링 데이터를 포함하는 매크로 파일의 일부:
(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] ,
}
...
안전 Z 높이
이 예제는 제 N4 항목 하나 추가하기 Z축 로봇이 다른 축의 위치를 변경하지 않은 채 지정된 Z 위치로 이동하도록 명령합니다.
생략된 축 값은 그대로 유지되므로, 이 단계에서는 Z축만 업데이트합니다.
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 축을 따라 이동
이 예제는 X 및 Y 명령어를 함께 사용하여 로봇이 이 두 축을 따라만 이동하도록 하는 방법을 보여줍니다.
제 N5 좋아요, X축과 Y축의 수치만 업데이트하겠습니다. 생략된 모든 축은 현재 값을 유지합니다.
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
}
매크로 최적화
다음 예제는 최적화된 매크로를 보여주며, 각 명령어에는 변경이 필요한 수치만 포함되어 있습니다.
- 전체 시퀀스 동안 로봇의 자세는 변하지 않는다.
- 첫 번째 명령은 지정된 이송 속도를 사용하여 로봇을 목표 자세의 최종 위치로 이동시킵니다.
N2업데이트만 Y축。N3와N4업데이트만 Z축。N5업데이트 X축 그리고 속도를 더욱 향상시켰습니다.N6동시에 업데이트 Y축 와 Z축。
변경되지 않은 수치를 생략함으로써 매크로는 더 간결해지며, 읽기나 수정도 더 쉬워집니다.
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
}