Skip to content

数据采集方案#

版本号:v5.1.6.11#

ChangeLog#

  1. 完善后处理(post_capture)

    • 增加位姿变换后处理,修复示教臂和执行臂位姿不一致问题

    • 默认进行自动配置,无需额外配置

  2. 支持司岚底盘数采(位姿、速度、info)

  3. 正式支持相机并发调用采集(优化了调用逻辑避免潜在效率问题)

  4. 不再记录值均为None的关节相关数据(如replay的关节速度和力,终端启动时会打印相关警告)

  5. 优化了V4L2相机的关闭机制

  6. 修复了保存进度条的显示异常

  7. 修复了死窗口问题(默认不进行prepare_cv2,增加了程序卡死异常时的处理说明)

  8. 完善自动配置

    • 支持指定机器人(机械臂)参考配置文件目录和文件名(修复ros格式自动配置关节数据无名称字段问题)

    • 支持配置深度相机自动启动深度信息和异步调用(--depth,--cc)

    • 支持单/双臂拖动示教自动配置(--drag),且允许手动调整配置不带夹爪

  9. 增加了资源占用检测工具的使用说明:airdc/docs/troubleshooting/faq.md见资源占用

  10. 增加了相机的更多问题处理文档

  11. 增加了PlotJuggler可视化说明文档

  12. 调整pose话题名称:arm -> eef

  13. 简化工程名和包名为airdc

系统环境配置#

环境要求#

为确保本项目正常运行,请确认您的系统环境满足以下要求:

  • Python >= 3.9(推荐使用 Python 3.10,其他版本未经完整测试)

  • 操作系统

    • 支持:Linux(含Docker容器;推荐使用Ubuntu,其他系统未经测试)
    • 不支持:Windows,macOS
    • 未测试:Windows Subsystem for Linux (WSL)
  • 系统架构

    • x86_64(64 位 Intel/AMD)
    • ARM64(如 NVIDIA Jetson等)
  • 依赖工具

    • POSIX shell(用于运行一键安装脚本等,如sh等)
    • (可选)虚拟环境管理工具,如 condavenv
  • 其他

    • 至少 2 GB 可用内存
    • 磁盘空间:视采集数据量而定

注意,系统环境主要受限于所使用的具体后端,如机器人 SDK 和相机驱动等,请确保这些后端软件的系统要求也得到满足。

虚拟环境#

建议创建独立的Python虚拟环境进行数据采集环境安装,以满足Python版本要求同时避免与其他项目的依赖冲突。以conda为例,可执行如下命令创建并激活虚拟环境:

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

机器人 Setup#

环境要求

请使用上述创建的Python虚拟环境(如果使用的话)进行后续依赖安装!

数据采集程序依赖于机器人的基本软件环境,请自行安装并配置好对应机器人的驱动程序和Python SDK。

数据采集#

环境要求

  • 请使用上述安装好机器人相关软件的Python环境进行后续依赖安装!
  • 一键安装脚本默认分别使用aptpip进行系统和Python依赖安装,如果使用其他包管理工具,请手动安装对应依赖,或者修改安装脚本后再执行。对于前者,也可以在执行安装脚本时传入安装命令作为参数,例如$SHELL ./install.sh sudo yum install -y
  • 仓库clone注意指定分支/标签,以保证版本一致性。若不指定则默认使用main分支,是最新的稳定版本。develop分支为最新开发版本,可能存在不稳定情况。如需固定版本,请指定特定标签。
git clone https://github.com/DISCOVER-Robotics/AIRBOT-Data-Collection.git --depth 1 -b <tag/branch> data-collection
cd data-collection
conda activate airbot_data
$SHELL install/install.sh

$SHELL一般可简单用bash代替(下同)。安装结束后终端可能有红色报错提示部分依赖问题,一般可忽略,进行后续操作即可。

相机信息#

可以通过如下命令查看已连接相机的信息:

python3 scripts/list_cameras.py

在终端输出中可以看到每个相机的名称、设备路径(含ID)、USB端口(总线)信息、支持的图像格式和对应的分辨率和帧率,以及设备总数等信息。

相机检查#

连接所需的全部相机,对于USB相机,可以执行如下命令进行检查:

python3 scripts/multi_capture.py 2 4 6 -ff MJPEG MJPEG MJPEG

