Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
VCS Type git
VCS Version master
Last Updated 2025-05-28
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
ur_calibration 2.4.1
ur_dashboard_msgs 2.4.1
ur_robot_driver 2.4.1

README

Build badge

Universal_Robots_ROS_Driver

Universal Robots have become a dominant supplier of lightweight, robotic manipulators for industry, as well as for scientific research and education. The Robot Operating System (ROS) has developed from a community-centered movement to a mature framework and quasi standard, providing a rich set of powerful tools for robot engineers and researchers, working in many different domains.

Universal Robot e-Series family

With the release of UR’s new e-Series, the demand for a ROS driver that supports the new manipulators and the newest ROS releases and paradigms like ROS-control has increased further. The goal of this driver is to provide a stable and sustainable interface between UR robots and ROS that strongly benefit all parties.

It is the core value of Universal Robots, to empower people to achieve any goal within automation. The success criteria of this driver release is to follow this vision, by providing the ROS community with an easy to use, stable and powerful driver, that empowers the community to reach their goals in research and automation without struggling with unimportant technical challenges, instability or lacking features.

Acknowledgment

This driver is forked from the ur_modern_driver.

Developed in collaboration between:

Universal Robots A/S   and   FZI Research Center for Information Technology.

rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 732287.

How to report an issue

Before creating an issue, please have a look at the Troubleshooting section of this document.

To create an issue on the Issue Board please use the default template.

How to get help

If you need help using this driver, please see the ROS-category in the UR+ Developer Forum.

Features

  • Works for all CB3 (with software version >= 3.14.3) and e-Series (software >= 5.9.4) robots and uses the RTDE interface for communication, whenever possible.
  • Factory calibration of the robot inside ROS to reach Cartesian targets precisely.
  • Realtime-enabled communication structure to robustly cope with the 2ms cycle time of the e-Series. To use this, compile and run it on a kernel with the PREEMPT_RT patch enabled. (See the Real-time setup guide on how to achieve this)
  • Transparent integration of the teach-pendant. Using the URCaps system, a program is running on the robot that handles control commands sent from ROS side. With this, the robot can be paused, stopped and resumed without restarting the ROS driver. This will in the future also enable the usage of ROS-components as part of a more complex UR-program on the teach pendant. ROS-control of the robot can be quit using a service call to continue program execution on the TP.
  • Use the robot’s speed-scaling. When speed scaling is active due to safety constraints or the speed slider is used, this gets correctly handled on the ROS side, as well slowing down trajectory execution accordingly.
    Note: Other ros-controllers based on a position interface can be used with this driver, but may behave wrong if the speed slider isn’t set to 100% or if speed scaling slows down the robot. Also, the pausing function can only be used if the default scaled trajectory controller is used.
  • ROS-Service-based replacement of most every-day TP-interactions offer using UR robots without interacting with the teach pendant at all, if desired. The robot can be started, stopped and even recovery from safety events can be done using ROS service- and action calls. See the driver’s dashboard services and the robot_state_helper node for details.
  • Use on-the-robot interpolation for both Cartesian and joint-based trajectories. This is extremely helpful if your application can not meet the real-time requirements of the driver. Special types of passthrough controllers forward the trajectories directly to the robot, which then takes care of interpolation between the waypoints to achieve best performance.

Please see the external feature list for a listing of all features supported by this driver.

Contents

This repository contains the new ur_robot_driver and a couple of helper packages, such as:

  • ur_calibration: Package around extracting and converting a robot’s factory calibration information to make it usable by the robot_description.
  • ur_dashboard_msgs: Message definitions used for interacting with the dashboard node.
  • ur_robot_driver: The actual driver package.

Requirements

This driver requires a system setup with ROS. It is recommended to use Ubuntu 20.04 with ROS noetic.

To make sure that robot control isn’t affected by system latencies, it is highly recommended to use a real-time kernel with the system. See the real-time setup guide on information how to set this up.

Install from binary packages

File truncated at 100 lines see the full file

Repository Summary

