No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.0.3
License Apache 2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

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

Package Description

The new driver for Universal Robots UR3, UR5 and UR10 robots with CB3 controllers and the e-series.

Additional Links

Maintainers

  • Felix Exner

Authors

  • Thomas Timm Andersen
  • Simon Rasmussen
  • Felix Exner
  • Lea Steffen
  • Tristan Schnell

ur_robot_driver

This package contains the actual driver for UR robots. It is part of the universal_robots_driver repository and requires other packages from that repository. Also, see the main repository's README for information on how to install and startup this driver.

ROS-API

The ROS API is documented in a standalone document. It is auto-generated using catkin_doc.

Technical details

The following image shows a very coarse overview of the driver's architecture.

Architecture overview

Upon connection to the primary interface the robot sends version and calibration information which is consumed by the calibration_check. If the calibration reported by the robot doesn't match the one configured (See calibration guide) an error will be printed to Roslog.

Real-time data from the robot is read through the RTDE interface. This is done automatically as soon as a connection to the robot could be established. Thus joint states and IO data will be immediately available.

To actually control the robot, a program node from the External Control URCap must be running on the robot interpreting commands sent from an external source. When this program is not running, no controllers moving the robot around will be available, which is handled by the controller_stopper. Please see the initial setup guide on how to install and start this on the robot.

The URScript that will be running on the robot is requested by the External Control program node from the remote ROS PC. The robot ur_control.launch file has a parameter called urscript_file to select a different program than the default one that will be sent as a response to a program request.

Custom script snippets can be sent to the robot on a topic basis. By default, they will interrupt other programs (such as the one controlling the robot). For a certain subset of functions, it is however possible to send them as secondary programs. See UR documentation on details.
Note to e-Series users: The robot won't accept script code from a remote source unless the robot is put into remote_control-mode. However, if put into remote_control-mode, the program containing the External Control program node can't be started from the panel. For this purpose, please use the dashboard services to load, start and stop the main program running on the robot. See the ROS-API documentation for details on the dashboard services.

For using the tool communication interface on e-Series robots, a socat script is prepared to forward the robot's tool communication interface to a local device on the ROS PC. See the tool communication setup guide for details.

This driver is using ROS-Control for any control statements. Therefor, it can be used with all position-based controllers available in ROS-Control. However, we recommend using the controllers from the ur_controllers package. See it's documentation for details. Note: Speed scaling support will only be available using the controllers from ur_controllers

CHANGELOG

0.0.3 (2019-08-09)

  • Added a service to end ROS control from ROS side
  • Publish IO state on ROS topics
  • Added write channel through RTDE with speed slider and IO services
  • Added subscriber to send arbitrary URScript commands to the robot

0.0.2 (2019-07-03)

  • Fixed dependencies and installation
  • Updated README
  • Fixed passing parameters through launch files
  • Added support for correctly switching controllers during runtime and using the standard joint_trajectory_controller
  • Updated externalcontrol URCap to version 1.0.2
    • Fixed Script timeout when running the URCap inside of a looping tree
    • Fixed a couple of typos
  • Increased minimal required UR software version to 3.7/5.1

0.0.1 (2019-06-28)

