카카오톡 문의 N 공식 블로그 공식 유튜브
2025. 05.

Spot SDK 5.0.0 릴리즈 노트

Spot SDK 5.0.0 릴리즈 노트

배포 안내

이번 5.0.0 메이저 업데이트는 Python 3.6 지원 종료, 안무(Choreography) 제어 기능 고도화, 그리고 Orbit AI 비전 검사(AIVI) 연동을 위한 시스템 개편을 포함하고 있습니다. 개발 환경 및 운영 체계에 관한 주요 호환성 변경(Breaking Changes) 사항이 있으므로 실무 담당자는 아래 내용을 반드시 확인해 주시기 바랍니다.

1. 주요 호환성 변경 (Breaking Changes)

⚠️ 개발자 주의 사항: 5.0.0 버전 환경으로 마이그레이션 시 기존 애플리케이션의 아래 사항을 점검하십시오.

  • Python 3.6 지원 종료: 5.0.0 버전부터 Python SDK는 Python 3.6 버전을 더 이상 지원하지 않습니다. Python 3.7 ~ 3.10 버전을 사용해야 합니다.
  • CORE I/O 변경 사항 감지(Change Detection) 기능 제거: CORE I/O에 탑재되어 있던 기존 'Change Detection' 기능이 삭제되었습니다. 해당 기능은 Orbit AIVI(AI Visual Inspections)로 완전히 대체되었습니다. AIVI에 대한 상세 정보는 고객 지원 센터를 참조하십시오.
  • 익스텐션(Extension) 생성 스크립트 제거: Python SDK에서 generate_extension_data.py가 제거되었습니다. 자체 익스텐션 빌드 시, 최신 SDK에 포함된 예제 파일(manifest.json 및 docker-compose.yml)의 베스트 프랙티스(Best practices) 구조를 참조하여 구성하십시오.

2. 신규 기능 (New Features)

안무 및 모션 제어 (Choreography)
  • 다리 자체 충돌 방지(Self-collision) 영역 조정: 커스텀 의상(Costuming)이나 특수 페이로드 장착으로 인해 Spot 다리의 부피가 커졌을 때, 다리 간의 자체 충돌을 방지하기 위해 로봇 내부의 다리 크기 모델을 조정할 수 있습니다. (재부팅 후에도 유지되며 안무 및 일반 보행 모드 모두 적용. Choreographer 프로그램의 Settings > Spot Leg Size Configuration 메뉴에서 설정)
  • 커스텀 보행(Custom Gait) 안정성 개선: 커스텀 보행 동작의 전반적인 안정성이 향상되었으며, 페이로드가 장착된 상태에서의 동작 제어가 크게 개선되었습니다.
  • 애니메이션 확인 툴 추가: Choreographer를 'Advanced Mode'로 실행할 때, 각 로봇에 로드된 애니메이션 모션을 확인할 수 있는 기능이 추가되었습니다. (Help > Check Animated Moves)
  • 키보드(WASD) 기반 커스텀 보행 제어: Xbox 컨트롤러가 연결되지 않은 상태에서도 키보드 WASD 키를 이용해 커스텀 보행 모션을 구동할 수 있습니다.
  • 안무 실험 로그 수집: Choreographer의 로봇 컨트롤 UI에 Start Experiment Log 버튼이 추가되어 구동 실험 로그를 즉각적으로 레코딩할 수 있습니다.

3. 버그 수정 및 개선 사항 (Bug Fixes and Improvements)

Spot 및 Orbit SDK 개선
  • 수학 헬퍼 모듈 안정화: math_helpers.py의 from_vector 메서드에 numpy.ndarray 타입 입력 시 발생하던 크래시(Crash) 현상을 수정했습니다.
  • 페이로드 인증 과부하 수정: 페이로드 자격 증명 기반 인증 메서드가 10Hz 주기로 과도하게 요청을 보내 로봇의 API Rate Limit을 초과하게 만들던 버그를 수정했습니다.
  • 픽셀 포맷 변환 헬퍼 추가: API 전용 픽셀 포맷을 NumPy 포맷으로 변환해 주는 pixel_format_to_numpy_type 헬퍼 함수가 추가되었습니다.
  • Orbit 인증서 파싱 개선: 단일 파일 형태의 인증서(Single-file certificates)를 정상적으로 지원하도록 create_client 메서드가 수정되었습니다.
CORE I/O 및 익스텐션 (Extensions)
  • 업그레이드 시 설정 유지 보호: manifest.json 내에 installation_target, files_to_save, directories_to_save 필드가 추가되어 익스텐션 업그레이드 시 설정 파일이 덮어쓰여지는 현상을 방지합니다.
