Back to LinkerBot O6 Path

First Teleoperation

Run your first teleoperation session on the LinkerBot O6. Keyboard control, SpaceMouse, and leader-follower methods. Safety protocol and LeRobot teleop integration. ~1.5 hours.

Unit 3 of 5 · First Teleoperation · ~1.5 hours

Drive the O6 in real time using keyboard control, a SpaceMouse, or a leader arm. By the end you will have completed a 5-minute continuous teleoperation session — the prerequisite for data collection in Unit 4.

⚠ 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 / S Forward / Back (X axis)
A / D Left / Right (Y axis)
Q / E Up / Down (Z axis)
R / F Roll left / Roll right
H Return to home
Ctrl+C Stop 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.

← Back to path overview