배포 안내
이번 4.0.1 마이너 업데이트는 이전 4.0.0 버전에서 누락되었던 필수 호환성 변경 사항(네트워크 컴퓨트 브릿지)의 안내, 로봇 전원 제어 버그 수정, 그리고 샘플 코드들의 크래시 및 오작동 수정을 포함하고 있습니다. 페이로드 연동 및 로봇 제어 시스템을 운영하는 실무 담당자는 아래의 개선 사항을 반드시 확인하시기 바랍니다.
1. 주요 호환성 변경 (Breaking Changes)
⚠️ 개발자 주의 사항: 4.0.0 릴리즈에 적용되었으나 이전 문서에서 누락된 주요 호환성 변경 사항을 안내해 드립니다.
- Network Compute Bridge 워커 정책 변경: Network Compute Bridge 워커(Workers) 구성 시 status 필드를 반드시 설정하도록 시스템 요구사항이 변경되었습니다. (기존에는 선택 사항이었습니다.)
- 이에 맞춰 Network Compute Bridge 관련 예제 코드들의 응답 상태 설정 로직이 업데이트되었습니다.
2. 버그 수정 및 개선 사항 (Bug Fixes and Improvements)
- 전원 제어 API 버그 수정: 4.0.1 이전 버전에서 bosdyn.client.power.power_off_robot 및 safe_power_off_robot 메서드를 호출할 때 로봇의 전원이 완전히 차단(De-energize)되지 않던 버그가 수정되었습니다.
- (참고: 기존 safe_power_off_robot 메서드는 모터 전원만 차단하고 로봇 기체 전체의 시스템 전원을 끄지 못했습니다.)
- 프로그래밍 방식으로 로봇의 완전 종료(Full shutdown)를 제어하는 연동 시스템을 사용 중인 경우, 4.0.1 이상 버전으로 소프트웨어를 업데이트할 것을 강력히 권장합니다.
- Python 버전 호환성 패치: Python 3.9 이상에서만 지원되는 기능이 포함되어 Python 3.8 이하 환경에서 Orbit Client 및 Scout Client(지원 중단됨)의 임포트(Import)가 실패하던 오류가 수정되었습니다.
- Windows 환경 구동 오류 수정: bosdyn.client.server_util의 GrpcServiceRunner를 기본 인수인 force_sigint_capture=True 상태로 실행할 때 Windows 운영 체제에서 프로그램이 크래시되던 버그가 수정되었습니다. 운영 체제(OS) 감지 로직이 추가되어 해당 문제를 사전에 방지합니다.
- 예외 처리 고도화: bosdyn.client.area_callback_service_utils 모듈 내부의 진단(Diagnostics) 및 예외 처리(Exception handling) 로직이 개선되었습니다.
- 계단 보행 경로 이탈 수정: 로봇이 폭이 매우 넓은 계단을 오를 때 무조건 중앙부로 이동하려던 문제가 수정되었습니다. 이제 로봇은 계단에서도 기록된(Recorded) 원본 경로에 최대한 가깝게 유지하며 주행합니다.
- 계단 구간에서의 궤적을 수정해야 할 경우, 에지 주석(Edge annotations) 메시지에 새롭게 추가된 traversal_y_offset 필드를 조작하여 보행 경로를 강제로 덮어쓸(Override) 수 있습니다.
3. 지원 중단 (Deprecations)
4.0.0 릴리즈 노트에 명시된 항목에 더해, 아래의 속성이 추가로 지원 중단(Deprecated) 처리되었습니다.
- GraphNav 맵 에지 주석(Map edge annotations): flat_ground (평지 어노테이션 속성)
4. 알려진 문제 (Known Issues)
- 이전 4.0.0 릴리즈와 동일합니다. 추가로 확인된 시스템 버그는 없습니다.
5. 샘플 코드 업데이트 (Sample Code)
현장 구축 및 페이로드 연동 테스트를 지원하기 위해 다수의 예제 코드가 패치 및 갱신되었습니다.
Spot SDK
- Tester Programs: 이미지 서비스(Image services) 및 데이터 수집(Data acquisition) 플러그인 테스트 프로그램의 사용 지침이 더욱 직관적이고 명확하게 보완되었습니다.
- RPC 인수 오류 수정: 다음 세 가지 예제에서 응답(Response)과 요청(Request) 인수가 뒤바뀌어 GetRemoteMissionServiceInfo 메서드가 실패하던 버그가 모두 수정되었습니다.
- Fan Control
- Network Request
- Power Off Mission Service Callback
- Build Extension: 익스텐션(Extensions) 빌드용 build_extension.py 스크립트의 기본 타겟이 ARM64 아키텍처로 변경되었습니다.
- Comms Test: 오기재되었던 Docker 이미지 실행 명령어가 올바르게 패치되었습니다.
- Edit Autowalk: 미션 상태(Mission status)가 주기적으로 출력되며, 프롬프트성 미션 질문(Mission questions) 발생 시 터미널에 즉각 출력되도록 개선되었습니다.
- Custom Parameter Image Server: 해당 예제가 CORE I/O 환경에서 정상 작동하도록 패치되었습니다. (단, Logitech HD Pro Webcam C920 등 CORE I/O 호환 웹캠이 장착되어 있어야 합니다.)
- Post-Docking Callback: 특정 시간(Time period) 값이 입력되었을 때 예제 코드가 강제 종료되던 버그가 수정되었습니다.
- Spot Light: 밝기 임계값(Brightness threshold) 설정 파라미터가 추가되었습니다. 사용자 조명이 충분히 밝지 않은 환경에서도 임계값을 튜닝하여 로봇이 정상적으로 기립하도록 유도할 수 있습니다.
- Network Compute Bridge Worker (Fire Extinguisher): 태블릿에서 검사(Inspection)를 세팅하고 구성하는 방법에 대한 세부 지침이 설명서에 추가되었습니다.
- Network Compute Bridge Worker (TensorFlow): 4.0.1의 필수 요구사항 변경에 맞춰 NetworkComputeResponse 메시지 내의 status 필드가 올바르게 설정되도록 코드가 수정되었습니다.
Orbit SDK
- Orbit API: site_elements 엔드포인트의 명칭 오기재(기존: SiteElements)가 소문자 표준에 맞게 정정되었습니다.
- Orbit Send Robot Back to Dock: 해당 예제 코드가 터미널 기반에서 더욱 상호작용하기 편하도록(Interactive) 개선되었습니다.