카카오톡 문의 N 공식 블로그 공식 유튜브
2024. 03.

Spot SDK 4.0.0 릴리즈 노트

Spot SDK 4.0.0 릴리즈 노트

배포 안내

이번 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: 특정 위도/경도/요우 데이터로 목적지를 파싱하고 로봇을 직접 네비게이션 시키는 기능이 추가되었습니다.
SPOT Updates 목록으로 돌아가기