Grabette: An Open System to Record Robot-Manipulation Data – A Comprehensive Guide

Introduction

Robot manipulation – the ability of a robotic arm to grasp, move, and interact with objects – is one of the most challenging and impactful areas of modern robotics. Training robust manipulation policies requires vast amounts of high-quality data. Yet, collecting such data remains a major bottleneck: researchers often rely on custom-built recording setups, proprietary software, or manual teleoperation that is neither scalable nor reproducible.

Enter Grabette, an open system designed specifically to record robot-manipulation data. Released by the team at Hugging Face, Grabette aims to democratize data collection by providing a standardized, extensible, and easy-to-use framework. This article explores what Grabette offers, how it works, and why it matters for the robotics community. We draw on the official announcement and technical documentation available on the Hugging Face blog Source.

What Is Grabette?

Grabette is an open-source system for capturing multimodal data from robot-manipulation episodes. According to the project’s documentation, it supports recording from multiple sensors simultaneously, including RGB-D cameras, force-torque sensors, joint encoders, and microphones. The recorded data is timestamped and synchronized at the hardware level, which is critical for training imitation learning and reinforcement learning models.

The system is built with modularity in mind. It provides a unified interface for different robot arms (e.g., Franka Emika Panda, UR5, KUKA LBR iiwa) and grippers. Users can define custom observation and action spaces without modifying the core recording pipeline.

Key Features of Grabette

The authors highlight several features that distinguish Grabette from existing tools:

Feature Description
Open-source Fully available on GitHub under a permissive license (MIT).
Multi-sensor sync Hardware-level timestamp synchronization using a common clock reference.
Extensible Plugin architecture allows adding new sensors, robots, or data sinks.
Lightweight Minimal dependencies; can run on a single computer with a GPU for real-time processing.
Data format Outputs in HDF5 or Zarr, both compatible with popular deep learning frameworks.
Visualization Built‑in web-based viewer to inspect recorded episodes.

These features make Grabette suitable for both small labs and large‑scale data collection efforts.

How Grabette Works

The recording pipeline consists of three main stages:

  1. Sensor Acquisition – Each sensor is wrapped in a driver that publishes data to a central buffer. The drivers handle device-specific configuration (e.g., camera resolution, force sensor filter) and stamp every message with a system‑wide monotonic clock.

  2. Synchronization – Grabette uses a software trigger to align data streams. If hardware triggers are available (e.g., via a GPIO signal), they can be used to achieve microsecond precision. The synchronized frames are then packed into a structured dictionary holding images, joint states, gripper status, and external forces.

  3. Storage – Data is written to disk in chunks using HDF5 or Zarr. Metadata (robot model, calibration parameters, task description) is stored alongside the recorded episodes. The system also supports streaming data to a remote server for collaborative data collection.

Practical Use Cases

The developers envision several applications for Grabette:

  • Imitation learning: Collect expert demonstrations with full state and visual information to train behavior cloning or diffusion policies.
  • Reinforcement learning: Record rollouts from a simulation or real robot to build offline datasets.
  • Benchmarking: Standardize data collection across labs to allow fair comparison of manipulation algorithms.
  • Teleoperation research: Log operator input and robot response for human‑robot interaction studies.

For example, a researcher studying peg-in-hole assembly could set up Grabette on a Franka arm with two wrist cameras, record 1000 successful insertions, and use the data to learn a robust insertion policy. The structured output format makes it straightforward to split episodes, extract frames, and feed them into a PyTorch or TensorFlow training pipeline.

Getting Started with Grabette

While the full installation guide is available in the project’s repository, the typical workflow is as follows:

# Clone the repository
git clone https://github.com/huggingface/grabette.git
cd grabette

# Install dependencies (Python 3.10+ recommended)
pip install -r requirements.txt

# Launch the data recorder with a robot configuration file
python grabette_record.py --config configs/franka.yaml

The configuration file defines robot parameters, sensor list, and data output path. After calibration, the user can start/stop recordings with a hotkey or via a web interface.

The recorded episodes are stored in a directory tree:

experiments/
  task_001/
    episode_01.h5
    episode_02.h5
    ...
  metadata.yaml

Why Grabette Matters

Robot learning has long suffered from the

← All posts

Comments