← Docs hub

부스터로보틱스 SDK 검토 자료

Booster Robotics의 개발 도구를 SDK 구성, 통신 구조, 기능별 API, 비동기 작업, 실행 환경과 지원 제약 순서로 정리했다. 로봇 제어 SDK와 로봇 내 앱을 만드는 Agent Framework의 역할을 구분해 읽을 수 있는 기술 참고 자료다.

검토 기준: 2026-09-09에 조사한 기능 목록을 정리하고, 2026-09-16에 공식 아키텍처·Python 개요·Audio·TaskHandle·Controller·Agent 개요 문서를 다시 확인했다. 공개 문서 검토이며 실제 설치·컴파일·로봇 동작 시험 결과는 포함하지 않는다. 개별 API의 모델·firmware 지원은 해당 문서와 사용 기기를 대조해야 한다.

1. SDK와 개발 도구 구성

구성 개발자가 사용하는 것 담당 범위
Booster Robotics C++ SDK RPC Client, DDS Publisher/Subscriber, Controller Wrapper 로봇 기능 호출, 상태 스트림, 저수준 제어
BoosterOS Python SDK boosteros, BoosterRobot, TaskHandle 로봇 앱 개발, 센서 조회·구독, 동작과 비동기 작업
ROS 2 인터페이스 ROS 2/DDS와 메시지 정의 ROS 응용 프로그램의 상태·제어 통신
Booster Agent Framework Agent 클래스와 UI·설정·상태 API 로봇에서 실행되는 앱과 운영 화면 상호작용
학습·시뮬레이션 자원 booster_gym, booster_train, booster_deploy, booster_assets 학습 환경, 정책 배포와 로봇 모델 자원. 일반 앱 SDK와 별도 영역

C++ SDK와 BoosterOS Python SDK는 문서와 API 구성이 다른 개발 진입점이다. 언어만 다른 동일 API라고 가정하지 않고 각 패키지의 초기화·반환형·지원 범위를 확인해야 한다. C++ SDK 구조, Python SDK 개요.

2. 통신 구조와 초기화

ROS 2 응용 프로그램 ── ROS 2 / DDS ──┐
                                    ├── Booster Service ── 로봇 기능
일반 응용 프로그램 ── Booster SDK ──┘
                         ├── 고수준 RPC Client
                         └── DDS Topic 발행·구독

두 개발 경로는 같은 제조사 서비스 계층에 접근한다. SDK의 주요 기능도 DDS에 의존하므로 Topic이나 RPC Client보다 ChannelFactory를 먼저 초기화한다. 고수준 기능은 RPC Client, 연속 상태와 관절 명령은 Topic으로 제공한다.

확인 지점 문서에서 확인한 내용
채널 초기화 domain과 네트워크 IP를 설정. IP 인자를 인터페이스 이름과 혼동하지 않음
로봇 선택 이름을 받는 Client의 Init(robot_name)으로 대상을 지정
호출 결과 C++ 메서드는 일반적으로 정수 상태 코드 반환. 0은 성공, 그 외는 오류 처리
응답 데이터 반환 코드와 별도로 출력 인자에서 업무 응답을 읽음
저수준 통신 ChannelPublisher<MSG>와 ChannelSubscriber<MSG> 사용
전달 정책 Topic의 기본 reliable 옵션은 false로 best-effort. 누락 없는 전송을 전제하지 않음

출처: SDK Architecture and Communication Model.

3. C++ 기능별 API 목록

아래는 기존 검토에서 확인한 대표 API다. 전체 함수 사양과 모델별 지원표는 각 공식 문서를 기준으로 한다.

기능 대표 Client·API 제공 내용
정보·상태 GetRobotInfo, GetMode, GetStatus 로봇 정보와 현재 모드·상태
장착 정보 GetSensors, GetHands, GetRobotModel 센서·손과 로봇 모델 정보
모드·기상 ChangeMode, GetUp, GetUpWithMode 모드 전환과 기상 동작
보행 Move, MoveCommand, SwitchGait, ResetOdometry 선속도·회전속도, 보행 방식과 odometry 초기화
머리 RotateHead, RotateHeadWithTime, RotateHeadWithDirection 머리 자세·방향 제어
사전 동작 WaveHand, Handshake, WholeBodyDance, Shoot, VisualKick 인사·악수·전신 동작·킥
상체·궤적 UpperBodyCustomControl, LoadCustomTrainedTraj, ActivateCustomTrainedTraj 상체 제어와 학습 궤적 적재·실행
손·그리퍼 MoveHandEndEffectorV2, MoveDualHandEndEffector, ControlGripper, ControlDexterousHand 말단 위치, 양손, 그리퍼와 손가락 제어
AI·음성 AiClient, LuiClient; Speak, StartAsr, SendTtsText 대화·ASR·TTS 세션
Vision StartVisionService, GetDetectionObject, StopVisionService 검출 서비스 시작·결과 조회·종료
Camera CameraClient.GetCameras, X5CameraClient.ChangeMode 카메라 목록과 X5 모드
LED SetLEDLightColor, SetLEDLightColors, StopLEDLightControl 색상 설정과 제어 해제

공식 참조: Motion, Device Information, AI·LUI, Vision, Camera, Lighting.

속도 제어와 Controller Wrapper

Move·MoveCommand는 속도 명령이다. MoveController는 odometry를 활용한 MoveToTarget, MoveToRelative, TurnAround, Stop을 제공한다. 목적지 이름, 지도, 경로 계획, 장애물 회피까지 포함된 자율주행 전체 기능과는 구분해야 한다. Controller Wrappers.

4. Audio SDK

