unitree-g1-brainco-hand
July 16, 2026 · View on GitHub
English Version | 中文版
Tutorials and simple motion demos for adapting the BrainCo Revo2 dexterous hand to the Unitree G1 robot.
Version Notes
Update 2026.7.16
- Added the
eegbrain-controlled robot task domain (G1-29 DOF only), which can connect to the BrainCo brain-controlled robot training platform.
Fix 2026.6.29
- Important: the built-in Unitree arm control service is automatically disabled before startup to avoid conflicts between upper-limb motions developed through
/arm_sdkand the built-in Unitree arm control service, which could otherwise cause abnormal arm motion.
Update 2026.6.8:
- Improved the state management system with multiple task domains for easier task creation and management
calibrate: camera calibration (G1-29 DOF only)simple: simple arm motions (supports G1-23 DOF and G1-29 DOF)- Updated the remote UI control interface
ui_clientand its related APIs - Updated the dexterous hand SDK in
ros2_stark_ws
Previous Versions
| Version | Update | Description | Access |
|---|---|---|---|
| v2.0.0 | 2026.6 | Current version | main branch |
| v1.1.0 | 2026.4 | Supports both G1-23 DOF and G1-29 DOF | v1.1.0_basic branch |
| v1.0.0 | 2025.11 | Supports only G1-23 DOF | Releases v1.0.0 |
Repository Overview
| Dir | Function | Description |
|---|---|---|
| brainco_ws | main control | G1 arm IK computation is based on the official Unitree example Unitree/xr_teleoperate. Dual-arm dual-hand control is based on ROS 2. |
| ros2_stark_ws | Revo2 Hand SDK | The BrainCo dexterous hands communicate with the Unitree G1 through dual RS-485 serial ports. The left and right hands transmit data simultaneously through two /dev/ttyUSB* ports.Dual-hand control is based on the official BrainCo ROS 2 example stark-serialport-example/ros2_example. |
| cam_calibr | hand-eye calibration | |
| ui_client | control GUI |
Dexterous Hand Integration
01 Dexterous Hand Installation, Robot Startup, and Remote Connection
Environment Setup
The following should be deployed on the G1 robot
02 Install Conda Environment and Torch
03 Install Unitree-SDK, ROS2, URDF, BrainCo-SDK, Control System, and Build Configuration
The following should be deployed on the host PC
Test Run
07 Example 2: Hand-Eye Calibration
08 Example 3: Brain-Controlled Robot
FAQ
Development Safety Recommendations
- Before joint debugging, make sure all configuration files are set correctly. Recommended test order:
- Test arm motion first, then install the dexterous hands for combined testing.
- Test simple non-vision motions first.
- Test replay motions next.
- Test vision-based grasping motions next.
- Test lower-limb movement or turning next.
- Connect BrainCo brain-controlled robot training platform event mappings last.
- For segmented motions, pay attention to whether there is an obvious jump between segments.
- Upper-body motion control includes waist motion. If you only need to move the arms, fix the waist; otherwise waist movement can shift the target position.
- For motions near a table, use
SafeArmDownfirst. The normalArmDownis more suitable when the robot is away from the table and there is enough space below. - If the robot moves abnormally or becomes uncontrollable during joint debugging:
- Normal case: immediately click
Readyto return the robot state to zero directly, or clickReady (Table Safe)to return to zero while avoiding the table. - Emergency case: click
Shutdowndirectly to stop the program. - If the robot still cannot be controlled, press and hold the remote controller
Damping Mode (L2 + B)for more than 5 seconds to force the robot into damping mode, then power it off.
- Normal case: immediately click
- Before formal joint debugging, actively clear the table and the space around the robot. Leave extra clearance in front of, beside, and below the arms whenever possible.