Migration Notes
Iron to Jazzy
ur_robot_driver
keep_alive_count -> robot_receive_timeout
Doing real-time control with a robot requires the control pc to conform to certain timing
constraints. For this keep_alive_count
was used to estimate the tolerance that was given to the
ROS controller in terms of multiples of 20 ms. Now the timeout is directly configured using the
robot_receive_timeout
parameter of the hardware interface.
ros2_control xacro tag moved to driver package
The description package no longer adds the ros2_control
tag to the robot’s URDF. This is done
in the driver now. Therefore, there is a urdf
folder containing the macro for generating a
ros2_control
tag and a ready-to-use xacro file for a UR robot with a ros2_control
tag.
If you want to create your own controlled robot, you should mimic that structure, as done e.g. in the custom_workcell_tutorial.
robot_description is now distributed by the robot_state_publisher
The robot_description
isn’t propagated to all interested parties as a parameter. Instead, only
the robot_state_publisher
is provided with the parameter, republishing it on the
robot_description
topic.
Therefore, there is a new launchfile ur_rsp.launch.py
which takes care about loading the
description and starting the robot_state_publisher
. If you create a description that needs
other parameters than the packaged one, you can write your own rsp
launch file and pass that as
description_launchfile
argument to ur_control.launch.py
.
Enforce absolute paths in launchfiles
All launchfiles now expect an absolute path for files that should be used to alter the launch
process (e.g. description file, controllers file). Before it was expecting e.g. a
description_package
and a description_file
argument with a relative path to the package.
The default files have not been changed, so unless you specified your custom package / file combinations, you will need to update that to an absolute path.
Absolute paths can still be generated dynamically using a package + relative path structure inside
other launchfiles or by using ros2 pkg prefix
on the command line. For example, you can do
$ ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur20 robot_ip:=192.168.56.101 \
kinematics_params_file:=$(ros2 pkg prefix my_robot_cell_control)/share/my_robot_cell_control/config/my_robot_calibration.yaml
ur_description
ros2_control xacro tag moved to driver package
The description package no longer adds the ros2_control
tag to the robot’s URDF. This is done
in the driver / simulation repos now. The description package still provides macros for the
system-independent parts such as joint configurations and an example using mock_hardware with the
robot.
Enforce absolute paths in launchfiles
The view_ur.launch.py
launchfile now expects an absolute path for the description file and RViz
config file. Before it was expecting a description_package
and a description_file
argument
with a relative path to the package.
This way, users can provide their own description file and / or RViz config without the need to
replicate the complete package structure.
Absolute paths can still be generated dynamically using a package + relative path structure inside
other launchfiles or by using ros2 pkg prefix
on the command line.
ur_simulation_gz
Updated argument name for tf_prefix
To have coherency between the driver and the GZ simulation, the launch argument to use tf_prefix has been changed from prefix
to tf_prefix
. Moreover, differently from the driver, using such argument for this package requires the user to also provide their own controllers file, as explained in tf_prefix for GZ.
Update arguments for MoveIt!
As part of the restructuring of the ur_moveit_config
pkg, all the arguments that were previously passed to ur_moveit.launch.py
(e.g. description_file
, safety_limits
or prefix
) have been removed, in favor of the only moveit_launch_file
argument.
This is due to the underlying assumption for the specified launch file to be part of a custom moveit_config pkg that already contains the correct references to a custom description pkg and related parameters.
In particular, the
option of specifying a tf_prefix
for the ur_moveit_config
has been removed, hence if it is needed in a GZ simulation with MoveIt!, it is expected to be handled by the user through a proper definition for it in a custom moveit_config.
Enforce absolute paths in launchfiles
All launchfiles now expect an absolute path for files that should be used to alter the launch
process (e.g. description file, controllers file). Before it was expecting e.g. a
description_package
and a description_file
argument with a relative path to the package.
The default files have not been changed, so unless you specified your custom package / file combinations, you won’t need to update that to an absolute path.
Absolute paths can still be generated dynamically using a package + relative path structure inside
other launchfiles or by using ros2 pkg prefix
on the command line. For example, you can do
$ ros2 launch ur_gz_simulation ur_sim_control.launch.py ur_type:=ur20 \
controllers_file:=$(ros2 pkg prefix my_robot_cell_control)/share/my_robot_cell_control/config/ros2_controllers.yaml