// the find
UniversalRobots/Universal_Robots_ROS2_Description
ROS2 URDF description for Universal Robots
Official Universal Robots ROS2 URDF/xacro description package covering the full UR lineup — UR3 through UR30, including e-series and newer models. This is the upstream source for anyone integrating UR arms into a ROS2 stack, whether for simulation, MoveIt planning, or hardware bring-up. If you're working with a UR arm and ROS2, you're using this or something derived from it.
Per-model config files (kinematics, joint limits, physical parameters, visual parameters) are split cleanly — swapping calibration data from a real robot is a one-file change. The xacro macro design in ur_macro.xacro means you can compose the arm into a larger scene without fighting the URDF structure. CI covers Humble through rolling with binary build checks on the ROS build farm, so you know exactly which distros are green. Separate collision (STL) and visual (DAE) meshes for every link — collision geometry is appropriately simplified rather than using the visual mesh, which matters for planning performance.
Some newer models (ur16e, ur18, ur30, ur8long) have incomplete mesh sets — only forearm and upperarm in both visual and collision, meaning the other links fall back to shared geometry from a parent model. This isn't documented prominently and will silently give you wrong visuals if you're not paying attention. The restrictive license on newer model meshes (UR15, UR18, UR20, UR30, UR8Long) is a real problem — it's not OSI-compliant, which blocks use in certain commercial or redistributed products. Test coverage is thin: two test files cover URDF validity and launch smoke-testing, but there's nothing verifying that kinematic parameters match the actual robot's DH parameters or that joint limits are sane.