Getting started
Run on URSim
URSim is Universal Robots' controller simulator, with the real PolyScope interface. It is the easiest way to try a robot program without hardware.
Requirements
- Docker, with permission to run containers.
- A project generated as in Install & run, with the default UR address
127.0.0.1:30004.
1. Start URSim
Repose pins URSim 5.25.1 (e-series, UR5e) in a compose file in the repose-bridges repository. Generated projects don't include it, so download it into a directory of its own and start it:
mkdir ursim && cd ursim
curl -LO https://raw.githubusercontent.com/ReposeRobotics/repose-bridges/master/universal_robots/repose_ur/compose.yaml
docker compose upOr run the same container directly, without the compose file:
docker run --rm -it -e ROBOT_MODEL=UR5 \
-p 127.0.0.1:6080:6080 -p 127.0.0.1:30004:30004 \
-p 127.0.0.1:30002:30002 -p 127.0.0.1:29999:29999 \
-v ursim-programs:/ursim/programs \
universalrobots/ursim_e-series:5.25.16080 | PolyScope in the browser (noVNC) |
30004 | RTDE: joint state and streamed commands |
29999 | Dashboard server: power, brakes, program control |
30002 | Secondary interface |
All ports are bound to localhost only. See the compose file for the exact pinned setup.
2. Set up PolyScope
- Open http://localhost:6080/vnc.html and connect.
- Complete PolyScope's initial setup and confirm the safety configuration when asked.
- Go to Settings › System › Remote Control and enable Remote Control.
- Exit Settings, then use the Local selector in the top-right corner and switch it to Remote Control.
3. Run the program
In your project, select the UR5e in robot.ron and run:
(robot: ur5e)cargo runThe simulated arm in PolyScope moves all joints out by 5° and back, then the app releases the session.
URSim on another machine
If URSim runs on a remote server, the simplest setup is to run the app on that server too, so it reaches the controller on localhost. To use PolyScope from your own machine, tunnel the web interface:
ssh -L 6080:localhost:6080 user@sim-host
# then open http://localhost:6080/vnc.html locallyTo run the app on your own machine instead, forward all controller ports, not just the web interface:
ssh -L 6080:localhost:6080 -L 30004:localhost:30004 -L 29999:localhost:29999 -L 30002:localhost:30002 user@sim-hostWhat has been verified
- Verified on URSim: joint-state feedback, individual wrist moves, and a three-step streamed program.
- Not yet verified end to end: the watchdog's behaviour when the host freezes, and the UR5e path on physical hardware.
- Model scope: the UR5e profile's kinematics are nominal and its collision capsules approximate. They are fine for the simulator, but they are not a validated collision model for a real arm, its tool or its cell. Other UR models need their own profile.