RTDE 배경 설명
RTDE란 무엇인가
RTDE는 Universal Robots의 Real-Time Data Exchange 인터페이스입니다. 외부 애플리케이션이 TCP를 통해 선택한 로봇 데이터를 동기화해서 읽고 쓸 수 있게 해줍니다.
이 프로젝트는 공식 RTDE 모델을 최대한 그대로 따릅니다.
이름이 있는 output field 선택
필요한 경우 input field 선택
동기화 루프 시작
robot output 읽기
controller input 쓰기
왜 필드 이름을 그대로 쓰는가
웹 인터페이스와 Python API는 실제 RTDE 필드명을 그대로 사용합니다. 그래서 여기서 설정한 이름이 Universal Robots 공식 RTDE 문서의 이름과 자연스럽게 대응됩니다.
예시:
timestampactual_qactual_qdactual_currentactual_TCP_poseinput_int_register_24output_int_register_24
Output recipe 와 input recipe
RTDE는 다음 구조를 가집니다.
하나의 output recipe: 로봇에서 클라이언트로 스트리밍
하나 이상의 input recipe: 클라이언트에서 컨트롤러로 쓰기
이 프로젝트에서는 보통 필드가 읽기용인지 쓰기용인지 정도만 생각하면 충분합니다.
GP input 과 GP output 구분
실무에서 가장 중요한 구분은 다음입니다.
input_*_register_*는 클라이언트에서 쓰기 가능output_*_register_*는 클라이언트에서 읽기 전용
외부 RTDE client에서 자주 쓰는 범위는 아래와 같습니다.
input_bit_register_64..input_bit_register_127input_int_register_24..input_int_register_47input_double_register_24..input_double_register_47output_bit_register_64..output_bit_register_127output_int_register_24..output_int_register_47output_double_register_24..output_double_register_47
주파수와 부하
웹 인터페이스가 높은 RTDE 주파수를 요청할 수 있다고 해서, 모든 시각화 계층이 모든 프레임을 그대로 소비해야 하는 것은 아닙니다.
실무 권장 기준:
500 Hz 는 얇은 필드 조합에서만 사용
125 Hz 는 좀 더 풍부한 모니터링에 사용
current, GP, diagnostics 필드는 필요한 경우에만 추가
Current-window 보기
측정 전류와 허용 편차 window를 비교하려면 다음 필드를 같이 요청합니다.
ROBOT_FIELDS = [
"timestamp",
"target_current",
"actual_current",
"actual_current_window",
]
웹 인터페이스는 다음과 같은 실용적인 비율을 계산합니다.
usage = abs(actual_current - target_current) / actual_current_window
이 값은 모니터링 보조 지표이지, 인증된 안전 기능 자체는 아닙니다.