Skip to main content

Data Recording

Use Data Recording to collect robot demonstrations as rosbag2 episodes. After recording, the dataset can be reviewed, edited, merged, converted, or uploaded from Data Tools.

Cyclo Data Workflow

Select a step for details.

Robot Preparation

important

Before recording, make sure the robot operation and camera nodes are running. Cyclo Intelligence records the robot, joint, and camera topics that are already being published on the robot network.

For robot operation and camera setup, follow the OMX Teleoperation guide. After the robot is ready, return to this page and check the Camera Views and Topic Monitor.

Home Page

Robot Type Selection

Before opening the Record page, select the robot type from the Home page.

Only robot types with a config file under cyclo_intelligence/shared/shared/robot_configs appear in this list.

Change Collected Data

Cyclo Intelligence records only the topics listed in the robot config. A topic missing from it is not collected, even while it is being published.

There is one config per robot type. Open the matching one:

cd ~/cyclo_intelligence/shared/shared/robot_configs
ls
nano <your_robot>_config.yaml

Each camera is one named entry under observation.images. To add a second, copy the block and change the name and topic:

observation:
images:
camera1:
topic: /camera1/image_raw/compressed
msg_type: sensor_msgs/msg/CompressedImage
camera2:
topic: /camera2/image_raw/compressed
msg_type: sensor_msgs/msg/CompressedImage
rotation_deg: 270
  • camera2 — any name you choose. It becomes the observation key in the dataset.
  • topic — an image topic the robot already publishes.
  • msg_typesensor_msgs/msg/CompressedImage for compressed topics.
  • rotation_deg — optional. Only 0, 90, 180, or 270.

Use the commands below only for a camera you added, since a config entry names a topic to record but does not start the camera:

# check which device the camera is on
v4l2-ctl --list-devices

ros2 launch open_manipulator_bringup camera_usb_cam.launch.py name:=camera2 video_device:=/dev/video1

Device paths are assigned by the host, so they change between machines and after a replug. One camera often exposes several /dev/videoN nodes; the streaming one is usually the lowest-numbered capture node.

Record Page

Use the Record page to collect robot demonstrations as rosbag2 episodes. Select an area to see what it is for:

Check the scene and the selected image topics before recording. This is how you confirm the robot can see the task scene.

Record page with the camera views area highlighted

Rosbag Recorder Panel

Use the Rosbag Recorder panel to enter the recording information before starting data collection.

Rosbag Recorder Panel

FieldDescription
Task NumTask number or identifier for the dataset.
Task NameShort task name used to identify the dataset.
Task InstructionNatural-language instruction that describes the demonstration.
Add LicenseAdds ROBOTIS dataset license information. Leave it unchecked for normal recording.
Number of SubTasksSet this to 0 when the episode does not need subtasks.
Sub Task InstructionFill this in for each subtask when Number of SubTasks is greater than 0.

After entering the required information, click Record Start to begin recording.

When to use Number of SubTasks

Leave Number of SubTasks at 0 for a single continuous demonstration. The whole recording is saved as one episode under one instruction.

Set it to the number of stages when one demonstration has distinct steps you want labelled separately — for example picking up a cup, then placing it in a bin. The episode is then recorded one stage at a time: record a subtask, save it, record the next, and so on. The episode is only complete once every subtask has been saved.

0
Task InstructionPut the cup in the bin
one continuous recording
3
Task InstructionPut the cup in the bin
Sub Task 1Reach for the cup
Sub Task 2Pick up the cup
Sub Task 3Drop it in the bin

Task Instruction compared with Sub Task Instruction

FieldWhat it describesWhen you fill it in
Task InstructionThe demonstration as a whole.Always.
Sub Task InstructionOne stage within that demonstration.Only when Number of SubTasks is greater than 0, once per subtask.
note

Plan the count before you start. Number of SubTasks is set before recording, and the episode expects that many subtasks.

Recording Sequence

  1. In the Rosbag Recorder panel, fill in Task Num, Task Name, Task Instruction, and subtask information if needed. Then click Record Start.

Record episode start

  1. To save the episode being recorded, click the green Save Episode button. To cancel the episode being recorded, click Discard Episode.

Record episode save and discard

Recorded Dataset Location

Recorded rosbag2 datasets are stored under /workspace/rosbag2 inside the Cyclo Intelligence container.

Container path:

/workspace/rosbag2/<dataset_name>/<episode_index>/

Host path:

$HOME/cyclo_intelligence/docker/workspace/rosbag2/<dataset_name>/<episode_index>/

Example:

/workspace/rosbag2/Task_000081_RecycleBlackPlasticCup_MCAP/0/

Each episode folder contains the recorded MCAP file, task metadata, camera videos, timestamp files, and camera calibration snapshots.

File or folderPurpose
metadata.yamlrosbag2 metadata for the recorded episode.
episode_info.jsonTask information and recording details.
*.mcapRecorded ROS 2 data.
videos/Camera videos and per-camera timestamp files.
camera_info/Camera calibration files captured with the episode.