Checkout URI https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git
VCS Type git
VCS Version master
Last Updated 2025-05-28
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
ur_calibration 2.4.1
ur_dashboard_msgs 2.4.1
ur_robot_driver 2.4.1

README

Build badge

Universal_Robots_ROS_Driver

Universal Robots have become a dominant supplier of lightweight, robotic manipulators for industry, as well as for scientific research and education. The Robot Operating System (ROS) has developed from a community-centered movement to a mature framework and quasi standard, providing a rich set of powerful tools for robot engineers and researchers, working in many different domains.

Universal Robot e-Series family

With the release of UR’s new e-Series, the demand for a ROS driver that supports the new manipulators and the newest ROS releases and paradigms like ROS-control has increased further. The goal of this driver is to provide a stable and sustainable interface between UR robots and ROS that strongly benefit all parties.

It is the core value of Universal Robots, to empower people to achieve any goal within automation. The success criteria of this driver release is to follow this vision, by providing the ROS community with an easy to use, stable and powerful driver, that empowers the community to reach their goals in research and automation without struggling with unimportant technical challenges, instability or lacking features.

Acknowledgment

This driver is forked from the ur_modern_driver.

Developed in collaboration between:

Universal Robots A/S   and   FZI Research Center for Information Technology.

rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 732287.

How to report an issue

Before creating an issue, please have a look at the Troubleshooting section of this document.

To create an issue on the Issue Board please use the default template.

How to get help

If you need help using this driver, please see the ROS-category in the UR+ Developer Forum.

Features

  • Works for all CB3 (with software version >= 3.14.3) and e-Series (software >= 5.9.4) robots and uses the RTDE interface for communication, whenever possible.
  • Factory calibration of the robot inside ROS to reach Cartesian targets precisely.
  • Realtime-enabled communication structure to robustly cope with the 2ms cycle time of the e-Series. To use this, compile and run it on a kernel with the PREEMPT_RT patch enabled. (See the Real-time setup guide on how to achieve this)
  • Transparent integration of the teach-pendant. Using the URCaps system, a program is running on the robot that handles control commands sent from ROS side. With this, the robot can be paused, stopped and resumed without restarting the ROS driver. This will in the future also enable the usage of ROS-components as part of a more complex UR-program on the teach pendant. ROS-control of the robot can be quit using a service call to continue program execution on the TP.
  • Use the robot’s speed-scaling. When speed scaling is active due to safety constraints or the speed slider is used, this gets correctly handled on the ROS side, as well slowing down trajectory execution accordingly.
    Note: Other ros-controllers based on a position interface can be used with this driver, but may behave wrong if the speed slider isn’t set to 100% or if speed scaling slows down the robot. Also, the pausing function can only be used if the default scaled trajectory controller is used.
  • ROS-Service-based replacement of most every-day TP-interactions offer using UR robots without interacting with the teach pendant at all, if desired. The robot can be started, stopped and even recovery from safety events can be done using ROS service- and action calls. See the driver’s dashboard services and the robot_state_helper node for details.
  • Use on-the-robot interpolation for both Cartesian and joint-based trajectories. This is extremely helpful if your application can not meet the real-time requirements of the driver. Special types of passthrough controllers forward the trajectories directly to the robot, which then takes care of interpolation between the waypoints to achieve best performance.

Please see the external feature list for a listing of all features supported by this driver.

Contents

This repository contains the new ur_robot_driver and a couple of helper packages, such as:

  • ur_calibration: Package around extracting and converting a robot’s factory calibration information to make it usable by the robot_description.
  • ur_dashboard_msgs: Message definitions used for interacting with the dashboard node.
  • ur_robot_driver: The actual driver package.

Requirements

This driver requires a system setup with ROS. It is recommended to use Ubuntu 20.04 with ROS noetic.

To make sure that robot control isn’t affected by system latencies, it is highly recommended to use a real-time kernel with the system. See the real-time setup guide on information how to set this up.

Install from binary packages

File truncated at 100 lines see the full file