Skip to main content

Data Upload

The Data Upload page imports local files or data in object storage into the platform. Datasets on the platform use MCAP as the baseline format: video and audio are converted to MCAP in the browser, BAG files are converted to MCAP by a backend service, and MCAP files and LeRobot directories are ingested as they are. After import, datasets are searched and previewed in one place on the Data Management page.

Format selection and project / storage selection on the upload page (administrator, test environment)

Prerequisites​

The corresponding upload form appears only after an ingestion method, a project, and cloud storage are selected.

ItemDescription
Menu entryData → Upload
Route/upload
Required permission“Data Upload”
API checkThe upload record write API validates “Dataset List”
Visible rolesAdministrator, Project Manager, Collector
Project prerequisitePrompts “Please select a project” when no project is selected
Cloud storage prerequisitePrompts “Please Select Cloud Storage” when no cloud storage is selected; when there are no options, an administrator configures it on the Cloud page

Data Ingestion​

Ingestion Methods​

The ingestion method cards at the top of the page determine the upload entry point and the conversion behavior.

Ingestion methodSupported formatsConversion behaviorConstraint
MCAP fileMCAPIngested as-is, no conversionNone
BAG fileBAGThe backend detects ROS1 or ROS2 and converts to MCAPConversion runs on the server
Video fileMP4, WebM (video containers the browser can decode)Transcoded to MCAP in the browserRequires Chrome 94+ or Edge 94+
Audio fileMP3, WAV, AAC, OggConverted to AudioData messages in the browserDepends on the browser's audio decoding support, with no restriction on browser type
Image fileJPG, PNGIngested as-is for image annotationNone
HDF5 fileHDF5Select a robot type during upload; the dataset is processed by the preprocessing pipeline after ingestionRequires an administrator to configure the preprocessing pipeline
LeRobot folderLeRobot v2, v3Validates meta/info.json and then streams a tar packageThe entire dataset folder must be selected
Meituan folderMeituan capture folder (data + video)Packaged, uploaded, and preprocessed to MCAPRequires an administrator to configure the preprocessing pipeline
Lumos FastUMI folderUMI, EGOPackaged per session as .lumosRequires an administrator to configure the preprocessing pipeline
zc0touch folderA directory containing data.jsonEach directory is packaged as .zc0touchRequires an administrator to configure the preprocessing pipeline
SenseXperience folderDevice capture episode directoryUploaded per episode directoryShown only when the sensexperience object storage is configured
BVH FileBVHIngested as-is for motion-visualization annotationRequires an administrator to configure the preprocessing pipeline
Batch Auto UploadDepends on the script data typeA local script watches a directory and uploads automaticallySee “Batch Upload Script”
Import from cloudMCAP, HDF5, LeRobotScans object storage and importsA project must be selected first

Browser Prerequisites​

Converting video to MCAP depends on the browser's MediaStreamTrackProcessor and HTMLVideoElement.captureStream (mozCaptureStream as the Firefox-prefixed fallback). The page checks whether these two interfaces exist when the video ingestion method is opened; this is a runtime capability check rather than a browser-version allowlist.

ItemValue
Required interfacesMediaStreamTrackProcessor; HTMLVideoElement.captureStream
Check methodRuntime check for the presence of those interfaces
Supported browsersChrome 94+, Edge 94+ (both interfaces present)
Unsupported browsersFirefox does not provide MediaStreamTrackProcessor; Safari 18+ provides MediaStreamTrackProcessor but not HTMLVideoElement.captureStream
Check timingWhen the video ingestion method is opened
Behavior when unsupportedShows “Browser Incompatible” and blocks drag-and-drop and file selection
WorkaroundUse Chrome 94+ or Edge 94+; or convert the file to MCAP first and upload it as an MCAP file

Video Conversion Parameters​

The following parameters appear after the video ingestion method is selected; conversion runs in the browser.

ParameterValueDefaultConstraint
Image quality20%, 50%, 70%, 100%70%Higher quality means larger files and longer processing
Video Frame RateAuto, 10 FPS, 15 FPS, 30 FPSAutoAuto follows the original video frame rate
Contains AudioChecked, uncheckedCheckedDetermines whether the audio track is kept

Audio Conversion Parameters​

Audio files are converted to standard ROS AudioData messages, with no configuration required.

ItemValue
Output messageROS message type audio_common_msgs/msg/AudioData, written to the io_teleop/audio_data topic, with CDR message encoding
Message rateFixed at 10 Hz
Sample format16-bit signed little-endian PCM (s16le)
MetadataChannels carry the sample rate, channel count, and encoding format (s16le)
Channel handlingWritten channel by channel using the original channel count

Upload and Import​

Upload Queue and Progress​

Uploads in the same batch appear as a list with a status per item. File size determines the upload mode and the available actions.

