Skip to content

Install Robot Sorter on Another Computer

This guide is for someone receiving the red/blue Teachable Machine pick-and-place demo on a different computer. The native Robot Sorter package includes Python and the required libraries, so the recipient does not need Docker, Git, VS Code, or a Python environment.

What You Need

  • A Windows, macOS, or Linux computer.
  • The assembled six-servo Dynamixel arm, power supply, USB serial adapter, and camera.
  • Red and blue objects, one fixed pickup location, and two fixed bins.
  • A Teachable Machine image model with these exact classes:
red object
blue object
empty
unknown

Keep the physical power disconnect reachable

Browser controls are not an emergency stop. If the arm moves unexpectedly, disconnect robot power. Keep people clear of the arm whenever physical execution is enabled.

1. Download and Extract Robot Sorter

Open the Robot Sorter releases page and download the package for the recipient's operating system:

Computer Download
Windows RobotSorter-Windows.zip
macOS with Apple Silicon (M1/M2/M3/M4/M5) RobotSorter-macOS-Apple-Silicon.tar.gz
macOS with an Intel processor RobotSorter-macOS-Intel.tar.gz
Linux RobotSorter-Linux.tar.gz

Extract the complete archive to a normal folder. Keep all extracted files together; do not move only the executable. If the releases page does not contain these files yet, the course maintainer must publish a Robot Sorter release before continuing.

2. Start in Dry-Run Mode

Connect the camera, but leave the arm powered off for the first launch.

Double-click RobotSorter.exe. If Microsoft Defender SmartScreen appears, confirm the download came from the official course release before choosing More info → Run anyway. Keep the terminal open.

Control-click RobotSorter.app, choose Open, and confirm the first launch. Keep the application/terminal open.

Open a terminal in the extracted folder and run:

./RobotSorter

Robot Sorter opens http://127.0.0.1:8765/ in the default browser. If it does not open automatically, enter that address manually. Allow camera access when the browser asks.

The header must say dry run. Dry-run mode classifies objects and shows the mapped action, but it cannot move the arm.

3. Connect the Robot

  1. Select Quit Robot Sorter at the top of the browser page. Wait until the page says the server stopped, then close the browser tab.
  2. Connect the Dynamixel USB adapter and robot power.
  3. Start Robot Sorter again.
  4. Under Robot Setup, select Refresh Devices.
  5. Choose the Dynamixel adapter and select Use Selected Device.

If several serial devices appear, unplug the adapter, refresh, reconnect it, and refresh again. The newly appearing device is normally correct. Device names can change between computers, so repeat this selection even when transferring an existing calibration.

4. Restore or Create the Calibration

Robot poses belong to a particular arm and physical layout. Choose the appropriate path.

Same Arm and Unchanged Table Layout

If the robot mounting, camera, pickup marker, and bins have not moved, copy the existing profile from the old computer to the equivalent folder on the new computer:

Operating system Profile folder
Windows %APPDATA%\RobotSorter
macOS ~/Library/Application Support/RobotSorter
Linux ${XDG_CONFIG_HOME:-~/.config}/robot-sorter

Copy at least:

actions.json
config.json
teachable_machine_actions.json

Then start Robot Sorter, select the new computer's serial device, and run Safe Preflight.

Warning

Recalibrate if the robot base, camera, pickup point, bins, objects, gripper, or joint construction changed. A copied profile is safe only when the physical geometry is truly unchanged.

New Arm or Changed Layout

Use the included RobotPoseRecorder once:

  1. Clamp the robot and fix the camera, pickup marker, and bins in their final positions.
  2. Save the serial device in Robot Sorter, then select Quit Robot Sorter so it releases the port.
  3. Run RobotPoseRecorder from the extracted package.
  4. Follow each terminal prompt. Torque is disabled before you are asked to move the arm manually.

Record these physical positions:

Location and pose Position to record
Safe home/rest Arm clear of the table, objects, and bins
Pickup hover Above pickup, gripper open
Pickup pre-grasp Close to object, gripper open
Pickup grasp At object, gripper closed
Pickup post-grasp Object lifted, gripper closed
Bin post-grasp Above bin, gripper closed
Bin grasp At drop height, gripper closed
Bin pre-grasp At drop height, gripper open
Bin hover Above bin, gripper open

The recorder repeats the bin poses for red and blue. It creates timestamped backups before modifying an existing profile. Reopen Robot Sorter and select Run Safe Preflight. Preflight checks the serial device, six servo IDs, required poses, and joint limits without moving the arm.

5. Load and Test the Model

Use either method:

  • Paste the hosted model's parent URL, such as https://teachablemachine.withgoogle.com/models/MODEL_ID/.
  • Select exported model.json, metadata.json, and .bin weights files together.

The exported-file method works offline after downloading the model. The app refuses a model missing a required class.

Select Start Camera and Model and verify:

  • Red and blue objects produce their matching labels.
  • A clear pickup area produces empty.
  • Hands, multiple objects, and unclear views produce unknown.
  • Valid objects consistently exceed 0.85 confidence.

Improve training examples or lighting if these checks fail.

6. Complete a Dry Run

  1. Confirm the header says dry run.
  2. Enable Send stable predictions to Python.
  3. Place one red object exactly at the pickup marker.
  4. Confirm the last message reports dry_run and the red-bin sequence.
  5. Clear the pickup area until the system re-arms, then repeat with blue.
  6. Test empty, unknown, a hand, and two objects. None should request motion.

Do not proceed until classification is reliable in the actual camera position and lighting.

7. Enable Physical Execution

  1. Select Quit Robot Sorter in the dry-run page. Wait until it says the server stopped, then close the browser tab or terminal window.
  2. Clear the workspace and keep the power disconnect reachable.
  3. Start the execute launcher:
Operating system Launcher
Windows start-robot-sorter-execute.bat
macOS start-robot-sorter-execute.command
Linux start-robot-sorter-execute.sh

Execute mode runs preflight before starting. Invalid calibration, configuration, or hardware prevents motion.

After the browser opens:

  1. Confirm execute mode and preflight passed in the header.
  2. Start the camera/model.
  3. Confirm the workspace is clear.
  4. Enable sending, then step away from the arm.

The bridge accepts one sort and then latches. It re-arms only after a stable empty view or Re-arm Sorting. A motion timeout faults the session and attempts to disable torque; inspect the arm before restarting.

Troubleshooting

Problem What to do
Browser does not open Keep Robot Sorter running and open http://127.0.0.1:8765/.
Camera is unavailable Close other camera apps, reload, and grant browser camera permission.
Robot Sorter has no terminal to close Select Quit Robot Sorter at the top of its browser page. Closing only the tab does not stop the app. If the page is unavailable, end RobotSorter in Activity Monitor (macOS), Task Manager (Windows), or the system monitor (Linux).
No serial devices appear Check USB and power, install the adapter driver if required, and refresh.
Preflight cannot contact servos Close Dynamixel Wizard/serial monitors; check power, baud rate, IDs, and cables.
Calibration is incomplete Run RobotPoseRecorder or restore this arm's profile.
Model fails to load Select all three export files together or use the hosted parent URL.
Labels are rejected Use exactly red object, blue object, empty, and unknown.
Port is in use Close other Robot Sorter, recorder, Wizard, and serial-monitor windows.
Motion times out/faults Disconnect power if needed, inspect for collisions or cable problems, and correct the cause before restarting.

Updating Robot Sorter

Download and extract the newer release. Calibration profiles live outside the application folder, so replacing the application does not delete them. Back up the profile folder before major updates.