跳到主要内容

遥操数采及数据转换

本页面向傅利叶 GR3 系列机器人的遥操作数据采集及后续数据转换流程,涵盖从设备准备、外骨骼遥操、数采平台使用到异常处理的完整操作指引。

1. 概述

遥操数采系统是傅利叶 GR3 系列机器人的本地数据采集方案。系统通过外骨骼设备和客户端应用实现机器人全身无线遥操控制,并在遥操过程中实时采集动作数据、姿态数据、摄像头图像及深度数据,支持本地存储。系统无需依赖云端服务器,适用于工业、科研实验等对数据安全性和离线使用有要求的场景。

核心功能:

功能说明
低门槛操作"一键操作 + 状态引导"设计,外骨骼仅通过红/蓝功能键即可完成状态切换与采集启停,新手用户无需专业培训即可快速上手
全身遥操支持 GR3 系列全身控制,涵盖站立、行走、转向、蹲起、手臂动作等核心姿态,遥操响应延迟低,动作指令精准同步
无线连接基于局域网无线通信,摆脱有线束缚
多维度采集以用户控制的每条采集时机为单位,同步采集动作数据、姿态数据、摄像头图像及深度数据
可视化反馈实时展示遥操状态、采集状态、系统日志、机器人第一视角视频及第三视角姿态

2. 遥操前准备

2.1 机器人准备

  1. 将机器人吊起,双脚腾空约 20 cm
  2. 机器人电源和 NUC 开机,等待约 20 秒
  3. 拧开急停红色接合旋钮

2.2 设备拓扑

设备连接方式
PC3(遥操主控电脑)连接电源;USB + HDMI 连接键盘、鼠标、显示器;USB 连接外骨骼设备;网线连接小米路由
NUC(机器人端)机器人开机后,通过背后拓展坞连接相机
小米路由网线直连 PC3;有线网络直连小米路由(可选局域网)

2.3 外骨骼穿戴

  • 设备可根据使用者身高调节手臂组件长度,以适配整套外骨骼的整体长度
  • 遥操功能启动并规范穿戴外骨骼后,打开电脑监控软件,界面内的虚拟机器人将同步复刻使用者的肢体动作
  • 启动遥操模式前,必须校验遥操查看器内虚拟机器人姿态,确保其与实体机器人当前姿态完全匹配

外骨骼正确穿戴示意

姿态校验

启动遥操前务必完成虚拟机器人与实体机器人的姿态匹配校验,否则可能导致机器人异常动作。

3. 外骨骼遥操指南

外骨骼按键示意

3.1 右手柄按键

按键功能
红色第一次短按:进入遥操准备;第二次短按:控制机器人
后续短按:开始/结束录制;长按三秒:丢弃当前录制数据
蓝色短按退出遥操
黑色短按左转腰
白色短按右转腰
摇杆上:起身;下:下蹲;左:向左转;右:向右转
扳机手指开合

3.2 左手柄按键

按键功能
蓝色短按向前弯腰
红色短按腰部起来
摇杆上:向前走;下:向后走;左:向左平移;右:向右平移
扳机手指开合

4. 数采平台使用

4.1 检查状态

在主控执行以下命令,看到下图所示输出即为成功(内含三条 ID,分别为 pc1pc3admin):

Bash
daemon-cli list p

daemon-cli 输出

4.2 打开数采平台

使用谷歌浏览器,在地址栏输入 PC3 的 IP 地址或 127.0.0.1,即可打开数采单机版平台。

数采单机版平台

4.3 连接云平台

  1. 点击右上角进入系统配置
  2. 依次填写"云端地址"、"站点 ID"、"机器人 ID"、"硬件版本号"
  3. 点击保存
  4. 右上角显示已连接即表示成功连接数采云平台

4.4 新建数采任务

新建云端任务: 由数采云平台新建后直接派发到单机版平台,打开单机版平台点击刷新后即可在任务列表查看。

新建单机任务:

  1. 点击"新建采集任务"
  2. 填写任务描述,选择生效
  3. 点击确认生成单机任务

4.5 唤醒与关闭遥操

唤醒遥操:

  1. 点击开始采集任务(如无采集任务,系统会自动生成一个单机版任务)
  2. 点击"唤醒遥操"按钮
  3. 遥操唤醒成功后自动跳转到监控界面,显示 idle 状态即表示成功

idle 状态指示

关闭遥操:

  1. 确认机器人为 disengaged 状态

disengaged 状态 2. 点击"关闭遥操"按钮 3. 遥操关闭成功后,外骨骼停止输出,监控画面停止

4.6 遥操查看器

成功唤醒遥操后,点击遥操查看器可重新唤醒监控界面,查看机器人当前状态。

机器人缩略图示意

4.7 高级配置

勾选"高级选项"后点击遥操高级配置,可调整以下参数:

配置项说明
遥操速度系数可选择三种预设速度系数,或根据熟练度自定义速度
手势调整自定义手势映射参数
恢复默认参数一键恢复所有配置为初始值
配置生效

更改配置后,需点击确认并重新唤醒遥操才会生效。

4.8 任务查询

可根据任务的不同状态搜索已创建任务,点击"高级选项"可增加云端任务搜索状态。

4.9 数据管理

查看采集信息

查看背包硬盘剩余空间、未上传未删除的数据量、已上传未删除的数据量。

数据上传

前置条件