자율 주행 및 맵 관리 (GraphNav / GPS)
  • 맵 데이터 GPS 유무 식별: SensorCompatibilityStatus 메시지를 통해 맵의 GPS 포함 여부 및 로봇의 GPS 사용 설정 여부를 확인할 수 있습니다.
  • GPS 데이터 소실 방어 로직: 미션에 GPS 맵 데이터가 요구되나 로봇이 실제 데이터를 수신하지 못하는 경우 미션이 시작되지 않도록 안전 로직이 추가되었습니다.
  • GPS 수신기 NTRIP 보정 지원: GPS Listener가 인터넷 프로토콜 기반의 RTCM 데이터(NTRIP)를 지원하여 위치 보정(RTK) 품질을 높일 수 있습니다.
  • 경로 막힘 대응 방식 설정: 앵커(Anchor) 위치로 자율 주행 시 경로가 막혔을 때의 동작 방식을 route_blocked_behavior 필드에서 지정할 수 있습니다. (기본값: 우회 경로 탐색)
데이터 수집 및 서비스 연동
  • 데이터 버퍼 시간 변수 타입 강제: 데이터 버퍼 시간 변수 로깅 시, 데이터 타입은 반드시 TYPE_INT64로 지정하고 UNIX 에포크 기준 나노초(Nanoseconds) 단위로 변환해야 합니다.
  • 이미지 좌표계 트랜스폼 제공: ListImageSourcesResponse에 transforms_snapshot 필드가 추가되어 이미지 소스와 로봇 시스템 간의 좌표 변환 데이터를 직접 제공합니다.
  • 엔드이펙터 토크 데이터 제공: Arm 매니퓰레이션 상태 메시지에 estimated_end_effector_wrench_in_end_effector 필드가 추가되어 실시간 토크(Torque) 데이터를 확인할 수 있습니다.
자율 주행 미션 노드 고도화 (Missions)
  • 시드(Seed) 프레임 기반 앵커 이동: BosdynNavigateToAnchor 노드를 이용해 시드 프레임 상의 특정 오프셋 포즈로 주행시킬 수 있습니다.
  • 동적 네비게이션 요청 생성: 블랙보드(Blackboard) 변수를 통해 런타임에 동적으로 이동 목적지를 생성할 수 있습니다.
  • 다각형(Polygonal) ROI 지원: 서비스 커스터마이징 검사 시 다각형 형태의 관심 영역(ROI) 지정이 허용됩니다.

4. 지원 중단 (Deprecations)

  • 미션 식별자 필드 중단: LoadAutowalkResponse 메시지의 element_identifiers 필드가 지원 중단되었습니다. State 메시지의 active_mission_text 필드를 사용하십시오.
  • SystemFault UID 타입 변경: 기존 uid 필드(uint64)가 문자열 타입의 uuid 필드(string)로 교체 및 통일되었습니다.
  • Arm 토크 필드명 변경: 기존 estimated_end_effector_force_in_hand 필드가 더 명확한 의미의 estimated_end_effector_wrench_in_end_effector로 대체되었습니다.
  • SpotCam MediaLogService 중단: SpotCam 미디어 로그 서비스 기능이 중단되었으며, 표준화된 ImageService 등으로 분산 편입되었습니다.

5. 알려진 문제 (Known Issues)

  • CORE I/O 익스텐션 삭제 오류: 4.1.0 버전 환경에서 명명 규칙을 위반한 텍스트로 생성된 익스텐션은 Orbit 웹 포털 UI를 통해 삭제(Uninstall)되지 않는 버그가 있습니다.
  • TimeSync 클라이언트 동기화 오차(Drift): 클라이언트와 로봇 간의 시간 동기화가 단절될 경우, 시간이 지남에 따라 오차가 누적되어 RPC 제어 메시지가 시간 초과 사유로 거부될 수 있습니다.

6. 샘플 코드 업데이트 (Sample Code)

Orbit Client 신규 API 예제 추가 (New):
  • get_anomalies: 쿼리 기반의 이상(Anomaly) 데이터를 검색하여 반환합니다.
  • get_backup / get_backup_task_status: 백업 아카이브 다운로드 및 작업 진행 상태 조회.
  • get_run_statistics / get_run_statistics_session_summary: 로봇 런타임 세션의 통계 및 요약 정보를 추출합니다.
주요 업데이트 (Updated):
  • Area Callback Crosswalk: 외부 개발용 PC에서도 쉽게 구동 테스트를 할 수 있도록 계정 인증 방식이 추가되었습니다.
  • GPS Listener: 위치 정확도 향상을 위한 NTRIP(인터넷 기반 RTK) 보정 연동 코드가 포함되었습니다.
  • Get Robot State: 관절 상세 상태 및 프레임 트리(Frame tree) 스냅샷을 파싱하여 출력하는 기능 추가.
  • Remote Mission Service Examples: 검사(Inspection) 미션 레코딩 시 방해될 수 있는 특정 파라미터 창을 켜고 끌 수 있는 토글 옵션이 추가되었습니다.
SPOT Updates 목록으로 돌아가기