AudioManager를 초기화하고 factory 메서드로 하위 객체를 만든다. Player·Recorder·CaptureStream·Localizer를 직접 생성하지 않으며 하위 객체를 해제한 뒤 Manager를 종료한다.

객체 용도 주요 인터페이스
AudioManager 서비스 연결, 음량·장치·Bluetooth Init, Shutdown, CreatePlayer, CreateRecorder, GetDevices
AudioPlayer PCM·WAV·MP3 파일과 PCM 스트림 재생 Start, Pause, Stop, Reset, PushPcmStream, Destroy
AudioRecorder 파일 녹음 Start, Pause, Stop, GetInfo, Destroy
AudioCaptureStream raw·NAEC 오디오 프레임 수신 SetFrameCallback, Start, Stop, Destroy
AudioLocalizer 음원 방향 조회 GetDoaAngle

Player는 상태·진행·완료·오류 callback을 제공한다. Stop은 재생을 멈추고 커서를 초기화하며 Destroy는 서비스 세션을 해제한다. Release는 Destroy의 호환 별칭이다. Recorder의 Stop은 출력 파일을 마감한다. 파일 경로는 로봇 측 Audio 서비스가 접근할 수 있어야 한다.

출처: Audio Module.

5. BoosterOS Python SDK

항목 공식 개요의 명시 내용
패키지 boosteros
모델 표 K1 / T1 / T2
Python 3.10 이상
firmware v1.7 이상
실행 환경 Booster 실물 로봇 또는 Booster Studio에서 만든 가상 로봇 환경

공식 개요에는 지원 로봇을 “두 종류”라고 표현한 본문과 K1/T1/T2를 나열한 표가 함께 있다. 지원 범위는 모델 표를 참고하되 개별 기능 지원을 별도로 확인해야 한다. 일반 PC에서 모든 API를 독립 실행할 수 있다는 의미는 아니다. Python SDK 개요.

API 영역 다루는 데이터·기능
연결·정보 BoosterRobot, 로봇 정보, mode·gait·joint·action 목록
상태 snapshot image, camera info, IMU, odometry, joint, battery, fall-down, transform
구독 센서·상태 갱신 callback
동작 모드·보행·속도·관절·머리·상체 제어
비동기 작업 action, get-up, trajectory, audio playback
Audio 시스템 음량, 녹음, 스트림 재생
선택 기능 Vision Detection, Speech

비동기 TaskHandle

장시간 실행은 반환된 TaskHandle로 관찰한다. wait, cancel, done, running과 상태 변경·완료 callback이 제공된다. 작업 시작, 완료 대기, 취소 요청을 나누어 처리하고 대기 timeout과 작업 자체의 종료 상태도 구분해야 한다. 구체적인 반환값·예외·callback 사용법은 TaskHandle 문서를 따른다.

6. DDS·ROS 2 데이터 영역

데이터 영역 기존 검토의 대표 Topic
저수준 상태·제어 rt/low_state, rt/joint_ctrl
로봇·안전 상태 rt/robot_states, rt/fall_down, rt/prone_body_control_status
위치·좌표계 rt/odometer_state, rt/odom, rt/tf
센서 rt/imu/data, rt/joint_states
손·입력 장치 rt/booster_hand_data, rt/booster_hand_touch_data, rt/button_event, rt/remote_controller_state
동작·대화 rt/trained_traj_status, rt/ai_subtitle, rt/lui_asr_chunk

Topic 이름·메시지 형식·모델 지원은 사용하는 버전에서 확인한다. 저수준 관절 명령에서는 애플리케이션이 전송 주기·관절 인덱스·안전 상한을 관리해야 한다.

출처: Low-Level Topics, 공식 ROS 2 저장소.

7. Booster Agent Framework

Agent는 로봇에서 기능을 실행하고 버튼·상태·아이콘 같은 인터랙션 정보를 제공한다. Booster App이나 Booster Studio는 이 정보를 받아 운영 화면을 구성하며 사용자 조작을 Agent에 전달한다. 로봇 제어 SDK와 함께 사용하는 로봇 앱 실행·상호작용 계층이다. Agent Overview.

기존 검토 영역 제공 기능
생명주기 활성화·종료 callback, runtime 설정과 manager 접근
UI component 등록·갱신, page 전환, toast
설정·저장소 parameter 읽기·쓰기·검증·변경 callback과 저장소
상태·입력 로봇 상태 조회, joystick·shortcut 정보

세부 API는 Agent API Overview에서 확인한다. SDK 함수 목록과 Agent 앱 생명주기는 별도의 문서 범위로 관리한다.

8. 지원 범위와 남은 확인 사항

검토 항목 확인할 내용
모델별 차이 K1/T1/T2 표기와 해당 API의 개별 지원표가 일치하는지
firmware·패키지 실제 설치 버전과 문서·헤더·Python API가 일치하는지
장착 옵션 손·그리퍼·카메라·음향 장치가 실제 장착돼 있는지
선택 모듈 Vision·Speech의 의존 패키지와 서비스 사용 조건
동작 제약 허용 모드, joint layout, 궤적과 기상·정지 조건
개발 환경 실물·가상 로봇 차이, 개발 계정과 앱 설치·배포 권한

기존 T2 검토에서는 Hand Guiding·자동 Soccer Kick 등의 미지원 표기와 일부 T1/K1 중심 자료가 확인됐다. 이 항목들은 당시 확인 사항이며, 현재 모델별 지원을 이번 페이지에서 전수 재검증한 것은 아니다.

Connections

Sources

각 절에 공식 문서 링크를 붙였다. 재확인한 핵심 문서와 기존 API 조사 목록을 구분해 정리했으며, 성능 수치·실기기 동작·전체 모델 호환성은 검증 결과로 주장하지 않는다.

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date