UR ROS 2 Humble Driver - Not able to build driver correctly on Ubuntu 22.04


I’m trying to build Universal Robots ROS 2 Driver on Ubuntu 22.04 Humble, so I can control my UR10e with MoveIt2 on the latest distro. I’ve already done this with Ubuntu 20.04 Foxy, where everything works perfectly.

Universal Robots ROS 2 Driver – Getting Started
I’m running all commands as the guide instructs, on step 4. I’ve tried to import two different repos:
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver-not-released.humble.repos
vcs import src --skip-existing --input src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.humble.repos
Both give the same colcon warning when running colcon build :

tht@tht-stationary02:~/workspace/ros_ur_driver$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
[0.140s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
	'joint_state_broadcaster' is in: /home/tht/workspace/ros_ur_driver/install/joint_state_broadcaster, /opt/ros/humble
	'gripper_controllers' is in: /home/tht/workspace/ros_ur_driver/install/gripper_controllers, /opt/ros/humble
	'joint_trajectory_controller' is in: /home/tht/workspace/ros_ur_driver/install/joint_trajectory_controller, /opt/ros/humble
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding gripper_controllers joint_state_broadcaster joint_trajectory_controller

This may be promoted to an error in a future release of colcon-override-check.
Starting >>> forward_command_controller
Starting >>> joint_trajectory_controller
Starting >>> force_torque_sensor_broadcaster
Starting >>> joint_state_broadcaster
Starting >>> ur_dashboard_msgs
Starting >>> ros2_controllers_test_nodes
Starting >>> diff_drive_controller
Starting >>> imu_sensor_broadcaster
Starting >>> ur_moveit_config
Starting >>> gripper_controllers
Finished <<< ur_moveit_config [0.57s]                                            
Finished <<< ros2_controllers_test_nodes [0.60s]
Finished <<< joint_state_broadcaster [1.11s]                                    
Finished <<< gripper_controllers [1.22s]                                        
Finished <<< ur_dashboard_msgs [1.25s]
Finished <<< forward_command_controller [1.44s]                                   
Starting >>> position_controllers
Starting >>> velocity_controllers
Starting >>> effort_controllers
Finished <<< diff_drive_controller [1.45s]
Finished <<< joint_trajectory_controller [1.48s]
Starting >>> ur_controllers
Finished <<< imu_sensor_broadcaster [1.57s]                                          
Finished <<< force_torque_sensor_broadcaster [1.59s]                                   
Finished <<< position_controllers [1.26s]                                                                      
Finished <<< effort_controllers [1.26s]                                                                          
Finished <<< velocity_controllers [1.27s]
Starting >>> ros2_controllers
Finished <<< ros2_controllers [0.17s]                                                            
Finished <<< ur_controllers [1.50s]                       
Starting >>> ur_robot_driver
Starting >>> ur_bringup
Finished <<< ur_bringup [0.19s]                                                             
Finished <<< ur_robot_driver [2.44s]                       
Starting >>> ur_calibration
Finished <<< ur_calibration [2.08s]                      
Starting >>> ur
Finished <<< ur [0.24s]                    

Summary: 19 packages finished [7.85s]

Example Commands for Testing the Driver
When I’m trying to test the driver with fake hardware
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur5e robot_ip:=yyy.yyy.yyy.yyy use_fake_hardware:=true launch_rviz:=true
I’m getting this error output:
[ros2_control_node-1] [ERROR] [1658305698.325349307] [scaled_joint_trajectory_controller]: Speed scaling interface not found in hardware interface.

Thanks for considering this, any input would be appreciated.

Sorry for the inconvenience. Due to some upstream changes, this was indeed a problem. However, this should be fixed by now.

The warnings are there, because you build ros2_controllers in your workspace but also have them installed binary. This has recently been necessary, as upstream API has changed, but this will probably get removed again pretty soon.

1 Like