11. 跳转至

11. 数据采集#

11.1 环境配置#

11.1.1 AIRBOT Play SDK#

该部分与AIRBOT Play官方手册中的操作一致,若尚未完成,可参考下方链接点亮,但需关注如下版本要求:

  • Python : >= 3.10
  • AIRBOT MMK2 SDK : == 1.1.3

推荐创建统一的conda环境进行后续安装:

conda create -n airbot_data python=3.10 && conda activate airbot_data

点击这里查看如何安装 AIRBOT MMK Python SDK

11.1.2 数据采集工具包#

软件包请进入联络技术支持团队获取。解压后,您将看到以下软件包:

  • 数据采集工程文件夹:(data-collection
  • 数据可视化软件包文件夹:(data_viewer

环境要求

请使用上述安装好AIRBOT相关SDK的Python环境进行后续依赖安装!

conda activate airbot_data
cd data-collection
bash install.sh

安装结束后终端可能有红色报错提示部分依赖问题,一般可忽略,进行后续操作即可。

11.1.3 采集数据#

11.1.3.1 启动MMK2#

  1. 开启底盘电源
  2. 开启本体电源
  3. 开启机械臂电源
  4. 进入遥控模式:待自检通过(白灯)后,按手柄 Start 键进入遥控模式(绿灯)
  5. 进入背包示教模式:按手柄 X 键进入背包示教模式(身体浅蓝灯,头白灯)
  6. 开始示教同步
    • 打开示教背包电源
    • 穿戴背包
    • 等待30秒后按手柄 LB + RB 开始示教同步(头灯由白变浅蓝)

11.1.3.2 连接MMK2#

参考:MMK2使用手册 中连接章节

11.1.3.3 机器人配置文件#

机器人配置文件路径:airbot_ie/configs/robots/airbot_mmk.yaml

参数解释

  • ip:机器人的ip地址,建议尽量使用有线连接(特别是无移动作业需求时)以提高数据采集频率,保证数据质量
  • components:需要使用的机器人的部件,一般非移动操作使用全部默认值即可,移动操作可在最后增加base一项。
  • cameras: 需要使用的相机的配置参数,根据实际情况调整
  • default_action:机器人的初始关节角,注意顺序与components一一对应,如果需要控制底盘移动到默认位置,需要额外增加3个元素,对应底盘位姿(x、y、theta)

11.1.4 主配置文件#

数据采集主配置文件位于:airbot_ie/configs/basis.yaml,通常需进行如下修改:

  • 任务信息(task_info)。如果训练 pi0 等VLA模型,对文本描述有要求,需要尽量准确,示例如下:
    task_info:
      operator: hanyang
      station: mmk-MK11QWZ025170023
      task_name: pick wooden blocks and place and stack
      task_description: pick the wooden blocks from the bowl with the gripper, and place all wooden blocks on the desktop,and stack the wooden blocks one by one
      task_description_zh: 用夹爪从碗中拾取木制积木,将木制积木放置在桌面上,将木制积木逐个堆叠
      task_id: 120
      # 单个技能配置
      # skill: grasp
      # 多个技能配置示例 (取消注释并注释上面的单行配置):
      skill:
        - grasp
        - place
      object:
        - wooden blocks
        - bowl
      scene: desktop
      subtasks:
        - skill: grasp
          description: "pick the wooden blocks from the bowl with the gripper"
          description_zh: "用夹爪从碗中拾取木制积木"
        - skill: "place {A} on {B}"
          description: "place the wooden blocks on the desktop"
          description_zh: "将木制积木放置在桌面上"
        - skill: "stack {A} on {B}"
          description: "stack the wooden blocks one by one"
          description_zh: "将木制积木逐个堆叠"
  • 数据保存目录(dataset.directory)。数据将默认保存在data/路径下
  • 数据采集频率(update_rate)。所有数据更新的频率,单位为Hz
  • 数据大小上限(sample_limit.size)。数据采集的最大长度,即最多采集多少数据点,在到达该上限之前若未手动保存,则在到达时默认将自动保存

11.1.5 开始采集#

11.1.5.1 指令#

重要提醒

  • 必须进入背包示教模式后才能运行数据采集! 否则会报错
  • 数据将保存为 MCAP 格式
airdc demonstrators=mmk

11.1.5.2 按键#

注意

避免连续按键以防止重复行为

执行上述命令后,您可以使用键盘来控制操作。键盘按键的功能说明如下:

按键 功能说明
空格键 开始录制一段数据。录制完所有帧后,数据将自动保存。
s键 在当前录制尚未完成所有帧时停止录制并保存数据。这会导致录制的数据长度不同。
q键 放弃当前录制或重新录制上一段数据。
r键 删除最新采集的数据文件。
p键 在终端打印当前机器人的状态信息。
i键 再次显示这些操作说明。
z/ESC键 退出采集程序。

11.1.5.3 操作步骤#

  1. 启动程序:每个摄像头的实时窗口将会出现。
  2. 开始录制:按下空格键开始录制数据并遥操MMK2完成目标任务。
  3. 放弃录制:如果示教操作不可接受,请按 q 键以放弃当前录制过程。
  4. 任务完成
  5. 等待收集到指定数量的帧或按 s 键立即保存数据(实际任务所花费的帧数应尽可能接近最大收集帧数)
  6. 帧数达到设定的最大值后,数据将自动保存。
  7. 数据保存:数据将默认保存到当前目录下的 data/airbot_mmk 文件夹中。

11.1.5.4 附加建议#

  1. 任务时长:尽量确保在达到最大帧数限制之前完成任务,即不要过早结束动作。
  2. 移动速度:机械臂的移动速度不应过快,否则收集到的信息将会变得稀疏,且图像质量也会不高。
  3. 数据备份:建议将收集到的任务数据文件夹保存在便携式硬盘上的相同目录结构中,以作为备份。

11.1.6 数据检查(一般可跳过该步)#

  • 图像质量:图像数据不能存在破损
  • 话题格式:话题格式需要满足要求

运行如下脚本:

python3 airbot_ie/tests/check_mmk_mcap_dataset.py --print_details --dir data/<dir_name>

参数解释: - dirmcap数据集存放在的文件夹 - print_details:打印每个数据文件的详细信息

程序输出示例如下:

=== Summary Report ===
INFO:__main__:Total files: 55
INFO:__main__:Normal files: 53
INFO:__main__:Abnormal files: 2
INFO:__main__:Abnormal files and issues:
INFO:__main__:  data/mcap/mmk2_pick_and_place_wooden_blocks_0731/13.mcap:
INFO:__main__:    - Mismatch: Message len=492 > Min video frames=491
INFO:__main__:  data/mcap/mmk2_pick_and_place_wooden_blocks_0731/44.mcap:
INFO:__main__:    - Mismatch: Message len=507 > Min video frames=506
实际训练时建议剔除不满足要求的文件进行训练,否则可能会导致出错。

注意:

该检查默认会检查3个相机(左右手和头部),并将缺少相机的数据列为不正常数据。如果实际仅使用了部分相机,请忽略该提示。

如果需要继续采集数据,请先删除status文件避免采集数据序号不连续:

rm -f data/<dir_name>/*.status

11.1.7 数据可视化#

应该有一个单独的文档叫数据可视化。

11.2 真机数据回放#

注意:

回放前请将退出背包示教模式(建议在绿灯的Start模式)

python3 airbot_ie/scripts/data_replay/mcap_mmk.py data/0606/0.mcap -f 20 -ip 172.25.11.188

参数解释

  • f:数据回放的频率,一般可设置与原始数据频率一致
  • ip:机器人的ip地址