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¶
- Select Quit Robot Sorter at the top of the browser page. Wait until the page says the server stopped, then close the browser tab.
- Connect the Dynamixel USB adapter and robot power.
- Start Robot Sorter again.
- Under Robot Setup, select Refresh Devices.
- 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:
- Clamp the robot and fix the camera, pickup marker, and bins in their final positions.
- Save the serial device in Robot Sorter, then select Quit Robot Sorter so it releases the port.
- Run
RobotPoseRecorderfrom the extracted package. - 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.binweights 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.85confidence.
Improve training examples or lighting if these checks fail.
6. Complete a Dry Run¶
- Confirm the header says dry run.
- Enable Send stable predictions to Python.
- Place one red object exactly at the pickup marker.
- Confirm the last message reports
dry_runand the red-bin sequence. - Clear the pickup area until the system re-arms, then repeat with blue.
- 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¶
- Select Quit Robot Sorter in the dry-run page. Wait until it says the server stopped, then close the browser tab or terminal window.
- Clear the workspace and keep the power disconnect reachable.
- 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:
- Confirm execute mode and preflight passed in the header.
- Start the camera/model.
- Confirm the workspace is clear.
- 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.