Initial release

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

  • launch/ur10_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur10_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_description)/launch/ur10_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_description)/config/ur10_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/2xbringup.launch
      • robot_ip [default: 169.254.198.38]
      • robot_ip [default: 169.254.198.35]
  • launch/ur3_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur3_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_description)/launch/ur3_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_description)/config/ur3_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur5_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur5_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_description)/launch/ur5_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_description)/config/ur5_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur5e_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur5e_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_e_description)/launch/ur5e_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_e_description)/config/ur5e_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • use_tool_communication [default: false] — On e-Series robots tool communication can be enabled with this argument
      • tool_voltage [default: 0] — Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true.
      • tool_parity [default: 0] — Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_baud_rate [default: 115200] — Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_stop_bits [default: 1] — Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_rx_idle_chars [default: 1.5] — Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tx_idle_chars [default: 3.5] — Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_device_name [default: /tmp/ttyUR] — Local device name used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tcp_port [default: 54321] — Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur3e_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur3e_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_e_description)/launch/ur3e_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_e_description)/config/ur3e_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • use_tool_communication [default: false] — On e-Series robots tool communication can be enabled with this argument
      • tool_voltage [default: 0] — Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true.
      • tool_parity [default: 0] — Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_baud_rate [default: 115200] — Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_stop_bits [default: 1] — Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_rx_idle_chars [default: 1.5] — Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tx_idle_chars [default: 3.5] — Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_device_name [default: /tmp/ttyUR] — Local device name used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tcp_port [default: 54321] — Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur_control.launch
      • debug [default: false] — If set to true, will start the driver inside gdb
      • use_tool_communication — On e-Series robots tool communication can be enabled with this argument
      • controller_config_file — Config file used for defining the ROS-Control controllers.
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • kinematics_config — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description. Pass the same config file that is passed to the robot_description.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller vel_based_pos_traj_controller force_torque_sensor_controller]
      • stopped_controllers [default: joint_group_vel_controller]
      • urscript_file [default: $(find ur_robot_driver)/resources/ros_control.urscript]
      • rtde_output_recipe_file [default: $(find ur_robot_driver)/resources/rtde_output_recipe.txt] — Recipe file used for the RTDE-outputs. Only change this if you know what you're doing.
      • rtde_input_recipe_file [default: $(find ur_robot_driver)/resources/rtde_input_recipe.txt] — Recipe file used for the RTDE-inputs. Only change this if you know what you're doing.
      • tool_voltage [default: 0] — Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true.
      • tool_parity [default: 0] — Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_baud_rate [default: 115200] — Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_stop_bits [default: 1] — Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_rx_idle_chars [default: 1.5] — Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tx_idle_chars [default: 3.5] — Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_device_name [default: /tmp/ttyUR] — Local device name used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tcp_port [default: 54321] — Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true.
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur10e_bringup.launch
      • debug [default: false] — Debug flag that will get passed on to ur_common.launch
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • controller_config_file [default: $(find ur_robot_driver)/config/ur10e_controllers.yaml] — Config file used for defining the ROS-Control controllers.
      • robot_description_file [default: $(find ur_e_description)/launch/ur10e_upload.launch] — Robot description launch file.
      • kinematics_config [default: $(find ur_e_description)/config/ur10e_default.yaml] — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • use_tool_communication [default: false] — On e-Series robots tool communication can be enabled with this argument
      • tool_voltage [default: 0] — Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true.
      • tool_parity [default: 0] — Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_baud_rate [default: 115200] — Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_stop_bits [default: 1] — Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_rx_idle_chars [default: 1.5] — Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tx_idle_chars [default: 3.5] — Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_device_name [default: /tmp/ttyUR] — Local device name used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tcp_port [default: 54321] — Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.
  • launch/ur_common.launch
      • debug [default: false] — Debug flag that will get passed on to ur_control.launch
      • use_tool_communication — On e-Series robots tool communication can be enabled with this argument
      • controller_config_file — Config file used for defining the ROS-Control controllers.
      • robot_ip — IP address by which the robot can be reached.
      • reverse_port [default: 50001] — Port that will be opened by the driver to allow direct communication between the driver and the robot controller.
      • script_sender_port [default: 50002] — The driver will offer an interface to receive the program's URScript on this port. If the robot cannot connect to this port, `External Control` will stop immediately.
      • kinematics_config — Kinematics config file used for calibration correction. This will be used to verify the robot's calibration is matching the robot_description.
      • tf_prefix [default: ] — tf_prefix used for the robot.
      • controllers [default: joint_state_controller scaled_pos_traj_controller speed_scaling_state_controller force_torque_sensor_controller] — Controllers that are activated by default.
      • stopped_controllers [default: pos_traj_controller joint_group_vel_controller] — Controllers that are initally loaded, but not started.
      • tool_voltage [default: 0] — Tool voltage set at the beginning of the UR program. Only used, when `use_tool_communication` is set to true.
      • tool_parity [default: 0] — Parity configuration used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_baud_rate [default: 115200] — Baud rate used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_stop_bits [default: 1] — Number of stop bits used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_rx_idle_chars [default: 1.5] — Number of idle chars in RX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tx_idle_chars [default: 3.5] — Number of idle chars in TX channel used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_device_name [default: /tmp/ttyUR] — Local device name used for tool communication. Only used, when `use_tool_communication` is set to true.
      • tool_tcp_port [default: 54321] — Port on which the robot controller publishes the tool comm interface. Only used, when `use_tool_communication` is set to true.
      • robot_description_file — Robot description launch file.
      • limited [default: false] — Use the description in limited mode (Every axis rotates from -PI to PI)
      • headless_mode [default: false] — Automatically send URScript to robot to execute. On e-Series this does require the robot to be in 'remote-control' mode. With this, the URCap is not needed on the robot.

Messages

No message files found.

Services

No service files found

Recent questions tagged ur_robot_driver at answers.ros.org

No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.