人形机器人 VR 遥操作
项目背景
本项目基于 avp_teleoperate 框架进行二次开发,旨在实现人形机器人的 VR 远程遥操作。通过调研开源项目(如 human-arm-retarget、宇树 avp_teleoperate 等),选定 avp_teleoperate 作为基础架构,并针对特定机器人型号完成适配与落地。
一、VR 设备选型及环境配置
可选设备包括 Apple Vision Pro、PICO 4 Ultra Enterprise 或 Meta Quest 3。考虑到成本与功能实现,选用 PICO 4 Ultra Enterprise。配置流程参考官方教程。
1. 创建 Conda 环境
conda create -n tv python=3.8
conda activate tv
conda install pinocchio -c conda-forge
pip install meshcat
2. 克隆项目并安装依赖
cd ~
git clone https://github.com/unitreerobotics/avp_teleoperate.git
cd avp_teleoperate
pip install -r requirements.txt
3. 安装 mkcert
# Linux 环境示例
sudo apt-get install build-essential procps curl file git
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> $HOME/.bash_profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install mkcert
4. 生成证书
# 查看本机 IP
ifconfig | grep inet
# 假设 IP 为 192.168.100.133
mkcert -install && mkcert -cert-file cert.pem -key-file key.pem 192.168.100.133 localhost 127.0.0.1
# 拷贝证书到项目目录
cp cert.pem key.pem ~/avp_teleoperate/teleop/
# 开放防火墙端口
sudo ufw allow 8012
# 在 VR 设备中安装证书
mkcert -CAROOT
二、修改 avp_teleoperate
1. 代码目录结构
avp_teleoperate/
├── act # 模仿学习策略相关文件
├── assets # 机器人 URDF 相关文件
├── scripts # 工具类文件
└── teleop # 遥操作主要文件
├── image_server/ # 图像推流服务端与客户端
├── robot_control/ # IK 解算、手臂控制
│ ├── robot_arm_ik.py
│ ├── robot_arm.py
│ └── robot_hand.py
├── teleop_hand_and_arm.py # 启动程序
└── teleop_hand.py # 测试脚本
需修改部分:导入自定义机器人 URDF、完成逆运动学解算、搭建通信代码。
2. 机器人 URDF
根据结构坐标系建立 URDF 文件,可使用 SolidWorks 导出后手动优化。使用 Robot Viewer 或 ROS Rviz 验证关节旋转、限位及连杆位置是否正确。
3. 逆运动学验证
在 robot_arm_ik.py 中构建逆运动学类。将非机械臂关节加入 self.mixed_jointsToLockIDs 锁定,仅对机械臂进行解算,并添加末端帧。
该方案将传统逆运动学问题重构为带权重平衡的多目标优化问题,优化位置精度、姿态精度、运动平滑性和能量效率。采用 CasADi 符号计算框架实现自动微分,配置 IPOPT 求解器满足实时控制要求(<10ms)。
运行 python robot_arm_ik.py 可验证轨迹运动效果。
4. 搭建通信
官方使用 DDS 实现关节层面控制。需根据实际机器人通信方式创建 robot_ArmController 控制器,确保以一定频率收发数据。
5. 主程序启动
在 teleop_hand_and_arm.py 中导入逆运动学库、通信控制器及机器人类型,实例化相关对象。
6. 验证
在仿真环境中测试 VR 控制机器人手臂运动。确认无误后连接实物。
执行命令:
python teleop_hand_and_arm.py --arm=your_robot
操作步骤:
- 戴上 XR 头显设备(如 PICO 4 Ultra Enterprise)。
- 连接对应 WiFi 热点。
- 打开浏览器应用,访问网址:
https://192.168.100.133:8012?ws=wss://192.168.100.133:8012- 注意:IP 地址需与主机匹配。
- 若弹出安全警告,点击 Advanced -> Proceed to ip (unsafe)。
- 点击 Enter VR。
- 若有图传模块,XR 设备中将显示机器人第一人称视角;否则显示黑屏。
- 终端打印连接信息后,输入
r即可控制机器人手臂运动。
总结
本文介绍了基于 avp_teleoperate 框架搭建人形机器人 VR 遥操作系统的完整流程,涵盖设备选型、环境配置、URDF 与 IK 修改、通信搭建及验证步骤,适用于作业类人形机器人的远程操控开发。

