Форматы данных
Целью платформы EmbodyFlow является управление универсальными данными роботов, где Robot Operating System (ROS) служит эталоном для унифицированного управления.
- Импорт данных: Поддержка автоматического преобразования нестандартных данных (например, из систем AgiBot, AgileX) в стандартный формат ROS для унифицированного управления.
- Визуализация данных: Встроенные модели визуализации для более чем 30 популярных роботов, обеспечивающие плавное воспроизведение всех форматов, включая 3D-анимацию и 2D-изображения.
- Экспорт данных: Поддержка экспорта в стандартные форматы HDF5/LeRobot одним кликом. Система автоматически адаптирует суставы и изображения на основе исходных данных для немедленного использования в обучении моделей.
Содержание
Формат человеческих данных
Сбор человеческих данных в основном используется для записи действий оператора и процессов взаимодействия, включая данные мультимодальных датчиков.
Структура файлов
Для каждой задачи сбора данных создается папка с именем на основе временной метки:
f"{date}_{project}_{scene}_{task}_{staff_id}_{timestamp}"
├── align_result.csv # Таблица выравнивания временных меток
├── annotation.json # Данные аннотации
├── config/ # Конфигурация камер и датчиков
│ ├── calib_data.yml
│ ├── depth_to_rgb.yml
│ ├── mocap_main.yml
│ ├── orbbec_depth.yml
│ ├── orbbec_rgb.yml
│ └── pose_calib.yml
└── data.mcap # Пакет мультимодальных данных
Мультимодальные данные
Файл data.mcap содержит все синхронизированные данные датчиков, хранящиеся в формате MCAP.
Список основных топиков:
| Имя топика | Тип данных | Описание |
|---|---|---|
/mocap/sensor_data | io_msgs/squashed_mocap_data | Скорость, ускорение, угловая скорость, углы поворота суставов и данные датчиков захвата движения |
/mocap/ros_tf | tf2_msgs/TFMessage | TF-преобразования всех суставов на основе захвата движения |
/joint_states | sensor_msgs/JointState | JointState всех суставов на основе захвата движения |
/rgbd/color/image_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение основной камеры на голове |
/rgbd/depth/image_raw | sensor_msgs/Image | Глубинное изображение основной камеры на голове |
/colorized_depth | sensor_msgs/CompressedImage | Раскрашенное глубинное изображение основной камеры на голове |
/left_ee_pose | geometry_msgs/PoseStamped | Поза левого захвата в системе координат основной камеры на голове |
/right_ee_pose | geometry_msgs/PoseStamped | Поза правого захвата в системе координат основной камеры на голове |
/claws_l_hand | io_msgs/claws_angle | Степень закрытия левого захвата |
/claws_r_hand | io_msgs/claws_angle | Степень закрытия правого захвата |
/claws_touch_data | io_msgs/squashed_touch | Тактильные данные захвата |
/realsense_left_hand/color/image_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение камеры левого захвата |
/realsense_left_hand/depth/image_rect_raw | sensor_msgs/Image | Глубинное изображение камеры левого захвата |
/realsense_right_hand/color/image_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение камеры правого захвата |
/realsense_right_hand/depth/image_rect_raw | sensor_msgs/Image | Глубинное изображение камеры правого захвата |
/usb_cam_fisheye/mjpeg_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение панорамной камеры («рыбий глаз») на голове |
/usb_cam_left/mjpeg_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение левой монокулярной камеры на голове |
/usb_cam_right/mjpeg_raw/compressed | sensor_msgs/CompressedImage | RGB-изображение правой монокулярной камеры на голове |
/ee_visualization | sensor_msgs/CompressedImage | Визуализация позы конечного эффектора на RGB-изображении головы |
/touch_visualization | sensor_msgs/CompressedImage | Визуализация тактильных данных захвата |
/robot_description | std_msgs/String | URDF захвата движения |
/global_localization | geometry_msgs/PoseStamped | Поза камеры головы в мировой системе координат |
/world_left_ee_pose | geometry_msgs/PoseStamped | Поза левого захвата в мировой системе координат |
/world_right_ee_pose | geometry_msgs/PoseStamped | Поза правого захвата в мировой системе координат |
Данные камер:
- Основная RGBD камера: Цвет + Глубина
- Камеры левого/правого захвата: RealSense RGBD
- Панорамная камера: Обзор на 360 градусов
- Левая/правая монокулярные камеры: Стереозрение
|> Примечание: При использовании тактильных перчаток добавляется дополнительный топик /mocap/touch_data.
Нажмите, чтобы просмотреть исходный формат данных MCAP
library: mcap go v1.7.0
profile: ros1
messages: 45200
duration: 1m5.625866496s
start: 2025-01-15T18:09:29.628202496+08:00 (1736935769.628202496)
end: 2025-01-15T18:10:35.254068992+08:00 (1736935835.254068992)
compression:
zstd: [764/764 chunks] [6.13 GiB/3.84 GiB (37.39%)] [59.87 MiB/sec]
channels:
(1) /rgbd/color/image_raw/compressed 1970 msgs (30.02 Hz) : sensor_msgs/CompressedImage [ros1msg]
(2) /joint_states 1970 msgs (30.02 Hz) : sensor_msgs/JointState [ros1msg]
(3) /claws_r_hand 1970 msgs (30.02 Hz) : io_msgs/claws_angle [ros1msg]
(4) /global_localization 1970 msgs (30.02 Hz) : geometry_msgs/PoseStamped [ros1msg]
(5) /robot_description 1 msgs : std_msgs/String [ros1msg]
(6) /ee_visualization 1970 msgs (30.02 Hz) : sensor_msgs/CompressedImage [ros1msg]
(7) /rgbd/depth/image_raw 1970 msgs (30.02 Hz) : sensor_msgs/Image [ros1msg]
(8) /colorized_depth 1970 msgs (30.02 Hz) : sensor_msgs/CompressedImage [ros1msg]
(9) /claws_l_hand 1970 msgs (30.02 Hz) : io_msgs/claws_angle [ros1msg]
(10) /claws_touch_data 1970 msgs (30.02 Hz) : io_msgs/squashed_touch [ros1msg]
(11) /touch_visualization 1970 msgs (30.02 Hz) : sensor_msgs/CompressedImage [ros1msg]
(12) /mocap/sensor_data 1970 msgs (30.02 Hz) : io_msgs/squashed_mocap_data [ros1msg]
(13) /mocap/ros_tf 1970 msgs (30.02 Hz) : tf2_msgs/TFMessage [ros1msg]
(14) /left_ee_pose 1970 msgs (30.02 Hz) : geometry_msgs/PoseStamped [ros1msg]
(15) /right_ee_pose 1970 msgs (30.02 Hz) : geometry_msgs/PoseStamped [ros1msg]
(16) /usb_cam_left/mjpeg_raw/compressed 1960 msgs (29.87 Hz) : sensor_msgs/CompressedImage [ros1msg]
(17) /usb_cam_right/mjpeg_raw/compressed 1946 msgs (29.65 Hz) : sensor_msgs/CompressedImage [ros1msg]
(18) /usb_cam_fisheye/mjpeg_raw/compressed 1957 msgs (29.82 Hz) : sensor_msgs/CompressedImage [ros1msg]
(19) /realsense_left_hand/depth/image_rect_raw 1961 msgs (29.88 Hz) : sensor_msgs/Image [ros1msg]
(20) /realsense_left_hand/color/image_raw/compressed 1961 msgs (29.88 Hz) : sensor_msgs/CompressedImage [ros1msg]
(21) /realsense_right_hand/depth/image_rect_raw 1947 msgs (29.67 Hz) : sensor_msgs/Image [ros1msg]
(22) /realsense_right_hand/color/image_raw/compressed 1947 msgs (29.67 Hz) : sensor_msgs/CompressedImage [ros1msg]
(23) /world_left_ee_pose 1970 msgs (30.02 Hz) : geometry_msgs/PoseStamped [ros1msg]
(24) /world_right_ee_pose 1970 msgs (30.02 Hz) : geometry_msgs/PoseStamped [ros1msg]
channels: 24
attachments: 0
metadata: 0
| Имя топика | Значение данных |
|---|---|
| /mocap/sensor_data | Данные суставов и датчиков на основе захвата движения |
| /mocap/ros_tf | TF всех суставов на основе захвата движения |
| /joint_states | JointState всех суставов на основе захвата движения |
| /right_ee_pose | Поза правого захвата в системе координат головы |
| /left_ee_pose | Поза левого захвата в системе координат головы |
| /claws_l_hand | Степень закрытия левого захвата |
| /claws_r_hand | Степень закрытия правого захвата |
| /claws_touch_data | Тактильные данные захвата (два сообщения, frame_id указывает на левый или правый захват) |
| /realsense_left_hand/color/image_raw/compressed | RGB-изображение камеры левого захвата |
| /realsense_left_hand/depth/image_rect_raw | Глубинное изображение камеры левого захвата |
| /realsense_right_hand/color/image_raw/compressed | RGB-изображение камеры правого захвата |
| /realsense_right_hand/depth/image_rect_raw | Глубинное изображение камеры правого захвата |
| /rgbd/color/image_raw/compressed | RGB-изображение камеры головы |
| /rgbd/depth/image_raw | Глубинное изображение камеры головы |
| /colorized_depth | Цветное глубинное изображение камеры головы |
| /usb_cam_fisheye/mjpeg_raw/compressed | Изображение панорамной камеры на голове |
| /usb_cam_left/mjpeg_raw/compressed | Изображение левой камеры на голове |
| /usb_cam_right/mjpeg_raw/compressed | Изображение правой камеры на голове |
| /ee_visualization | Визуализация позы эффектора на RGB-изображении головы |
| /touch_visualization | Визуализация тактильных данных захвата |
| /robot_description | URDF захвата движения |
| /global_localization | Поза камеры головы в мировых координатах |
| /world_left_ee_pose | Поза левого захвата в мировых координатах |
| /world_right_ee_pose | Поза правого захвата в мировых координатах |
Если данные собраны с использованием тактильных перчаток, добавляется топик массива цифровых сигналов:
/mocap/touch_data 57 msgs (30.25 Hz): io_msgs/squashed_touch [ros1msg]
Аннотация на естественном языке
{
"belong_to": "20250115_InnerTest_PublicArea_TableClearing_szk_180926",
"mocap_offset": [],
"object_set": [
"paper cup",
"placemat",
"trash can",
"napkin",
"plate",
"dinner knife",
"tableware storage box",
"wine glass",
"dinner fork"
],
"scene": "PublicArea",
"skill_set": [
"pick {A} from {B}",
"toss {A} into {B}",
"place {A} on {B}"
],
"subtasks": [
{
"skill": "pick {A} from {B}",
"description": "pick the paper cup from the placemat with the left gripper",
"description_zh": "左夹爪 从 餐垫 捡起 纸杯",
"end_frame_id": 227,
"end_timestamp": "1736935777206000000",
"sequence_id": 1,
"start_frame_id": 159,
"start_timestamp": "1736935774906000000",
"comment": "",
"attempts": "success"
},
{
"skill": "toss {A} into {B}",
"description": "toss the paper cup into the trash can with the left gripper",
"description_zh": "左夹爪 扔纸杯进垃圾桶",
"end_frame_id": 318,
"end_timestamp": "1736935780244000000",
"sequence_id": 2,
"start_frame_id": 231,
"start_timestamp": "1736935777306000000",
"comment": "",
"attempts": "success"
},
...
],
"tag_set": [],
"task_description": "20250115_InnerTest_PublicArea_TableClearing_szk_180926"
}
Формат данных телеуправления
Данные телеу правления фиксируют процесс управления роботом оператором через VR-устройства.
Структура файлов телеуправления
f"{robot_name}_{date}_{timestamp}_{sequence_id}"
├── RM_AIDAL_250124_172033_0.mcap # Мультимодальные данные
├── RM_AIDAL_250124_172033_0.json # Данные аннотации
└── RM_AIDAL_250126_093648_0.metadata.yaml # Метаданные