RynnRCP is a complete set of robot service agreements and frameworks, mainly consisting of two modules: RCP framework and RobotMotion.
Users can gain a clear and comprehensive understanding of the complete workflow from data acquisition from sensors to model inference and robot action execution through RynnRCP. The well-defined layered structure and standard communication protocols also make it relatively easy for users to adapt the SDK to their own usage scenarios.
In the future, RCP framework will integrate more robust and adaptable link layers for various scenarios to facilitate high-speed and stable interactions with cloud model inference. Additionally, RobotServer will be compatible with more hardware platforms. Furthermore, model inference services may also be integrated into the edge and open-sourced, making the entire RynnRCP even more comprehensive.
RobotMotion will provide robot control interfaces for different forms of inference models, adopting a unified foundational module and development paradigm for robot regulation and control. Additionally, RobotMotion will offer simulation tools based on Mujoco, serving as a secure visualization platform for validating model execution, enabling developers to confirm their robot configurations and quickly build embodied intelligent robot control systems.
.
├── common # Common message definitions and components
│ ├── config # Configuration files
│ ├── lcm # LCM message type declarations
│ ├── proto # Protobuf message type declarations
│ └── third_party # Third-party dependencies source code
├── examples # Deployment preparations and running instructions for different robots
├── robot_motion # Implementations related to RobotMotion
│ ├── models # Robotic arm models
│ └── robots # Supported robots
│ └── lerobot # Control implementation for lerobot, including simulation tools
├── rcp_framework # Implementations related to rcp_framework
│ ├── cpp # Contains the C++ implementations of rcp_framework
│ │ ├── common # Contains communication capabilities and other common components
│ │ └── robot_server # Contains implementations related to robot_server
│ └── robots # Supported robots
│ └── so100 # Minimal project for so100, including camera nodes
└── scripts # Compilation scripts
Note: For detailed usage instructions, please refer to: RynnBot Embodied Intelligence Development Platform User Documentation
git clone https://github.com/alibaba-damo-academy/RynnRCP.git
cd RynnRCP
# Using venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Or using Conda
conda create --name venv python=3.10
conda activate venv
pip install -r requirements.txt
# Install RobotMotion module
cd robot_motion/robots/lerobot
pip install -e .
This will create and activate the required environment and install all dependencies. Python 3.10 is the minimum required version.
cd RynnRCP
bash scripts/deploy_linux.sh
cd RynnRCP
bash scripts/deploy_mac.sh
Run the appropriate one-click installation script for your platform. These scripts will automatically check and install necessary dependencies:
- Linux: CMake, build tools, Python development libraries, GLib, Glog, Protobuf, OpenSSL 3, and more via apt package manager
- macOS: CMake, yaml-cpp, libwebsockets, glog, OpenSSL 3 via Homebrew, plus protobuf from source for compatibility
Both scripts will compile required third-party libraries (such as LCM, libwebsockets, Paho MQTT, libyaml-cpp, etc.) and compile the server for the lerobot sample program.
During the execution of the script, the following operations will also be performed:
/etc/sysctl.conf to accommodate LCM image transmissionPlatform-specific Notes:
Linux:
macOS:
To simplify the configuration process, we provide an interactive configuration script that can automatically detect devices and guide you through the configuration. You can run the following command to start the configuration tool:
cd RynnRCP
# Using Conda environment
conda activate venv
# Or using venv environment
source venv/bin/activate
# Run the configuration script
python example/configure_so100.py
The script will guide you through the following configurations:
For more advanced or specific configuration needs, you can also manually edit the following configuration files:
product_key, device_name, device_secret) from the robot device activation page and configure them in the rcp_framework/robots/so100/config/device_config.yaml file (the parameters http_url/endpoint_mqtt/endpoint_websocket do not need modification).observation.images.front. On Linux, execute ls /dev/video* to check the device number, for example, /dev/video0, and fill it in the device field. On macOS, simply enter the corresponding device ID, for example, 0.observation.images.wrist, On Linux, execute ls /dev/video* to check the device number, for example, /dev/video2, and fill it in the device field. On macOS, simply enter the corresponding device ID, for example, 2.rcp_framework/robots/so100/config/cameras.yaml.Configure the relevant parameters for the robot. The configuration process may vary for different robots. For the lerobot, the relevant configurations and the method for calibrating the robotic arm can be found in: RobtoMotion LeRobot README.
cd RynnRCP
# Using Conda environment
conda activate venv
# Or using venv environment
source venv/bin/activate
# Launch nodes
bash example/so100.sh
# Or launch nodes and output debug logs to terminal
bash example/so100.sh DEBUG
This script will sequentially start the following components to support the so100's edge functionality:
Notes:
$HOME/RynnRcplog/ folder.RobotServer provides a framework for building robot server modules, primarily responsible for handling communication and data exchange between robot devices and cloud. This module include Action Server (ActionServer), Sensor Server (SensorServer), and Device Monitor Server (DeviceMonitorServer), which communicate via data transmission protocols such as MQTT and WebSocket for controlling robot devices and data collection.
Robot Motion provides a middleware that drives robot movement and task completion using different models, along with a Mujoco simulation visualization tool equipped with a physics engine, offering a safe environment for configuring and validating models for your robots.
The camera node implements a basic image capture and transmission class, providing efficient and real-time image capture and processing capabilities. This module utilizes the LCM protocol for instantaneous transmission of camera data and optimizes data processing and management through a multithreaded architecture.
Python
56.2%
C++
35.6%
Shell
5.4%
CMake
2.3%
RynnRCP is a complete set of robot service agreements and frameworks, mainly consisting of two modules: RCP framework and RobotMotion.
Users can gain a clear and comprehensive understanding of the complete workflow from data acquisition from sensors to model inference and robot action execution through RynnRCP. The well-defined layered structure and standard communication protocols also make it relatively easy for users to adapt the SDK to their own usage scenarios.
In the future, RCP framework will integrate more robust and adaptable link layers for various scenarios to facilitate high-speed and stable interactions with cloud model inference. Additionally, RobotServer will be compatible with more hardware platforms. Furthermore, model inference services may also be integrated into the edge and open-sourced, making the entire RynnRCP even more comprehensive.
RobotMotion will provide robot control interfaces for different forms of inference models, adopting a unified foundational module and development paradigm for robot regulation and control. Additionally, RobotMotion will offer simulation tools based on Mujoco, serving as a secure visualization platform for validating model execution, enabling developers to confirm their robot configurations and quickly build embodied intelligent robot control systems.
.
├── common # Common message definitions and components
│ ├── config # Configuration files
│ ├── lcm # LCM message type declarations
│ ├── proto # Protobuf message type declarations
│ └── third_party # Third-party dependencies source code
├── examples # Deployment preparations and running instructions for different robots
├── robot_motion # Implementations related to RobotMotion
│ ├── models # Robotic arm models
│ └── robots # Supported robots
│ └── lerobot # Control implementation for lerobot, including simulation tools
├── rcp_framework # Implementations related to rcp_framework
│ ├── cpp # Contains the C++ implementations of rcp_framework
│ │ ├── common # Contains communication capabilities and other common components
│ │ └── robot_server # Contains implementations related to robot_server
│ └── robots # Supported robots
│ └── so100 # Minimal project for so100, including camera nodes
└── scripts # Compilation scripts
Note: For detailed usage instructions, please refer to: RynnBot Embodied Intelligence Development Platform User Documentation
git clone https://github.com/alibaba-damo-academy/RynnRCP.git
cd RynnRCP
# Using venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Or using Conda
conda create --name venv python=3.10
conda activate venv
pip install -r requirements.txt
# Install RobotMotion module
cd robot_motion/robots/lerobot
pip install -e .
This will create and activate the required environment and install all dependencies. Python 3.10 is the minimum required version.
cd RynnRCP
bash scripts/deploy_linux.sh
cd RynnRCP
bash scripts/deploy_mac.sh
Run the appropriate one-click installation script for your platform. These scripts will automatically check and install necessary dependencies:
- Linux: CMake, build tools, Python development libraries, GLib, Glog, Protobuf, OpenSSL 3, and more via apt package manager
- macOS: CMake, yaml-cpp, libwebsockets, glog, OpenSSL 3 via Homebrew, plus protobuf from source for compatibility
Both scripts will compile required third-party libraries (such as LCM, libwebsockets, Paho MQTT, libyaml-cpp, etc.) and compile the server for the lerobot sample program.
During the execution of the script, the following operations will also be performed:
/etc/sysctl.conf to accommodate LCM image transmissionPlatform-specific Notes:
Linux:
macOS:
To simplify the configuration process, we provide an interactive configuration script that can automatically detect devices and guide you through the configuration. You can run the following command to start the configuration tool:
cd RynnRCP
# Using Conda environment
conda activate venv
# Or using venv environment
source venv/bin/activate
# Run the configuration script
python example/configure_so100.py
The script will guide you through the following configurations:
For more advanced or specific configuration needs, you can also manually edit the following configuration files:
product_key, device_name, device_secret) from the robot device activation page and configure them in the rcp_framework/robots/so100/config/device_config.yaml file (the parameters http_url/endpoint_mqtt/endpoint_websocket do not need modification).observation.images.front. On Linux, execute ls /dev/video* to check the device number, for example, /dev/video0, and fill it in the device field. On macOS, simply enter the corresponding device ID, for example, 0.observation.images.wrist, On Linux, execute ls /dev/video* to check the device number, for example, /dev/video2, and fill it in the device field. On macOS, simply enter the corresponding device ID, for example, 2.rcp_framework/robots/so100/config/cameras.yaml.Configure the relevant parameters for the robot. The configuration process may vary for different robots. For the lerobot, the relevant configurations and the method for calibrating the robotic arm can be found in: RobtoMotion LeRobot README.
cd RynnRCP
# Using Conda environment
conda activate venv
# Or using venv environment
source venv/bin/activate
# Launch nodes
bash example/so100.sh
# Or launch nodes and output debug logs to terminal
bash example/so100.sh DEBUG
This script will sequentially start the following components to support the so100's edge functionality:
Notes:
$HOME/RynnRcplog/ folder.RobotServer provides a framework for building robot server modules, primarily responsible for handling communication and data exchange between robot devices and cloud. This module include Action Server (ActionServer), Sensor Server (SensorServer), and Device Monitor Server (DeviceMonitorServer), which communicate via data transmission protocols such as MQTT and WebSocket for controlling robot devices and data collection.
Robot Motion provides a middleware that drives robot movement and task completion using different models, along with a Mujoco simulation visualization tool equipped with a physics engine, offering a safe environment for configuring and validating models for your robots.
The camera node implements a basic image capture and transmission class, providing efficient and real-time image capture and processing capabilities. This module utilizes the LCM protocol for instantaneous transmission of camera data and optimizes data processing and management through a multithreaded architecture.
Python
56.2%
C++
35.6%
Shell
5.4%
CMake
2.3%