这是一个结合了 YOLOv8 视觉识别、Unitree G1 人型机器人运动控制以及 BrainCo Stark 灵巧手动作执行的石头剪刀布游戏项目。
项目分为服务端(PC)和客户端(机器人)两部分:
- 服务端 (Server):运行在高性能 PC 上,通过 RealSense 相机画面进行实时 YOLO 推理,识别用户的猜拳手势。
- 客户端 (Client):运行在 Unitree G1 机器人内部,负责读取相机数据发送给服务端,并根据识别结果控制 G1 手臂抬起,同时驱动灵巧手做出获胜手势。
- 机器人平台:Unitree G1 Humanoid Robot
- 末端执行器:BrainCo Stark 灵巧手 (Revo 系列)
- 视觉传感器:Intel RealSense 深度相机 (如 D435i)
- 计算设备:
- PC 端:带有 NVIDIA 显卡的 Windows/Linux 电脑 (用于 YOLO 推理)
- 机器人端:G1 内部自带计算单元 (Ubuntu 环境)
BrainCo-RPS-Game/
├── client/ # 机器人端代码
│ ├── rpsclientv2.py # 客户端主程序
│ ├── bc_stark_sdk/ # BrainCo 灵巧手 SDK 包 (需厂商提供)
│ └── requirements_client.txt # 客户端依赖
├── server/ # 服务端代码
│ ├── server.py # 推理服务主程序
│ ├── yolo_rps.pt # 训练好的 YOLO 模型权重
│ └── requirements.txt # 服务端依赖
└── README.md # 项目说明文档
服务端运行在 PC 上,建议使用 Conda 创建独立的 YOLO 推理环境。
- 创建并激活环境:
conda create -n rps_server python=3.10
conda activate rps_server
- 安装 Python 依赖:
cd server
pip install -r requirements.txt
- 准备模型:
确保
yolo_rps.pt文件位于server/目录下。
客户端运行在机器人的机载电脑(Ubuntu)上。为了不破坏机器人原有的系统环境,强烈建议使用 Miniconda 进行隔离。
如果机器人上未安装 Conda,请先安装 Miniconda。
# 创建名为 rps_client 的环境,指定 Python 3.10
conda create -n rps_client python=3.10
# 激活环境
conda activate rps_client
安装 RealSense 驱动和基础图像处理库:
cd client
pip install -r requirements_client.txt
(主要包含:numpy, opencv-python, pyrealsense2)
用于控制 G1 机器人的身体运动(如抬手动作)。
- 安装编译依赖(需 sudo 权限):
sudo apt install python3-pip
- 克隆并安装 SDK:
cd ~
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .
- 依赖补全:
SDK 依赖
cyclonedds。如果安装过程遇到Could not locate cyclonedds错误,请参考文末常见问题排查章节进行编译安装。
用于控制灵巧手做出剪刀、石头、布的动作。
- 准备 强脑手 SDK 文件:
git clone https://github.com/BrainCoTech/stark-serialport-example.git
cd brainco_hand_sdk/python
pip3 install -r requirements.txt- 依赖检查: BrainCo SDK 需要以下库支持:
pip install "asyncio>=3.4.3" "colorlog>=6.9.0"
- 修改 IP 地址:
打开
client/rpsclientv2.py,找到配置区域,修改PC_IP为你 服务端 PC 的局域网 IP 地址。
PC_IP = "192.168.123.xxx" # 你的电脑 IP- 确认 USB 端口:
确认灵巧手连接在机器人的哪个 USB 口(通常为
/dev/ttyUSB0或/dev/ttyUSB1),并在rpsclientv2.py中修改HAND_CONFIG。
conda activate rps_server
cd server
python server.py
看到 "🚀 PC端推理服务已启动..." 即表示就绪。
conda activate rps_client
cd client
python rpsclientv2.py
- 程序启动后,机器人会自动“预热”灵巧手。
- 当你在相机前做出猜拳手势时,机器人将识别并控制手臂抬起,同时出拳获胜。
如果在安装 unitree_sdk2_python 时遇到此错误,需要手动编译 cyclonedds:
# 1. 编译 Cyclonedds
cd ~
git clone https://github.com/eclipse-cyclonedds/cyclonedds -b releases/0.10.x
cd cyclonedds && mkdir build install && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../install
cmake --build . --target install
# 2. 设置环境变量并重新安装 SDK
cd ~/unitree_sdk2_python
export CYCLONEDDS_HOME="~/cyclonedds/install"
pip install -e .
- 检查 USB 权限:
sudo chmod 777 /dev/ttyUSB* - 检查波特率是否匹配(SDK 默认会自动检测,但有时需要手动指定)。
- 确保机器人和 PC 处于同一局域网(推荐使用千兆路由器或网线直连)。
- 检查
rpsclientv2.py中 RealSense 的分辨率设置,降低分辨率可降低延迟。