ROS-Industrial Universal Robot meta-package. See the ROS wiki page for compatibility information and other more information.
Installation
There are two different ways to install the packages in this repository. The following sections detail installing the packages using the binary distribution and building them from source in a Catkin workspace.
Using binary release, apt (Ubuntu, Debian)
On supported Linux distributions (Ubuntu up to 16.04 (Xenial), i386,
and amd64
) and ROS versions:
sudo apt-get install ros-$ROS_DISTRO-universal-robot
replace $ROS_DISTRO
with hydro
, indigo
, kinetic
, or melodic
, depending on which ROS version you have installed.
Building from Source
There are releases available for ROS Hydro, Indigo, Kinetic, and Melodic. However, for the latest features and developments you might want to build the packages from source.
NOTE: Using the binary release instructions in the previous section is preferred over building from source where possible. Source installs will not be automatically updated by new package releases and require more work to setup.
The following instructions assume a Catkin workspace has been created at $HOME/catkin_ws
and the source space is at $HOME/catkin_ws/src
. Update paths appropriately if they are different on the build machine.
To build from sources in a Catkin workspace:
cd $HOME/catkin_ws/src
# retrieve the sources (replace '$ROS_DISTRO' with the ROS version you are using)
git clone -b $ROS_DISTRO-devel https://github.com/ros-industrial/universal_robot.git
cd $HOME/catkin_ws
# checking dependencies (again: replace '$ROS_DISTRO' with the ROS version you are using)
rosdep update
rosdep install --rosdistro $ROS_DISTRO --ignore-src --from-paths src
# building
catkin_make
# activate and source this workspace
source $HOME/catkin_ws/devel/setup.bash
Usage
The following sections detail using universal robot with real and simulated hardware.
There are launch files already included in the installed packages to bring up a real robot - either UR5 or UR10. The UR5 commands are given as follows. For the UR10, simply replace the prefix accordingly.
Note: ur_modern_driver Ur_modern_driver should be always be used except, potentially, for CB2 or CB1 controllers. The ur_modern_driver has been made for Ur3/UR5/UR10 robot arms from Universal Robots to improve usabliity and enable ros_control compatibility.
Ur_modern_driver installation and usage instructions can be found at https://github.com/ros-industrial/ur_modern_driver.
With real hardware
Don't forget to source the correct setup shell files and use a new terminal for each command!
To bring up the real robot, run:
roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]
CAUTION:
Remember that you should always have your hands on the big red button in case there is something in the way or anything unexpected happens to your hardware robot.
MoveIt! with real hardware
Additionally, you can use MoveIt! to control the robot.
MoveIt! configuration packages exist for both robots.
For setting up MoveIt! nodes to allow motion planning run:
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch
For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
NOTE:
As MoveIt! seems to have difficulties with finding plans for UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:
roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
Usage with Gazebo Simulation
Don't forget to source the correct setup shell files and use a new terminal for each command!
To bring up the simulated robot in Gazebo, run:
roslaunch ur_gazebo ur5.launch
MoveIt! with a simulated robot
Again, you can use MoveIt! to control the simulated robot.
For setting up the MoveIt! nodes to allow motion planning run:
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
NOTE:
As MoveIt! seems to have difficulties with finding plans for UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:
roslaunch ur_gazebo ur5.launch limited:=true
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
License
BSD license usage; see package.xml.