Skip to main content
DimOS manipulation is three things:
  1. Classical motion planning - a Drake-backed world model with RRT-Connect planning and Pink IK, driven through the ManipulationModule RPC interface (RoboPlan available as an alternative backend).
  2. Teleoperation - three ways to move an arm by hand: zero-gravity teach mode, VR (Quest), and keyboard.
  3. An imitation-learning loop - record demonstrations, export a LeRobot dataset, train a policy, and run it back on the arm. Collection and export ship on every arm; running a trained checkpoint on hardware ships today on the Galaxea A1Z. See Collect data & train a policy for the full loop, or the complete A1Z guide for the hand-teach β†’ train β†’ deploy path start to finish.

Where do you want to start?

Choosing a teleop method

Ranked by how well they work for demonstrating tasks:
  1. Teach mode (kinesthetic) - put the arm in gravity-compensated zero-force mode and drag it through the task. Most natural demonstrations, no extra hardware. Available on the Galaxea A1Z.
  2. VR (Quest) - 6-DOF controller tracking with hold-to-engage and per-episode record controls. Best when the operator must stay out of the workspace. VR teleoperation.
  3. Keyboard - one key per axis. Good for smoke-testing a stack and demos without hardware; genuinely painful for collecting training data. Do not plan a data-collection session around it.

Quick start: keyboard teleop (no hardware)

Each blueprint launches the full stack - keyboard UI, mock controller, IK solver, and Drake visualization:
Open the Meshcat URL printed in the terminal (default http://localhost:7000) to see the robot.

Motion planning

Install the dependencies, then run a planner against a mock coordinator:
Drive it from the IPython client:
skip

Backends

Planning separates the world representation from the planner algorithm and the IK backend: Select per run with module options; invalid combinations fail at startup rather than at the first plan request:

Visualization

Planning visualization is configured on ManipulationModuleConfig.visualization, independent of the global Rerun viewer: meshcat (embedded Drake visualizer), viser (in-process web visualizer with preview ghosts and panel controls), or none.

Perception + agent

An arm stack with a camera and an LLM agent on top, in one command:

Architecture

  • KeyboardTeleopModule - UI publishing spatial end-effector twist intent
  • ControlCoordinator - 100 Hz control loop with mock or real hardware adapters
  • ManipulationModule - world backend, motion planning, obstacle management, visualization

Supported robots

Key files