⚠ Keep hands clear during teleoperation. The arm responds immediately to input. If the arm moves unexpectedly, release all controls and press Ctrl+C in your terminal to halt. The arm will stop and remain in its last position.

Teleoperation Methods

Beginner

Keyboard Control

Control end-effector position with arrow keys and keyboard shortcuts. Slow but requires no additional hardware. Good for initial familiarization.

Recommended

SpaceMouse

3Dconnexion SpaceMouse maps 6-axis input to end-effector Cartesian motion. Intuitive and fast — the best option for recording quality demonstrations.

Advanced

Leader-Follower

A second identical or compatible arm acts as the leader. Highest-quality kinematic demonstrations. Requires compatible leader hardware.

Method A: Keyboard Teleoperation

python3 -m roboticscenter.teleop.keyboard \
  --can-interface can0 \
  --speed 0.05  # end-effector speed in m/s

Key bindings (displayed in terminal on launch):

Key Action
W / SForward / Back (X axis)
A / DLeft / Right (Y axis)
Q / EUp / Down (Z axis)
R / FRoll left / Roll right
HReturn to home
Ctrl+CStop and exit

Method B: SpaceMouse Teleoperation

# Install SpaceMouse driver dependency
pip install pyspacemouse

# Launch teleop with SpaceMouse
python3 -m roboticscenter.teleop.spacemouse \
  --can-interface can0 \
  --translational-speed 0.1 \  # m/s max
  --rotational-speed 0.5       # rad/s max

Push the SpaceMouse puck forward to move the end-effector forward, up to move it up, and twist to rotate the wrist. The mapping is 1:1 in Cartesian space. Practice for 5 minutes before moving to data collection.

Method C: LeRobot Teleoperation

LeRobot's built-in teleop runner works with keyboard or SpaceMouse and logs episodes directly to the LeRobot dataset format you'll use for training:

python -m lerobot.scripts.control_robot \
  --robot.type=linker_bot_o6 \
  --control.type=teleoperate \
  --control.fps=30

Press Space to start/stop recording an episode. Press Q to quit. Episodes are saved to ~/.cache/lerobot/ by default. Familiarize yourself with this workflow before Unit 4, where you'll use it with a task and camera.

Workspace Calibration Check

Before your first teleoperation session, verify you are not commanding the arm into its own body or the mount:

  1. Start at home position (all joints zero).
  2. Move in +X (forward) 150 mm — the arm should reach toward the table without collision.
  3. Move in +Z (up) 100 mm — the arm should lift freely.
  4. Rotate joint 1 left and right by 45° — confirm there is no cable tension or mechanical binding.

Unit 3 Complete When...

You have completed one 5-minute continuous teleoperation session using your chosen method (keyboard, SpaceMouse, or leader-follower). The arm responds smoothly to all 6 axes of input. You can return to home position reliably. You have practiced the LeRobot control_robot teleop script and know how to start/stop episode recording.