Teleoperation Methods
Keyboard Control
Control end-effector position with arrow keys and keyboard shortcuts. Slow but requires no additional hardware. Good for initial familiarization.
SpaceMouse
3Dconnexion SpaceMouse maps 6-axis input to end-effector Cartesian motion. Intuitive and fast — the best option for recording quality demonstrations.
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:
- Start at home position (all joints zero).
- Move in +X (forward) 150 mm — the arm should reach toward the table without collision.
- Move in +Z (up) 100 mm — the arm should lift freely.
- 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.