Skip to main content
This tutorial is the full hands-on path. For protocols and Docker topology, see Custom integrations. For what the SDK automates, see Writing compatible drivers — Python SDK drivers and BaseROS2Driver.
Connect a simulated Universal Robots arm to a Cyberwave twin using ursim_driver.py (~75 lines). No physical robot required.

Prerequisites


1. Create a Docker network

Containers resolve each other by name (ursim, ros2_env).

2. Start UR Sim

Open the teach pendant: http://localhost:6080/vnc.html?host=localhost&port=6080 Connect, power on, and release the brakes.

  1. Program motion on the teach pendant

Joint data only changes while the arm moves. Before ROS or Cyberwave, record a short program:
  1. On the pendant page, open Program.
  2. Click Move to add a Move primitive.
  3. Add waypoints — start with all joints at 0, then any poses you want to simulate.
  4. Save the program (for example test).
  5. Open Run, load the program.
  6. Long-press Play to start execution.
  7. Watch motion under Installation (TCP visualization).
UR Sim teach pendant — program, run, arm moving
If /joint_states is flat later, the arm is probably idle — run the program from Run first.

4. Start ROS 2 with your repo mounted


5. Install dependencies (inside ros2_env)


6. Launch the UR ROS 2 driver (terminal 1)

Keep this shell open:
Optional check (second docker exec shell):

7. Run the Cyberwave driver (terminal 2)

On the host:

Expected result

  • Terminal: Connected to Cyberwave servers, ROS forward: /joint_states …, Cyberwave driver ACTIVE
  • Cyberwave UI: twin pose tracks the sim; Alerts shows driver lifecycle messages
UR Sim motion mirrored in Cyberwave

What you just ran

The example subclasses BaseROS2Driver and declares one from_ros publisher on /joint_states. The SDK handles Cyberwave connect, ROS lifecycle, JointState → MQTT serialization, and twin alerts.

Next steps

Fake IMU driver tutorial

No hardware — manifest, MQTT, and commands on a D455 twin.

Edge Core

Run the driver as a managed container on edge hardware.