6.2 정량 진단
6.2.1 지연과 jitter
하나의 프레임이 행동이 되기까지 다음 타임스탬프를 기록한다.
| 기호 | 사건 |
|---|---|
| 카메라 exposure 또는 캡처 완료 | |
| 애플리케이션 수신 | |
| 추론 시작/끝 | |
| 모터 명령 송신 | |
| 모터 상태에서 움직임 관측 |
핵심 지표는 평균만이 아니다.
p50은 보통 경험, p95/p99는 드문 위험 지연을 보여준다. 다만 20개 표본의 p99는 사실상 최댓값 근처의 보간값일 뿐 tail latency를 안정적으로 추정하지 못한다. latency는 episode 수와 별개로 충분한 control tick/frame 표본을 모으고 n, max, deadline miss를 함께 보고한다. 작은 표본의 p95/p99는 탐색적 값으로만 취급한다. 시간원(clock domain)이 다르면 NTP/PTP 동기화 또는 동일 프로세스의 monotonic timestamp를 사용한다. 음수 지연은 로봇이 미래를 본 것이 아니라 시계가 정합되지 않았다는 신호다.
code/sim2real_diagnostics.py는 CSV의 latency와 성공 결과를 요약한다. 예상 CSV schema는 episode_id,condition,success,capture_ns,receive_ns,infer_start_ns,infer_end_ns,send_ns,motion_ns다.
6.2.2 백래시와 deadband
백래시는 명령 방향이 바뀐 뒤 모터축은 움직여도 출력 링크가 늦게 움직이는 구간이다. 측정 절차는 다음과 같다.
- 안전한 중간 자세에서 한 관절만 선택한다.
- 작은 양의 증가를 여러 번 명령하고 외부 표식 또는 엔코더로 출력 움직임을 기록한다.
- 방향을 반대로 바꿔 출력이 실제로 반전되기까지의 명령 누적량을 측정한다.
- 속도와 payload 조건을 반복한다.
방향 전환 지연을 각도 차이로 환산해 backlash band를 얻는다. 정책 출력에 무조건 역보상을 더하면 노이즈에서 채터링이 생길 수 있다. 동일 방향 접근, 속도 저감, 히스테리시스 모델, 접촉 전 최종 시각 보정을 우선 검토한다.
6.2.3 마찰과 그리퍼
시뮬레이션의 마찰 계수를 임의로 “성공할 때까지” 높이지 않는다. 동일 재질 쌍과 접촉 조건에서 다음을 기록한다.
- 경사면에서 미끄러지기 시작하는 임계각 :
- 일정 하중에서 미끄러짐 속도
- 그리퍼 명령값과 물체 유지 성공률
- 물체 질량, 표면, 접촉 면적, 그리퍼 패드 상태
저가형 그리퍼에 힘 센서가 없다면 “명령 위치가 덜 닫혔다”는 사실은 파지력의 직접 측정이 아니다. 물체 걸림과 진짜 파지를 구분할 추가 관측이 필요하다.
6.2.4 카메라 외부 파라미터
Eye-to-Hand에서는 베이스와 고정 카메라 사이 변환, Eye-in-Hand에서는 엔드이펙터와 카메라 사이 변환을 추정한다. Hand-eye calibration은 보통
형태의 여러 pose 쌍을 푼다. Tsai와 Lenz는 카메라와 로봇의 상대 운동으로 3D hand-eye 관계를 구하는 고전적 방법을 제시했다.[Tsai and Lenz, 1989]
한 개의 reprojection error 숫자만 보지 않는다. 작업 공간 전체에 보드를 배치하고 다음을 확인한다.
- 중앙과 모서리의 reprojection residual
- 거리/방향별 pose residual
- 장착 나사를 다시 조인 뒤 반복성
- 온도와 케이블 장력 변화
- TF의 프레임 방향과 timestamp