부스터로보틱스 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 조사 목록을 구분해 정리했으며, 성능 수치·실기기 동작·전체 모델 호환성은 검증 결과로 주장하지 않는다.