小米路由需要连接互联网。

  1. 选择需要上传的任务,点击"编辑"
  2. 填写操作员、安全员,选择是否生效及是否自动上传
  3. 点击确认同步云端任务
  4. 同步云端任务 ID 后,数据将自动上传到云平台
  5. 开启"上传后删除"选项,数据上传后会自动清理本地文件
  6. 点击确认后等待上传完成

数据上传配置示意

删除本地数据

  1. 选择需要删除的任务,点击"数据删除"
  2. 勾选需要删除的数据项
  3. 点击确认即可删除本地数据

4.10 数据下载

方式操作
直连 PC3使用外接显示器连接 PC3,访问 /midea/fourier/s3data 路径查看/下载数据
通过云平台从数据云平台获取(具体操作请参考云平台相关文档)

5. 注意事项与异常处理

5.1 安全注意事项

操作安全
  • 遥操过程中请勿剧烈摆臂或突然松开手柄,以免对机器人本体或周围环境造成危险
  • 极限姿态会对机器人本体和环境造成危险,例如:蹲到最低时极限扭腰、蹲到最低持续长时间行走、蹲到最低提起重物等
  • 请勿边充电边在无保护状态下使用机器人——电池充满电的瞬间可能出现断电
  • 使用时请注意电池电量,电量降至最后一格时存在断电风险

5.2 退出遥操流程

根据现场情况选择合适的方式退出遥操,优先级从高到低:

方式适用场景安全性操作流程
外骨骼安全退出外骨骼与两台 PC 正常连接最高:机器人可用算法保持站立站稳 → 右手蓝色按钮 → 进入"遥操唤醒"状态 → 吊起机器人 → 点击"关闭遥操"
强制关闭遥操外骨骼蓝色按键失效但 PC 仍连接较低:机器人短时靠电机默认蓄力保持姿态做好防摔保护 → 点击"关闭遥操"按钮 → 遥操关闭 → 吊起机器人
物理急停紧急情况或 PC 断连最低:电机瞬间断电,无法保持站立做好防摔保护 → 拍下背后红色急停按钮 → 吊起机器人 → 重启机器人和遥操客户端

5.3 数采软件获取不到 IP

按以下顺序排查:

  1. 检查 PC1/PC3 是否已上电
  2. 检查小米路由是否正常工作
  3. 检查 NUC 中继是否已连接小米路由
  4. 尝试将 PC1/PC3 重新开关机

5.4 紧急状态处理

发生紧急情况时,可通过以下任一方式立即关闭机器人:

  • 使用远程急停遥控器关闭机器人
  • 按下机器人腰部红色紧急急停按钮关闭机器人

6. 数据转换

convert_parquet_to_lerobot.py 用于将机器人采集的原始 Parquet 数据集转换为标准 LeRobot Dataset 格式,支持状态与动作解析、图像解码与重采样、多模态时间戳对齐,输出可直接用于训练和仿真。

开源链接:fourier-lerobot/scripts/convert_parquet_to_lerobot.py

6.1 输入数据结构

每个 Episode 目录需包含以下文件:

Text
episode_xxx/
├── metadata.json
├── observation.state.parquet
├── observation.base_state.parquet
├── action.parquet
├── action.base.parquet
└── observation.images.camera_top.parquet
文件关键字段说明
observation.state.parquettimestamp_utcobservation.state关节状态列表 [{"name": "...", "value": ...}]
action.parquettimestamp_utcaction动作列表 [{"name": "...", "value": ...}]
observation.images.camera_top.parquettimestamp_utcobservation.images.camera_topAVIF 编码图像字节流
metadata.jsonnotesEpisode 任务描述,可用于生成 task

6.2 核心模块

模块功能
RobotConfig定义机器人关节、底盘和相机配置
StateConverter解析 state 和 base_state,输出 Tensor[N, StateDim]
ActionConverter解析 action 和 base_action,输出 Tensor[N, ActionDim]
VideoConverter解析 camera 图像,支持 resize 和正方形裁剪
DataConverter多模态数据时间戳同步、最近邻采样、Frame 构建

6.3 使用方法

基础用法

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset

指定任务名称

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset \
--task "pick up cup"

指定视频尺寸

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset \
--video-config 640x480

正方形裁剪

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset \
--square-crop

多相机

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset \
--camera top wrist left right

使用 Pose 模式

Bash
python convert_parquet_to_lerobot.py \
--raw-dir ./raw_data \
--repo-id user/gr3_dataset \
--pose

默认不启用 --pose 时,state.poseaction.pose 会自动填零。

6.4 输出数据结构

转换后生成目录:

Text
~/.cache/huggingface/lerobot/<repo-id>/
├── meta/
│ ├── episodes.jsonl
│ ├── info.json
│ └── stats.json
├── data/
│ ├── chunk-000/
│ └── ...
└── videos/
├── observation.images.top/
└── ...

Feature Schema:

FeatureShape说明
observation.state[33]19 关节 + 12 手关节 + 2 底盘状态
action[37]19 关节 + 12 手关节 + 6 底盘动作
observation.state.pose[30]18 pose + 12 手关节
action.pose[30]同上
observation.images.*[3, H, W]图像数据,H×W 可通过 --video-config 指定
next.done[1]True 表示 Episode 结束

6.5 数据处理流程

  1. 解析各 Parquet 文件
  2. 时间戳同步与 30 Hz 重采样
  3. State / Action / Video 转换
  4. 构建 Frame
  5. 添加至 LeRobotDataset
  6. 保存 Episode 并编码视频
  7. 生成统计信息 stats.json
  8. 输出最终数据集

最后更新:2026-06-24