배포 안내
이번 4.0.0 메이저 업데이트는 Orbit(구 Scout) 시스템으로의 전면적인 전환, GPS 기반의 자율 주행(Graph Nav) 연동, 그리고 향상된 Arm 제어 및 안전 기능을 포함하고 있습니다. 특히 하드웨어 핀 매핑 변경 및 일부 API의 호환성 변경(Breaking Changes)이 포함되어 있으므로 실무 담당자는 아래 사항을 반드시 확인하시기 바랍니다.
1. 주요 호환성 변경 (Breaking Changes)
⚠️ 개발자 주의 사항: 4.0.0 버전부터 다음 기능들이 삭제되거나 구조가 변경되었습니다. 시스템 마이그레이션 시 코드를 반드시 점검하십시오.
삭제된 서비스 및 필드
- LogAnnotationService 서비스 전체
- Auth 애플리케이션 토큰(application_token) 및 관련 상태 코드(STATUS_INVALID_APPLICATION_TOKEN, STATUS_EXPIRED_APPLICATION_TOKEN)
- 비동기화(Non-synchronized) 이동 명령(Robot commands) 및 최상위 피드백 메시지
- Graph Nav 맵 에지(Edge) 주석 속성: vel_limit, ground_mu_hint, grated_floor
- SpotCheck 피드백 속성: foot_height_results, leg_pair_results
CORE I/O 및 Network Compute Bridge 변경
- CORE I/O GPIO 핀 매핑 변경: Jetpack 5 업데이트 적용에 따라 Core I/O의 전압-GPIO 핀 매핑이 변경되었습니다. 기존 {5: 133, 12: 19, 24: 148} 매핑이 {5: 440, 12: 320, 24: 453}으로 변경되었으므로, 관련 하드웨어 인터페이스 코드를 업데이트해야 합니다.
- Network Compute Bridge 워커 정책 변경: 이전에 선택 사항이었던 워커(Worker)의 status 필드 설정이 이제 필수로 요구됩니다.
2. 신규 기능 (New Features)
Orbit (구 Scout 플랫폼) 전면 개편
Scout 플랫폼이 'Orbit'으로 리브랜딩되었으며, 새로운 자동화 기능이 도입되었습니다.
- 웹훅(Webhooks) 지원: 클라이언트가 Orbit의 이벤트를 실시간으로 구독할 수 있는 웹훅 메커니즘이 추가되었습니다. Settings UI 또는 /webhooks 엔드포인트를 통해 등록 가능합니다.
- 스케줄러 API: Orbit 스케줄러와 연동하여 새로운 /calendar 엔드포인트를 통해 미션을 예약하고 관리할 수 있습니다.
GPS 연동 자율 주행 (Graph Nav)
- Spot이 GPS 수신기를 활용해 기록된 Graph Nav 맵에서 자율적으로 로컬라이제이션(위치 인식) 및 네비게이션을 수행할 수 있습니다.
- 참고사항: 로봇이 직접 GPS 수신하는 것이 아니라, 페이로드 컴퓨터(예: CORE I/O)가 GPS 데이터를 처리한 후 NewGpsDataRequest RPC를 통해 어그리게이터(Aggregator) 서비스로 전달하는 아키텍처입니다.
Autowalk 및 자율 주행 미션 (Missions)
- SpotCam PTZ 포커스 제어: focus_state를 통해 SpotCam의 PTZ 포커스를 설정할 수 있으며, 태블릿에서 Autowalk 레코딩 중 수동 포커스 설정이 지원됩니다.
- Arm 및 그리퍼 제어 옵션: target_stow_behavior(다음 타겟 이동 시 Arm 보관 동작 구성), disable_post_action_close(액션 수행 후 그리퍼 닫힘 제어)
- 안무(Choreography) 미션 지원: Autowalk에 안무 기능이 통합되었습니다. (해당 라이선스 필요)
- 경로 시각화: NavigationFeedbackResponse에 CompletedRoute가 추가되어 미션 진행 상황을 명확하게 파악할 수 있습니다.
로봇 이동 제어 (Mobility)
- 자동 발 높이 조절: SwingHeight 열거형에 SWING_HEIGHT_AUTO가 추가되어 로봇과 환경 상태에 따라 발 높이를 자동 최적화합니다.
- 계단 하강 방향 설정: StairData 메시지에 DescentPreference가 추가되어 좁은 지형(예: 캣워크)에서 로봇이 전방을 바라본 채 계단을 내려가도록 설정할 수 있습니다.
Spot Arm 제어
- 속도 및 안전 제한 해제 모드: ArmCartesianCommand에 disable_velocity_limiting, ArmImpedanceCommand에 disable_safety_check 필드가 추가되었습니다. (주의: 불안정성 방지 안전장치를 해제하므로 개발자의 각별한 주의가 요구됨)
- 궤적 취소 상태 추가: 명령이 취소될 경우, 피드백에 STATUS_TRAJECTORY_CANCELLED가 반환되어 디버깅이 용이해졌습니다.
데이터 수집 및 서비스 통합
- 라이브 데이터 (Live Data): 페이로드가 수집한 데이터를 태블릿 및 Orbit 화면에 실시간으로 표시하는 GetLiveData RPC가 추가되었습니다.
- 데이터 수집 저장소 (Data Acquisition Store): 저장된 캡처 데이터를 조회하기 위한 전용 RPC(QueryStoredCaptures, QueryMaxCaptureId)가 도입되었습니다. (기존 /v1/data-buffer/daq-data/ 대체)
- 안전 관련 정지 기능(SRSF): 하드웨어 안전 정지 기능을 리셋할 수 있는 ResetSafetyStop RPC가 추가되었습니다.
3. 버그 수정 및 개선 사항 (Bug Fixes and Improvements)
- 통신 안정성 개선: 네트워크 단절 시 빠른 서비스 재연결을 위해 클라이언트 Keep-alive 기본값이 5초로 설정되었습니다.
- 모터 온도 모니터링: RobotState 내의 SystemState 메시지에 로봇 모터 온도 데이터가 추가되었습니다.
- 대용량 미션 처리: 최대 Protobuf 크기를 초과하는 대규모 미션에 대해, Mission Client의 get_info 메서드가 데이터를 청크(Chunks) 단위로 처리하도록 개선되었습니다.
- 페이로드 인증 체계 개편: CORE I/O 외 커스텀 페이로드 연결 시, GUID와 Secret이 포함된 인증 파일(Payload credentials file) 방식이 표준으로 적용됩니다.
- 관절 데이터 정리: 항상 0으로 전송되던 가상의 HR0 관절 데이터가 제거되었습니다. (URDF 파일 사용자는 재수집 필요)
4. 지원 중단 (Deprecations)
- 패키지명 변경: Scout 브랜드 변경에 따라 bosdyn-scout 패키지가 bosdyn-orbit으로 전면 교체되었습니다.
- Orbit API 엔드포인트 변경: /login 엔드포인트가 중단되고 관리자 권한 API 토큰을 발급받아 사용하는 /api_token/authenticate로 대체되었습니다. /missions 엔드포인트는 /site_walks로 대체됩니다.
- 프레임 이름 변경: 손목 링크 이름 link_wr1이 URDF 표준에 맞추어 arm0.link_wr1로 변경되었습니다. (4.0 버전에서는 호환 유지, 향후 삭제)
- 기타: Staircase 메시지의 number_of_steps 속성이 steps 배열 길이를 직접 참조하는 방식으로 대체되었으며, CLI 툴의 become-estop 명령이 estop 하위로 통합되었습니다.
5. 알려진 문제 (Known Issues)
- Protobuf 순환 참조 버그: registration.proto와 world_object.proto 간 순환 참조로 인해 특정 언어 자동 생성 시 오류가 발생할 수 있습니다.
- REST 엔드포인트 불안정: 기존 /v1/data-buffer/daq-data/를 통한 데이터 쿼리 시 누락 현상이 있으므로 QueryStoredCaptures RPC 사용을 권장합니다.
6. 샘플 코드 업데이트 (Sample Code)
신규 추가 (New):
- Arm 제어: ODOM/BODY 프레임 기준 포즈 유지(Arm Freeze), 장거리 데카르트 궤적(Cartesian Trajectory) 이동 예제.
- Orbit API: 미션 스케줄 생성/편집, 날씨 기반 캘린더 이벤트 활성/비활성화, 로봇 도크 복귀, 웹훅(Webhooks) 활용 예제.
- 하드웨어 및 페이로드 연동: GPS Listener 통신, 안전 정지 리셋(Reset Safety Stop), CORE I/O 모뎀 기반 실시간 데이터 스트리밍, CORE I/O 및 Orbit Extensions 빌드 지원 스크립트.
업데이트 (Updated):
- 기존 scout 디렉터리의 예제가 모두 orbit 구조로 개편되었습니다.
- Network Compute Bridge: 분석 워커 예제들이 Jetpack 5 기반의 버전 4.0 CORE I/O 환경에 맞춰 Dockerfile 베이스 이미지가 갱신되었습니다.
- GraphNav Command Line: 특정 위도/경도/요우 데이터로 목적지를 파싱하고 로봇을 직접 네비게이션 시키는 기능이 추가되었습니다.