배포 안내
이번 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) 미션 레코딩 시 방해될 수 있는 특정 파라미터 창을 켜고 끌 수 있는 토글 옵션이 추가되었습니다.