finds.dev← search

// the find

UniversalRobots/Universal_Robots_ROS2_Driver

★ 792 · C++ · BSD-3-Clause · updated Jul 2026

Universal Robots ROS2 driver supporting CB3 and e-Series

The official Universal Robots ROS2 driver, maintained by UR themselves, for the full range of their cobot lineup from CB3 to the current PolyScope X generation. It sits on top of the Universal_Robots_Client_Library and wires into ros2_control, giving you hardware interface, MoveIt2, and dashboard access out of the box. This is the driver you use when you have a real UR arm and want to control it with ROS2.

Active maintenance across five ROS2 distros simultaneously (Humble through Rolling), with per-distro branches and the ROS buildfarm badges to prove they're actually green. The calibration extraction step is a real differentiator — it pulls the actual DH parameters from the robot rather than relying on nominal values, which matters when your TCP accuracy needs to be better than a few millimeters. Speed scaling is handled properly: the driver respects the teach pendant's speed slider and safety stop states rather than blindly sending commands the robot will silently reject. Integration test suite runs against a Dockerized URSim, so CI exercises actual robot protocol behavior, not mock stubs.

Trajectory control is position-only right now — velocity control is listed as a near-future item but has been listed that way for a while. The externalControl URCap installation requirement is a real friction point: you need to physically access the teach pendant to install a URCap and run the external control program before ROS can command anything, which catches first-timers off guard and breaks headless automation scenarios. Linux-only is stated but the implications aren't spelled out — running this in WSL2 or a VM will cause timing problems since the RTDE loop is latency-sensitive. Documentation lives on an external UR-hosted docs site rather than in the repo, so doc versions can drift from the code, and searching GitHub issues for setup help often turns up answers that reference stale doc URLs.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →