Main Content

Get Started with ROS and ROS 2 Connectivity Interface

Learn the basics of using simulated and physical cobots from Universal Robots in the Robotics System Toolbox™ Support Package for Universal Robots UR Series Manipulators

The Robotics System Toolbox Support Package for Universal Robots UR Series Manipulators enables connectivity and control of physical cobots from Universal Robots or simulated cobots in Gazebo and URSim using Universal_Robots_ROS_Driver and universal_robot ROS packages from Universal Robots.

If the intended end goal of your application involves standalone manipulation of the Universal Robot cobot only, control and connectivity workflow using the teach pendant and Polyscope software is an ideal solution. However, in majority of the robotics use-cases, the environment consists of multiple robots and sensors, and the standalone manipulation is not common. In such scenarios, ROS is widely used due to inherent advantages of hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and so on.

The support package consists of user friendly setup screens to install and configure ROS, Gazebo and URSim simulators. In addition, it also consists of urROSNode object and urROS2Node object, and associated functions to read various robot states, control the robot in task or joint space, follow predefined trajectories in task or joint space and record the robot motion.

For more information on how to use the urROSNode object, refer to the Getting Started with Connecting and Controlling a UR5e Cobot from Universal Robots example.

For more information on how to use the urROS2Node object, refer to the Getting Started with Connecting and Controlling a UR5e Cobot from Universal Robots using ROS 2 example.

The urROSNode object and urROS2Node object have functions to control individual joint angles and Cartesian pose of the robot. More advanced functions demonstrate how to use Robotics System Toolbox features to compute joint angles required to track a smooth trajectory in 3D space and command the robot to track the pre-computed trajectory.

Functions

urROS2NodeConnection to simulated cobot or physical cobot from Universal Robots over ROS 2 (Since R2024a)
urROSNodeConnection to simulated cobot or physical cobot from Universal Robots over ROS (Since R2024a)
universalrobot(Not recommended) Connection to simulated cobot or physical cobot from Universal Robots (Since R2022a)
getJointConfigurationGet current joint configuration from the robot (Since R2022a)
getCartesianPoseGet current end-effector pose from the robot (Since R2022a)
getEndEffectorVelocityGet current end-effector velocities from the robot (Since R2022a)
getJointVelocityGet current joint velocities from the robot (Since R2022a)
getMotionStatusGet current motion status of the robot (Since R2022a)
followTrajectoryCommand robot to move along the desired joint space waypoints (Since R2022a)
followWaypointsCommand robot to move along the desired task space waypoints (Since R2022a)
sendCartesianPoseCommand robot to move to desired Cartesian pose (Since R2022a)
sendCartesianPoseAndWaitCommand robot to move to desired Cartesian pose and wait for the motion to complete (Since R2022a)
sendJointConfigurationCommand robot to move to desired joint configuration (Since R2022a)
sendJointConfigurationAndWaitCommand robot to move to joint configuration and wait for the motion to complete (Since R2022a)
recordRobotStateLog the key robot state parameters during motion of robot (Since R2022a)
executePrimaryURScriptCommandExecute primary URScript command to control cobot over ROS interface (Since R2023a)
executeSecondaryURScriptCommandExecute secondary URScript command over ROS interface (Since R2023a)
handBackControlGet the control back from the External Control program node in the UR program tree (Since R2023a)

Topics

Troubleshooting

Troubleshooting

Troubleshoot issues when simulating Universal Robots cobots using URSim or Gazebo

Featured Examples