LeRobot documentation

OpenArm

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

OpenArm

OpenArm 是一款专为物理 AI 研究和部署而设计的开源 7 自由度人形机械臂。

要获取您的 OpenArm(无论是组装好的还是 DIY 的)并加入全球社区,请访问 openarm.dev 浏览全球经过验证和认证的制造商。

有何独特之处?

  • 人类尺度设计:OpenArm 采用类人比例设计,针对身高约 160-165 厘米的人体进行缩放。这为安全、响应灵敏的操作提供了实际可达范围与可控惯性之间的最佳平衡。

  • 安全优先架构:OpenArm 采用 QDD 可反驱电机和高柔顺性设计,在保持实际负载能力(峰值 6.0kg / 额定 4.1kg)以应对真实世界任务的同时,优先考虑安全的人机交互。

  • 为持久耐用而设计:关键结构部件采用铝材和不锈钢制造,确保在重复数据收集和持续研究使用中具备稳健的性能。

  • 完全可获取且可构建:从 CNC 零件和 3D 打印外壳到电气布线,每个组件都设计为个人研究人员和实验室均可购买和构建,并提供完整的制造数据。

  • 实用且经济实惠:一套完整的双臂系统仅需 6,500 美元,OpenArm 以远低于传统人形机器人的成本,提供了研究级的性能。

平台要求

**Linux Only**: OpenArm currently only works on Linux. The CAN bus USB adapter does not have macOS drivers and has not been tested on Windows.

安全指南

在操作 OpenArm 之前,请阅读官方安全指南。要点如下:

  • 安全安装:使用螺丝或夹具将机械臂固定在一个平坦且稳定的表面上
  • 安全距离:操作时,将身体部位和物体保持在运动范围之外
  • 防护装备:始终佩戴护目镜;根据需要额外使用个人防护装备
  • 有效载荷限制:请勿超过规定的有效载荷限制(每只手臂峰值 6.0kg / 标称 4.1kg)
  • 紧急停止:了解紧急停止装置的位置和操作方法
  • 定期检查:检查螺丝是否松动、机械限位是否损坏、是否有异常噪音以及线路是否受损

硬件设置

请遵循官方的 OpenArm 硬件文档,以获取以下信息:

  • 物料清单与采购
  • 3D 打印说明
  • 机械装配
  • 电气布线

硬件仓库可在 github.com/enactic/openarm 上获取。

CAN 总线设置

OpenArm uses CAN bus communication with Damiao motors. Once you have the CAN bus USB adapter plugged into your Linux PC, follow the Damiao Motors and CAN Bus guide to configure the interface.

快速设置:

# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1

# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1

安装 LeRobot 🤗

请遵循我们的安装指南,然后安装 Damiao 电机支持:

pip install -e ".[damiao]"

用法

从动臂(机器人)

命令
API 示例
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

主臂(遥操作器)

主臂用于遥操作——通过手动移动它来控制从臂。

命令
API 示例
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

远程操作

要通过主从控制遥操作 OpenArm:

lerobot-teleoperate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

使用与校准时相同的 --robot.id 和 --teleop.id,以便 LeRobot 找到校准文件。

双手遥操作

要通过两个主臂和两个从臂遥操作双臂 OpenArm 设置:

lerobot-teleoperate \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can0 \
    --robot.left_arm_config.side=left \
    --robot.right_arm_config.port=can1 \
    --robot.right_arm_config.side=right \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can2 \
    --teleop.right_arm_config.port=can3 \
    --teleop.id=my_bimanual_leader

记录数据

要在遥操作期间记录数据集:

lerobot-record \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader \
    --dataset.repo_id=${HF_USER}/my_openarm_dataset \
    --dataset.single_task="Describe your task here" \
    --dataset.fps=30 \
    --dataset.num_episodes=10

lerobot-record 会将会话的日期和时间添加到数据集名称中,因此保存为 my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS。有关相机、键盘控制以及工作流的其他部分,请参阅 录制指南。

配置选项

Follower 配置

参数默认描述
port-CAN 接口(例如,can0)
sideNoneArm 侧:"left"、"right",或 None 表示自定义限制
use_can_fdTrue启用 CAN FD 以实现更高的数据速率
can_bitrate1000000标称比特率 (1 Mbps)
can_data_bitrate5000000CAN FD 数据比特率 (5 Mbps)
max_relative_targetNone相对目标位置的安全限制
position_kp按关节位置控制比例增益
position_kd按关节位置控制微分增益

Leader 配置

参数默认描述
port-CAN 接口(例如,can1)
manual_controlTrueDisable torque for manual movement
use_can_fdTrue启用 CAN FD 以实现更高的数据速率
can_bitrate1000000标称比特率 (1 Mbps)
can_data_bitrate5000000CAN FD 数据比特率 (5 Mbps)

电机配置

OpenArm 使用 Damiao 电机,其默认配置如下:

联合电机类型发送 IDRecv ID
joint_1(肩部水平旋转)DM80090x010x11
joint_2(肩部抬升)DM80090x020x12
joint_3(肩部旋转)DM43400x030x13
joint_4(肘部屈曲)DM43400x040x14
joint_5(手腕滚动)DM43100x050x15
joint_6(腕部俯仰)DM43100x060x16
joint_7(手腕旋转)DM43100x070x17
夹爪DM43100x080x18

故障排除

电机无响应

  1. 检查电源连接
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. 运行诊断:lerobot-setup-can --mode=test --interfaces=can0
  4. 有关更多详细信息,请参阅 Damiao 故障排除指南

未找到 CAN 接口

确保 CAN 接口已配置:

ip link show can0

资源

Update on GitHub