前言
在具身智能领域,利用 VR 设备进行遥操作数据采集是训练机器人策略模型的关键环节。本文以宇树 G1 人形机器人为例,梳理从 VR 遥操作程序(avp/xr_teleoperate)到模仿学习框架(unitree_IL_lerobot)的完整开发链路。我们将探讨如何配置环境、连接 XR 设备、采集数据并将其转换为 LeRobot 格式进行 Pi0、Diffusion Policy 等策略的训练。
第一部分 基于 avp 程序的 VR 摇操配置
早期的遥操作方案主要依赖 avp_teleoperate 项目,该项目基于 OpenTeleVision 改造,支持 Apple Vision Pro 等设备控制宇树 H1/G1 系列机器人。
1.1 基础环境搭建
确保主机运行 Ubuntu 20.04 或 22.04。通信库已从旧的 unitree_dds_wrapper 更新为 Python 版的 unitree_sdk2_python。
git clone https://github.com/unitreerobotics/unitree_sdk2_python.git
cd unitree_sdk2_python
pip install -e .
逆运动学(IK)环境需要安装 Pinocchio、CasADi 和 Meshcat。注意 Pinocchio 版本需锁定为 3.1.0,否则可能导致后续 TeleVision 环境出错。
conda create -n tv python=3.8
conda activate tv
conda install pinocchio -c conda-forge
pip install meshcat casadi
1.2 证书与通信配置
由于 WebXR 要求 HTTPS 连接,本地测试需生成自签名证书。使用 mkcert 工具生成证书并安装到 XR 设备。
brew install mkcert
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
mkcert -install && mkcert -cert-file cert.pem -key-file key.pem <本机 IP> localhost 127.0.0.1
cp cert.pem key.pem ~/avp_teleoperate/teleop/
同时需在防火墙开放端口(如 8012),并在 XR 设备的 Safari 浏览器中启用 WebXR 功能标志。
1.3 硬件与启动流程
硬件方面,除了 XR 头显,还需在机器人头部安装双目相机用于第一人称视角,手腕处安装深度相机(如 D405)。启动前需先开启灵巧手服务及图像推流服务(image_server.py)。
主程序启动时,建议双人配合:一人佩戴 XR 设备访问 https://<主机 IP>:8012 进入 VR 模式,另一人在终端按下 r 键启动遥操作。若需录制数据,可追加 --record 参数。
python teleop_hand_and_arm.py --arm=G1_29 --hand=dex3 --record
第二部分 xr_teleoperate 升级与部署
随着生态演进,xr_teleoperate 作为 avp 的升级版,增强了对多种 XR 设备(手势/手柄)的支持,并增加了对强脑(BrainCo)灵巧手的适配。
2.1 安装与仿真
创建新的 conda 环境并克隆仓库。注意 unitree_sdk2_python 的版本需匹配。
conda create -n tv python=3.10 pinocchio=3.1.0 numpy=1.26.4 -c conda-forge
conda activate tv
git clone https://github.com/unitreerobotics/xr_teleoperate.git
xr_teleoperate
git submodule update --init --depth 1
pip install -r requirements.txt


