Universal_Robots_ROS2_Description
This repository contains description files and meshes for Universal Robots manipulators.
Build status
ROS2 Distro | Branch | Build status | Released packages |
---|---|---|---|
Galactic | ros2 |
ur_description | |
Rolling | ros2 |
ur_description |
Structure of the repository
The most relevant files are:
urdf/ur_macro.xacro
- macro file with UR-manipulator description. This file is usually included into external projects to visualize and configure UR manipulators properly. An example how to use this macro is inurdf/ur.urdf.xacro
file.urdf/ur.ros2_control.xacro
- definition of manipulator's joints and interfaces forros2_control
framework.
Testing description of a manipulator
To visualize the robot install this repository to you workspace and execute the following:
ros2 launch ur_description view_ur.launch.py ur_type:=ur5e
To test other descriptions change the ur_type
argument.
Package / Description structure
This package uses one description for all robots. The different robot variants are configured using four configuration files. These files can also be changed for further customizing a description.
Basically, the description can be modified using configuration values stored in four files:
config/urXX/default_kinematics.yaml
- This contains the calibration values as they can be extracted from the robot. Changing these values with the one extracted from a real robot will result in a description matching the real robot exactly (w.r.t thetool0
frame). It is highly recommended to use matching kinematic values in real-world applications.config/urXX/joint_limits.yaml
- If you'd like to further restrict the robot's joint limits, these limits can be modified there.config/urXX/physical_parameters.yaml
- Everything regarding physics simulation parameters (e.g. inertia poses and values) can be tuned hereconfig/urXX/visual_parameters.yaml
- Some users change certain visual aspects, e.g. replacing the cap on the wrist_3_link. This config file specifies which meshes (both, visual and collision) should be used.
The four configuration files have to be passed to ur_macro.urdf
(more specific to the macro
defined in that file) which is done inside the ur.urdf.macro
. Contents of the files are parsed
inside ur_common.xacro
.
Arguments that have to be passed to the main ur.urdf.xacro
file are:
- kinematics_params - Filename to the
default_kinematics.yaml
(or equivalent specific kinematics) file - joint_limit_params - Filename to the
joint_limits.yaml
file - physical_params - Filename to the
physical_parameters.yaml
file - visual_params - Filename to the
visual_params.yaml
file
The launchfile launch/view_ur.launch.py
abstracts these four parameters to one ur_type
argument
which will basically replace the urXX
part of the paths as shown in the picture above.
Creating your own description including this description
In real-world applications you will most probably have a more complex description consisting of more objects than just the robot. It is recommended to create a separate ROS package containing this particular description. Inside this description you could also store your robot-specific kinematics parameters file.
As mentioned above, see the urdf/ur.urdf.xacro
file as an example to integrate a UR robot into
your scene description. Basically, you could create a copy of that file and extend it with the
modifications from your specific scene.