ItemValueNotes
Multipart upload threshold100 MBFiles above this size use multipart upload with 10 MB parts
Pause and resumeMultipart uploads onlyFiles below the threshold offer only cancel
Progress displayUpload speed, uploaded and total size, estimated time remainingRefreshed per file
Leave confirmationWhen a file is uploading or waitingA confirmation appears when the page is closed or refreshed
Video processing timeout10 minutesThe conversion fails after the timeout

Upload Status​

The list shows a status per item. The values and follow-up actions are as follows.

StatusMeaningNext action
pendingThe file is selected and waiting to startNone
uploadingConverting or uploadingNone
pausedMultipart upload is pausedClick Resume
successUpload succeeded and the dataset was createdClick “View Dataset”
errorProcessing or upload failedCheck the cause and retry
cancelledThe upload was canceledUpload again

Duplicate Upload and Same-Name Validation​

The upload record write API deduplicates by source address; records with the same name in the same project follow the DATASET_REUPLOAD_RECOVER system setting.

MatchHandlingResult
The source address matches an existing datasetReuse the existing recordMerges the upload information, creates nothing, and shows “File Already Exists”
An undeleted dataset with the same name exists in the projectReuse the existing recordCreates nothing
A dataset with the same name was deleted and the recovery switch is onRestoreKeeps the original annotations, task links, and data tags
A dataset with the same name was deleted and the recovery switch is offRejectShows “A dataset with the same name in this project was deleted. Current system settings prohibit restoring and re-uploading.”
No same-name recordCreateCreates a new dataset and appends a suffix when needed

Batch Upload Script​

“Batch Auto Upload” provides a script that runs on the robot terminal, watches a specified directory, and uploads new files automatically. The script is generated from the current project and cloud storage.

ItemValue
Data typeSingle file (mcap, bag, hdf5), folder (AgiBot data format), folder (LeRobot data format), folder (Meituan capture format), folder (Lumos FastUMI), folder (zc0touch)
Parent directory levels0 (default), 1, 2
Script commandsupload (runs in the foreground), install (installs as a systemd service), uninstall (removes the service)
Permission requirementsupload runs as a regular user; install and uninstall require root

Parent directory levels avoid same-name conflicts: level 0 uses the file name directly, level 1 adds the immediate parent directory as a prefix, and level 2 adds two parent directory levels as a prefix. For example, episode_1.mcap becomes 2025-01-01_10-30_episode_1.mcap in level 2 mode.

Import from Cloud​

“Import from cloud” scans object storage and imports existing data.

ItemValue
Data typeMCAP, HDF5, LeRobot
Run modeTest (scan and preview only), Import (scan and ingest)
CountersFound, to import, already imported, imported
Per-item statusto_import, already_imported

Constraints and Limits​

ItemValueScope
Project and cloud storageBoth requiredAll ingestion methods
Multipart upload threshold100 MBSingle file
Part size10 MBSingle file
Video processing timeout10 minutesVideo ingestion method
Video conversion browsersChrome 94+, Edge 94+Video ingestion method
Hidden file exclusionFiles whose names start with “.” are excluded from packaged uploadsFolder ingestion methods
Empty file blockingFiles with a size of 0 cannot be uploadedSingle file
HDF5 robot typeRequired when the preprocessing pipeline defines a robot typeHDF5 ingestion method

Troubleshooting​

SymptomPossible causeActionOwner
Shows “Please select a project”No owning project is selectedSelect a project in the project selectorUploader
Shows “Please Select Cloud Storage”No target cloud storage is selectedSelect cloud storage; when there are no options, contact an administrator to configure itUploader, Administrator
Video ingestion shows “Browser Incompatible”The browser lacks MediaStreamTrackProcessor or HTMLVideoElement.captureStreamUse Chrome 94+ or Edge 94+; or convert to MCAP first and uploadUploader
Video processing times outThe video duration or resolution is too highLower the quality or frame rate and retryUploader
The upload fails and shows a reasonNetwork interruption, a corrupted file, or insufficient storageMultipart uploads can resume; fix a corrupted file first; contact an administrator to expand storage when space runs outUploader, Administrator
Shows “Cannot upload empty file”The selected file has a size of 0Use a valid fileUploader
LeRobot packaging validation failsmeta/info.json is missing or the directory structure does not matchComplete the LeRobot directory structure and upload againUploader
Shows “File Already Exists”The source address duplicates an existing datasetCheck the existing record on the Data Management pageUploader
Shows that same-name data in the project was deletedThe system setting prohibits restoring and re-uploadingContact an administrator to change the recovery setting, or use a different file nameAdministrator
PagePurpose
Data ManagementSearch, preview, and batch-operate on datasets after upload
Annotation TasksCreate annotation tasks for uploaded data
Dataset ExportExport annotation results for training
Module PermissionsConfigure module permissions such as “Data Upload”
Data formatDefinitions of the MCAP and ROS data model