How rainbowrobotics/rby1-sdk works
rby1-sdk is a C++ and Python SDK for RB-Y1 robot control and development. The main workflow is to create and connect a robot client, build and send commands, then consume state, feedback, or streamed logs. The SDK also exposes robot kinematics/dynamics and math utilities, device power and system operations, and UPC leader-arm control. The tree and excerpts establish the client, command, and dynamics components; several API and Python-binding details are known from the README and SOURCE INDEX, so those links are shown only where documented or marked unverified.
Main entry points: robot.cpp Robot client · robot.h Kinematics dynamics · leader_arm.cpp UPC leader arm · robot_command_builder.cpp Command builders
Components 23
Robot client
- Robot client
src/robot.cpp - Robot API
include/rby1-sdk/robot.h - Robot services
protos/rb/api - Robot state
python/robot_state.cpp - Robot info
python/robot_info.cpp - Power and system ops
protos/rb/api - State and log streams
src/robot.cpp
Command execution
- Command builders
src/robot_command_builder.cpp - Command interfaces
include/rby1-sdk/robot_command_builder.h - Command feedback
src/robot_command_feedback.cpp - Command schemas
protos/rb/api/robot_command.proto
Robot modeling
- Kinematics dynamics
include/rby1-sdk/dynamics/robot.h - Dynamics state
include/rby1-sdk/dynamics/state.h - Robot models
include/rby1-sdk/model.h - Math and optimization
include/rby1-sdk/math/optimal_control.h - SE3 math
src/math/se3.cpp
Devices and control
- UPC leader arm
src/upc/leader_arm.cpp - Dynamixel bus
src/base/dynamixel_bus.cpp - Event loop
include/rby1-sdk/base/event_loop.h
Python API
- Python bindings
python/robot.cpp - Python package
python/rby1_sdk/__init__.py
Other components
- SDK user
- RB-Y1 robot
Connections 22
- SDK user → Robot API: uses
README.md - Robot API → Robot client: delegates to
src/robot.cpp - Robot client → RB-Y1 robot: connects by gRPC
src/robot.cpp - Robot client → Robot services: calls services
- SDK user → Command interfaces: configures
include/rby1-sdk/robot_command_builder.h - Command interfaces → Command builders: builds
src/robot_command_builder.cpp - Robot client → Command builders: sends commands
- Command builders → Command schemas: encodes
- Robot client → Command feedback: returns feedback
src/robot.cpp - Robot client → Robot state: provides state
- Robot client → Robot info: provides info
- Robot client → State and log streams: starts streams
src/robot.cpp - Robot client → Power and system ops: exposes operations
- Robot models → Kinematics dynamics: creates model
include/rby1-sdk/model.h - Kinematics dynamics → Dynamics state: computes state
include/rby1-sdk/dynamics/robot.h - Kinematics dynamics → SE3 math: uses transforms
include/rby1-sdk/dynamics/robot.h - Math and optimization → Kinematics dynamics: uses model
include/rby1-sdk/math/optimal_control.h - SDK user → Python package: imports
README.md - Python package → Python bindings: exposes bindings
- SDK user → UPC leader arm: controls arm
- UPC leader arm → Dynamixel bus: uses bus
- UPC leader arm → Event loop: schedules control