伯克利开源低成本的示教神器GELLO-3.4.遥操I2RT-YAM机械臂

1. 系统概述

GELLOGeneralized End-to-End Learning for Locomation and manipulation Operations)是伯克利开源的低成本遥操作工具,可用于控制多种机械臂进行数据收集和遥控操作。本手册针对YAM机械臂的GELLO适配进行详细说明。

GELLO支持多种主流机械臂平台,包括URPandaFR3xArm7等。YAM机械臂作为6自由度协作机械臂,通过GELLO可实现直观的演示教学和遥控操作。

yam-1.png

1.1 适用范围说明

本文档主要针对MuJoCo仿真环境下的YAM机械臂遥操作进行说明。 MuJoCo是一款高性能物理仿真引擎,可在无真实硬件的情况下进行算法验证和演示教学。

同时,本文档中的配置方法同样适用于真实YAM机械臂。使用真实机械臂时,只需将启动命令中的sim_yam改为yam,并确保机械臂与控制计算机正确连接即可。

  提示:建议首次使用先在MuJoCo仿真环境中进行练习,熟悉操作后再连接真实机械臂。

yam-2.png 

1.2 相关资源链接

本文档需配合以下资源使用:

·GELLO软件安装教程:包含完整的软件安装、环境配置、依赖包安装步骤

http://rosrobot.cn/?id=657

·GELLO-YAM配置指南:YAM机械臂的关节配置和偏移量校准说明

http://rosrobot.cn/?id=709

·GELLO项目官网:论文、演示视频和其他资源

https://wuphilipp.github.io/gello_site/

·软件库GitHub:源代码和更新

https://github.com/wuphilipp/gello_software

·硬件库GitHubSTL文件和硬件说明

https://github.com/wuphilipp/gello_mechanical

2.1 硬件要求

·YAM 6自由度协作机械臂mujoco仿真环境× 1

·GELLO-YAMn臂× 1

·控制用PCUbuntu 20.04/22.04)× 1

·USB数据线(用于连接GELLO

·网络连接(用于下载依赖包)

2.2 软件依赖

·Python 3.8+

·ROS Noetic / ROS2(根据机械臂驱动要求)

·Git

·pip3

3. 环境配置

首先克隆GELLO软件仓库并设置Python虚拟环境:

# 进入项目目录

cd ~/projects/gello_software/

# 激活虚拟环境

source .venv/bin/activate

yam-3.png 

 提示:确保每次操作前都激活虚拟环境,否则会出现依赖缺失错误。

4. 设备连接与识别

连接GELLO后,需要确认系统识别到串口设备:

# 查看串口设备列表

ls /dev/serial/by-id

正常输出示例:

yam-4.png

 警告:记录完整的设备串口号,后续步骤需要使用。如果没有任何输出,请检查USB连接和驱动。

5. 关节配置说明

不同机械臂的关节信号方向可能不同,需要根据实际机型配置关节符号参数。以下是常见机型的配置参考:

机器人类型

关节信号参考

自由度

备注

UR

1 1 -1 1 1 1

6

通用机器人

Panda

1 -1 1 1 1 -1 1

7

Franka Panda

FR3

1 1 1 1 1 -1 1

7

Franka FR3

xArm7

1 1 1 1 1 1 1

7

UFACTORY xArm7

YAM

1 -1 -1 -1 1 1

6

YAM协作臂

 警告:YAM机械臂的关节符号为:1 -1 -1 -1 1 1。符号表示该关节运动方向与控制输入的关系,错误的符号会导致关节反向运动。

6. 偏移量校准

首次使用或更换机械臂后,需要进行偏移量校准。校准步骤如下:

6.1 将机械臂复位到零位

手动或使用程序将所有关节调整到0度位置。

6.2 运行校准脚本

使用以下命令运行校准程序:

python3 scripts/gello_get_offset.py \
   --start-joints 0 0 0 0 0 0 \
    --joint-signs 1 -1 -1 -1 1 1 \
    --port /dev/serial/by-id/复制你的设备串口号

参数说明:

·--start-joints:机械臂当前各关节角度(单位:度)

·--joint-signs:关节运动方向符号(根据第5节表格设置)

·--port:串口设备路径(根据第4节获取的实际路径)

 提示:校准完成后,系统会输出偏移量参数,请记录下来供后续使用。

python3 scripts/gello_get_offset.py   --start-joints 0 0 0 0 0 0   --joint-signs 1 -1 -1 -1 1 1  --port /dev/serial/by-id/usb-FTDI_USB__-__Serial_Converter_FTBTMMRU-if00-port0

yam-5.png 

7. 代码配置修改

根据校准结果修改GELLO代理配置文件。打开以下文件进行编辑:

gello_software/gello/agents/gello_agent.py

需要修改的内容包括:

·关节符号配置(与第5节一致)

·串口设备路径(与第4节一致)

·偏移量参数(来自第6节校准结果)

 提示:修改完成后保存文件。建议先备份原始文件以防万一。

例如:

修改代码gello_software/gello/agents/gello_agent.py

yam-6.png 

8. 启动遥操作

完成以上配置后,可以启动遥操作系统。需要同时运行两个终端:

8.1 终端1:启动机器人节点

cd ~/projects/gello_software/

source .venv/bin/activate

python3 experiments/launch_nodes.py --robot sim_yam

可选的--robot参数:

·sim_yamYAM仿真模式(测试使用)

·yam:连接真实YAM机械臂

·sim_urUR仿真模式

·pandaFranka Panda

·其他支持的机械臂类型

yam-8.png

yam-9.png 

yam-10.png 

8.2 终端2:启动GELLO代理

cd ~/projects/gello_software/

source .venv/bin/activate

python3 experiments/run_env.py --agent=gello

yam-11.png 

遥操作如图

yam-12.png

此时GELLO控制器应与机械臂建立连接,可以通过控制器进行遥操作。

 警告:确保两个终端都已激活虚拟环境,否则会出现模块导入错误。

9. 常见问题排查

Q1: 无法识别串口设备

A: 检查USB连接是否牢固,尝试更换USB端口。如仍无法识别,可能需要安装FTDI驱动。

Q2: 关节运动方向相反

A: 检查--joint-signs参数设置是否正确,参考第5节的配置表格。

Q3: 校准后位置偏差大

A: 确认机械臂校准时确实处于零位,重新执行校准流程。

Q4: 启动时报模块缺失错误

A: 确认已激活虚拟环境,并检查requirements.txt中的依赖是否全部安装。

Q5: 遥操作响应延迟

A: 检查USB连接稳定性,关闭不必要的后台程序,确保控制计算机性能足够。

Q6: 机械臂无响应

A: 检查机械臂电源和急停开关状态,确认ROS节点正常运行。

10. 安全注意事项

10.1 操作前检查

·确保机械臂安装稳固,工作范围内无障碍物

·检查急停开关功能正常

·确认所有人员处于安全区域

10.2 操作过程中

·操作人员应始终监控机械臂运动状态

·发现异常立即按下急停

·禁止在机械臂运动时进入工作区域

10.3 维护保养

·定期检查USB线缆和连接器

·保持控制器清洁,避免液体溅入

·长时间不用时断开电源

10.4 故障处理

·遇到无法解决的问题,先断开电源

·记录错误信息,联系技术支持

·不要自行拆卸Gello或机械臂

 警告:安全第一!遥控操作时请务必保持警觉,随时准备应对突发情况。