Skip to content

unitreerobotics/UniArmL1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UniArmL1

Unitree LOGO

UniArmL1 开源 6-DOF 机械臂及遥操作框架

VR demo Leader demo

✳️ 概述

当前项目 UniArmL1 是一个轻量化的开源 6-DOF 机械臂及遥操作框架,支持三种控制模式与标准化数据采集,采集数据可无缝对接 unitree_lerobot 进行模仿学习训练与部署。

核心功能:

  • 🎮 遥操作控制 — VR 手柄 / 键盘 / 主从臂三种模式实时控制 UniArmL1
  • 📦 数据采集 — 固定频率录制关节角度与相机图像,输出标准格式数据集
  • 🔄 训练对接 — 采集数据可直接用于 unitree_lerobot 模仿学习训练

完整流程:

硬件准备校准配置环境遥操作 & 数据采集训练部署

🔧 硬件准备

UniArmL1 机械臂的BOM 清单、组装指南与 3D 打印文件请参考:

👉 unitree_UniArmL1_hardware

Follower Leader

📥 配置环境

1. 克隆仓库

git clone https://github.com/unitreerobotics/UniArmL1
cd UniArmL1

2. 安装依赖

该脚本会安装全部依赖(含VR模式):

bash setup.sh

3. VR环境配置

使用VR遥操需额外配置以下步骤。VR 手柄模式需要安装 xrobotoolkit SDK,请参考 xrobotoolkit 文档 进行配置。

3.1 PC 上安装 XRoboToolkit-PC-Service

wget https://github.com/XR-Robotics/XRoboToolkit-PC-Service/releases/download/v1.0.0/XRoboToolkit_PC_Service_1.0.0_ubuntu_22.04_amd64.deb

sudo dpkg -i XRoboToolkit_PC_Service_1.0.0_ubuntu_22.04_amd64.deb

3.2 Pico 上安装客户端

可以在资源库中找到 XRoboToolkit app。

🛠️ 遥操作

1. 检查端口

conda activate UniArmL1
# 查看串口设备
python teleop/scripts/check_port_all.py

如果串口权限不足:

sudo chmod 777 /dev/ttyACM*

2. 校准

首次使用或更换电机后,需要先完成机械臂校准。校准前请先确认主臂和从臂对应的串口号,并根据实际情况修改 --port 参数。

完整校准指令、零位姿态和关节旋转步骤请参考:[校准过程]

⚠️ 未校准将无法正常控制机械臂! 校准前请确保机械臂已正确组装并通电。

3. 修改配置文件

默认配置保存在 teleop/teleop_config.yaml,可直接修改,也可通过命令行参数覆盖,详见参数说明

4. 启动遥操作

4.1 VR 手柄模式

VR demo
python teleop/teleop.py -i vr

VR 头戴打开 XRoboToolkit app,输入 PC 端IP,点击连接,勾选控制面板中的 controller、send;电脑端打开 XRoboToolkit-PC-Service软件,按住手柄侧键即可开始遥操作。

4.2 键盘模式

启动之后按住某个方向键机械臂会对应缓慢移动。

python teleop/teleop.py -i keyboard

具体操控机械臂的按键会在终端中说明,也可以在代码中查看。

4.3 主从遥操模式

Leader demo
使用另一条 UniArmL1 作为主臂,直接映射关节角度:
python teleop/teleop.py -i leader --port /dev/ttyACM1 --leader-port /dev/ttyACM2

主臂处于零阻尼模式,从臂直接跟随主臂关节角度。

📦 数据采集

添加 --record 即可在遥操作过程中录制数据:

python teleop/teleop.py -i vr --record --task-dir ./data/pick_place --task-goal "pick up the cup"

🧑‍✈ 参数说明

以下是 teleop.py 支持的命令行参数及其说明:

  • --input, -i: 输入源模式,可选值:vr (VR 手柄)、keyboard (键盘)、leader (主从臂)。默认值:vr
  • --port, -p: 从臂串口端口。默认值:/dev/ttyACM1
  • --leader-port: 主臂串口端口,仅在主从模式下使用。默认值:/dev/ttyACM2
  • --urdf: URDF 文件路径。默认值:assets/uniarml1/urdf/UniArmL1.urdf
  • --mesh-dir: 网格目录路径。默认值:assets/uniarml1/urdf/
  • --cameras, -c: 相机配置,格式为 name:id,例如 head:0 wrist:2。可以指定多个。
  • --no-camera: 禁用相机显示。默认不启用。
  • --record, -r: 启用数据录制。默认不启用。
  • --task-dir: 录制数据目录。默认值:./data/teleop
  • --task-goal: 任务目标描述。默认值:空字符串。
  • --record-hz: 录制频率 (Hz)。默认值:50。
  • --meshcat: 启用 Meshcat 可视化。默认不启用。
  • --vr-scale: VR 增量缩放因子。默认值:1.2。

🕊 训练部署

采集的数据可直接用于 unitree_lerobot 的模仿学习训练与部署,详见 unitree_lerobot 文档

UniArmL1 策略推理演示

🎉 致谢

  • lerobot — 开源机器人模仿学习框架,提供数据采集、训练和部署的完整工具链
  • SO-ARM100 — 开源机械臂硬件设计与组装指南
  • xr_teleoperate — Unitree XR 遥操作框架,提供了多种控制模式和数据采集功能
  • unitree_lerobot — Unitree 基于 LeRobot 的模仿学习实现,用于训练和部署机器人策略

许可证

本项目采用 Apache License 2.0 许可证 - 详见 LICENSE 文件。

About

UniArmL1 是一个轻量化的机械臂遥操作框架,支持三种控制模式与标准化数据采集,采集数据可无缝对接 unitree_lerobot 进行模仿学习训练与部署

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors