배포 안내
이번 4.0.2 마이너 업데이트는 로봇 관절의 로우레벨(Low-level) 제어를 위한 Joint Control API의 실험적 도입과, 초저지연 제어를 위한 상태 데이터 스트리밍 성능 개선을 포함하고 있습니다. 페이로드 연동 및 로봇 제어 시스템을 운영하는 실무 담당자는 아래 사항을 확인하시기 바랍니다.
1. 주요 호환성 변경 (Breaking Changes)
- 이전 4.0.1 릴리즈와 동일합니다. 추가적인 호환성 변경 사항은 없습니다.
2. 신규 기능 (New Features)
관절 제어 (Joint Control)
- Joint Control API 추가: 로봇 관절에 대한 로우레벨(Low-level) 제어를 지원하는 API가 새롭게 도입되었습니다.
- 로봇 시뮬레이션 및 시스템 개발 시 유용하게 활용할 수 있는 보충 데이터 및 상세 스펙은 공식 문서를 참조하시기 바랍니다.
⚠️ 주의 사항: 해당 API는 현재 실험적(Experimental) 단계로 제공되며, 기능 활성화를 위해서는 기체에 'Joint Level Control' 라이선스가 별도로 설치되어 있어야 합니다.
3. 버그 수정 및 개선 사항 (Bug Fixes and Improvements)
안무 및 모션 제어 (Choreography)
- GetChoreographySequenceRequest 메시지에 return_animation_names_only 필드가 추가되었습니다. 이를 통해 전체 애니메이션 데이터 대신 이름(Name) 정보만 요청할 수 있어 네트워크 대역폭(Bandwidth)을 효율적으로 절약할 수 있습니다.
- 개별 애니메이션을 이름으로 특정하여 요청할 수 있는 신규 메시지(GetAnimation)가 추가되었습니다.
로봇 상태 진단 (Robot State)
- RobotStateStreamResponse 신규 필드: 두 가지 신규 필드(kinematic_state, contact_states)가 추가되었습니다.
- kinematic_state: Odom 및 Vision 좌표계(Frames)를 기준으로 한 로봇 본체의 포즈(Pose) 및 속도 정보를 포함합니다.
- contact_states: 로봇의 각 발(Foot) 위치 및 지면 접촉 상태 정보를 개별적으로 제공합니다.
- 신규 스트리밍 RPC: 새롭게 추가된 GetRobotStateStream RPC는 기존 GetRobotState의 경량화된 스트리밍 버전입니다. Joint Control API 구동 등 최저 지연 시간(Lowest latency)이 필수적인 환경에서 매우 유용하게 활용할 수 있습니다.
Orbit 플랫폼 (Orbit)
- Python 3.6 및 Python 3.7 환경에서 발생하던 패키지 임포트(Import) 실패 버그가 수정되어 Orbit Client가 정상적으로 작동합니다. (참고: 현재 지원 중단된 Scout Client의 동일한 이슈도 함께 패치되었습니다.)
4. 지원 중단 (Deprecations)
- 이전 4.0.1 릴리즈와 동일합니다.
5. 알려진 문제 (Known Issues)
- 이전 4.0.1 릴리즈와 동일합니다.
6. 샘플 코드 업데이트 (Sample Code)
현장 시스템 연동 및 테스트를 지원하기 위해 다수의 예제 코드가 추가 및 갱신되었습니다.
신규 추가 (Spot SDK - Joint Control)
- Robot Squat: Arm(로봇 팔)이 장착되지 않은 기체에서 Joint Control API를 활용해 스쿼트 동작을 수행하는 예제입니다.
- Wiggle Arm: Arm이 장착된 기체에서 Joint Control API를 활용해 관절의 움직임을 제어하는 예제입니다.
주요 업데이트 (Spot SDK)
- GPS Listener: GPS 수신기가 타임스탬프가 누락된 NMEA 메시지를 발행할 경우 프로그램이 크래시(Crash)되던 버그가 수정되었습니다. 이제 NMEAParser가 타임스탬프 없는 메시지를 무시하고 정상 작동합니다. 추가로, 커맨드라인 인수를 통해 GPS 수신기의 보드레이트(Baud rate)를 유연하게 설정할 수 있도록 개선되었습니다.
주요 업데이트 (Orbit SDK)
- Hello Webhook: 웹훅 이벤트 타입이 TEST일 때 발생하던 크래시 버그가 수정되었습니다. TEST 이벤트 타입은 실제 로봇을 기동하지 않고도 외부 연동용 웹훅을 안전하게 디버깅할 때 유용하게 사용할 수 있습니다.