其中2 4 6指定了相机的ID号,可通过ls /dev/video*命令查看并做相应修改,一般来说使用偶数的ID,奇数的ID不可用。 -ff后面的参数指定了每个相机的视频流格式,一般使用MJPEG。常见问题见常见问题

RealSense相机支持#

对于Intel-RealSense相机,可以运行$SHELL install/install_realsense.sh安装相关依赖,并执行如下命令查看已连接相机的序列号:

python3 airdc/common/devices/cameras/intelrealsense.py

数据采集配置#

数据采集程序默认基于Hydra框架进行配置,支持通过yaml文件配置默认参数以及通过命令行对参数进行覆写。

数据采集的配置选项主要包括示教器/遥操系统(Demonstrator)、采样器(Sampler)、管理器(Manager)、可视化器(Visualizer)、状态机(FSM)以及其他基本配置(如logging、数据保存路径等)。

由于配置参数较多,因此提供了默认配置文件夹airbot_ie,一般可在此基础上进行修改。该配置主要使用:

  • 示教器:使用grouped demonstrator分组指定leader、follower和observer三种角色将分散的设备进行组合,完成遥操控制和数据采集。
  • 采样器:使用mcap sampler将episode数据保存为基于FlatBuffers Schema的.mcap格式文件。
  • 管理器:使用keyboard manager结合self manager通过键盘进行数据采集的流程控制。
  • 可视化器:使用OpenCV visualizer进行数据的实时显示和监控。

部分配置调整说明链接如下:

启动遥操作#

请根据实际机器人的使用方式进行启动。部分机器人遥操作说明链接如下:

数据采集流程#

运行数据采集程序#

完成前述准备工作后,可执行如下命令运行数据采集程序(终端在data-collection目录):

airdc

上述命令将使用默认配置文件中的配置。此外,也可以在命令行中重新指定配置文件,或对配置文件中的参数进行覆写,例如:

airdc --path airbot_ie/configs/config.yaml dataset.directory=example

其中--path指定了配置文件路径(这里就是默认路径),dataset.directory=example指定了数据保存目录为data目录下的example文件夹。更多命令行参数覆写规则见配置调整说明

启动后,默认可以使用键盘进行数据采集的流程控制,键盘使用说明在可在终端打印中上滚看到,或者按键盘i键重新打印。

数据采集建议#

为了保证数据采集的质量,有如下建议:

示教

  1. 运动过程平稳流畅自然,没有明显加速、停顿、抖动等速度突变情况;
  2. 数据采集轨迹分布应具有一定的随机性,但请注意动作分布差异不要过大;
  3. 夹爪开合的动作应比较明显,即张开时尽量张开,关闭时尽量关闭,保证主动臂和从动臂编码器返回明确的开合值;
  4. 每个动作之间有一定停顿;
  5. 在操作物体时应考虑模型预测可能出现的偏差,不要出现仅夹住物体边缘的情况;

相机

  1. 采集图像清晰,相机对焦点正常,画面无卡顿、模糊、抽帧等问题;
  2. 环境相机中保证操作物体全程位于画面中(杯子等较大物体允许有几帧不整体入镜);
  3. 环境相机注意操作角度,避免位于夹爪遮挡小物体的角度,如下图所示;
  4. 臂上相机应保证可以看到操作物体和夹爪的开合特征;
  5. 环境相机视野中,示教臂不可入镜(因推理时不存在),执行臂在任务开始时可不必须入镜,但在操作物体时要求可以看到夹爪与物体的交互;
  6. 相机视野应考虑改变物体摆放位置后,物体仍位于相机视野中,且物体的初始摆放位置应尽量位于相机视野中央;

数据采集操作#

  1. 按空格键开始数据采集
  2. 完成任务后按s键保存, 等待保存完毕后, 再次按下空格键开始采集
  3. 若在采集过程中, 发现本次操作有不符合采集要求时,主观认为是无效数据,则按q键放弃当前采集,然后重新按空格键开始采集
  4. 若数据已经保存,发现采集的数据不符合要求,则可按r键删除本次采集的数据,然后按空格键重新采集
  5. 所有数据采集完毕后, 按ESC键退出采集程序

数据可视化#

视保存的数据格式不同,可使用不同工具进行数据可视化。部分数据可视化说明链接如下:

性能测试#

请参考性能测试页面。

常见问题#

请参考常见问题页面。