콘텐츠로 이동

실기 어댑터 (deploy/)

ROS 2 패키지. 정책 코드가 바뀌어도 안전 래퍼는 바뀌지 않는다.

노드 역할
추론 ONNX Runtime 으로 policy.onnx 로드, io_spec.json 만 읽어 관측 조립·행동 매핑
안전 래퍼 별도 프로세스. 힘·토크·작업공간·관절 속도 한계, 워치독(정책 출력 지연 2주기 초과 시 정지)
텔레메트리 표준 토픽을 rosbag 으로 저장, 시도 종료 시 telemetry/<project>/<policy_ref>/ 업로드

io_spec.json

{"schema_version": 1,
 "obs": [{"name": "joint_pos", "dim": 12, "unit": "rad", "offset": [...], "scale": [...]}],
 "action": {"name": "joint_target", "dim": 12, "unit": "rad", "offset": [...], "scale": [...]},
 "control_hz": 50, "history_len": 1}

obs 순서 = ONNX 입력 텐서 연결 순서.

표준 토픽

/lab/joint_state /lab/joint_cmd /lab/ft /lab/imu /lab/policy_obs /lab/policy_action /lab/safety_event /lab/trial. 관절 순서·프레임·부호는 deploy/frames.yaml. 시뮬 에셋의 관절 순서와 다르면 CI 가 실패한다.

bag 메타데이터

metadata.json 필수. trial_id project policy_ref policy_stage robot frames_version calibration_version scenario_id rollout_step result safety_intervention operator started_at ended_at. 인덱서는 규격 위반 시도를 rejected 로 표시하고 통계·보정에서 제외한다.

전체 규격은 명령서 16.2.