Skip to main content

AIRDC: Collecting Multimodal Data For Your Robots

Project description

AIRDC: Collecting Multimodal Data For Your Robots

License Python

系统环境配置

环境要求

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

  • 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

!!! warning "环境要求"

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

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

数据采集

!!! warning "环境要求"

- 请使用上述安装好机器人相关软件的`Python`环境进行后续依赖安装!
- 一键安装脚本默认分别使用`apt`和`pip`进行系统和`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 airbot_data_collection/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键退出采集程序

数据可视化

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

性能测试

主机 相机 设定帧率 (fps) 实际帧率 (fps)
联想拯救者 Y7000 1环境+1 Realsense(720P) 30 24.86~24.88
20 19.95~20.03
1环境+2 Realsense(720P) 30 24.84~24.88
20 19.93~20.03
1环境+1 手部(480) 30 24.86~24.89
20 19.97~30
1环境+2 手部(480) 30 24.84~24.88
20 19.95~20
AGX 1环境+1 Realsense(720P) 30 24.3~24.89
启用深度:22.98~23.45
20 18.46~18.90
启用深度:15.02-18.32
1环境+2 Realsense(720P) 30 可能无法同时启动
20
1环境+1 手部(480) 30 24.86~24.88
20 19.95~20.03
1环境+2 手部(480) 30 可能无法同时启动
20
NX 1环境+1 Realsense(720P) 30 5.12~6.12
启用深度:3.45-6.02
20 6.20~8.95
启用深度:3.02-5.98
1环境+2 Realsense(720P) 30 可能无法同时启动
20
1环境+1 手部(480) 30 13.03~14.77
20 11.71~12.47
1环境+2 手部(480) 30 可能无法同时启动
20

说明:

  • 测试时同时运行了单臂(1手部相机或1 Realsense搭配下)/双臂(2手部相机或2 Realsense搭配下)的控制服务和遥操作控制程序

  • 环境(相机)型号为USB 2.0 Camera: LRCP V1080P(1080P, 30Hz),手部(相机)型号为Integrated_Webcam_HD: Integrate(720P, 25Hz),Realsense型号为D435i(USB3.0)

  • 测试结果仅供参考,请以实际使用效果为准

常见问题

请参考常见问题页面。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airdc-0.6.8.tar.gz (174.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airdc-0.6.8-py3-none-any.whl (202.8 kB view details)

Uploaded Python 3

File details

Details for the file airdc-0.6.8.tar.gz.

File metadata

  • Download URL: airdc-0.6.8.tar.gz
  • Upload date:
  • Size: 174.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for airdc-0.6.8.tar.gz
Algorithm Hash digest
SHA256 efa0973a64e986c293adab7a0e34c6eacc2d395e4d207b7916d768dd13bf5705
MD5 40b2616898c50fe09ae14d5936d1a830
BLAKE2b-256 5eaee49c151ebdf7d5d78b71103423c0100c21dd9340c6535a731d3cdc26cd40

See more details on using hashes here.

File details

Details for the file airdc-0.6.8-py3-none-any.whl.

File metadata

  • Download URL: airdc-0.6.8-py3-none-any.whl
  • Upload date:
  • Size: 202.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for airdc-0.6.8-py3-none-any.whl
Algorithm Hash digest
SHA256 66b4b1adb03569592e7e6fc04e89b809321aabd3a2d2d30eee23ba68c99e85f2
MD5 888951666862f24df4b8c81f1bfa79b7
BLAKE2b-256 96cfe6ae3e463037e749059f080056227f1561c70faf7ed99398803bcb127a0b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page