Skip to content

Conversation

mergify[bot]
Copy link

@mergify mergify bot commented Oct 13, 2025

This is just a proof of concept to make the robot work. This still requires some work.

Requires UniversalRobots/Universal_Robots_ROS2_Description#302 to effectively work.


Update

With 9e98ec2 this should be compatible with

  • robot software versions not supporting torque control
  • descriptions not exposing an effort command interface for the joints

With those, the feature added from this PR will effectively be useless / not available with the correct user feedback where necessary. For example, when trying to activate an effort controller with a robot running 5.22.0:

[ros2_control_node-1] [ERROR 2025-10-08 09:02:09.792] [controller_manager.hardware_component.system.ur5e]: Requested to use effort interface on a robot version that doesn't support it. Torque control is available from robot software 5.23.0 / 10.10.0 on.                                                               
[ros2_control_node-1] [ERROR 2025-10-08 09:02:09.792] [controller_manager]: Component 'ur5e' did not accept command interfaces combination:                                                                                                                                                                                 
[ros2_control_node-1] Start interfaces:                                                                                                                                                                                                                                                                                     
[ros2_control_node-1] [                                                                                                                                                                                                                                                                                                     
[ros2_control_node-1]   shoulder_pan_joint/effort                                                                                                                                                                                                                                                                           
[ros2_control_node-1]   shoulder_lift_joint/effort                                                                                                                                                                                                                                                                          
[ros2_control_node-1]   elbow_joint/effort                                                                                                                                                                                                                                                                                  
[ros2_control_node-1]   wrist_1_joint/effort                                                                                                                                                                                                                                                                                
[ros2_control_node-1]   wrist_2_joint/effort                                                                                                                                                                                                                                                                                
[ros2_control_node-1]   wrist_3_joint/effort                                                                                                                                                                                                                                                                                
[ros2_control_node-1] ]                                                                                                                                                                                                                                                                                                     
[ros2_control_node-1] Stop interfaces:                                                                                                                                                                                                                                                                                      
[ros2_control_node-1] [                                                                                                                                                                                                                                                                                                     
[ros2_control_node-1] ]

ToDo's:

  • Implementation
  • Test on a real robot
  • Test in simulation (torque control doesn't work with URSim)
  • Write tests (torque control doesn't work with URSim -- we cannot test much)
  • Write documentation

This is an automatic backport of pull request #1411 done by [Mergify](https://mergify.com).

* Add effort command interface to hardware interface

* Add documentation for hardware interface including effort control mode

* Add effort controller to controller switch test

* Ensure backwards compatibility

This ensures backwards compatibility in multiple ways:

- When using this with a description not containing the effort
interface, it will simply not be exported. Therefore, when trying to
start an effort controller that will not work, since the interfaces
aren't available.
- When using this with a robot software version not supporting torque
control this will reject activating effort-controllers.

(cherry picked from commit c1cb7f2)

# Conflicts:
#	ur_robot_driver/doc/index.rst
@mergify mergify bot added conflicts humble Relevant for humble and higher ROS versions labels Oct 13, 2025
Copy link
Author

mergify bot commented Oct 13, 2025

Cherry-pick of c1cb7f2 has failed:

On branch mergify/bp/humble/pr-1411
Your branch is up to date with 'origin/humble'.

You are currently cherry-picking commit c1cb7f2.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   ur_robot_driver/config/ur_controllers.yaml
	new file:   ur_robot_driver/doc/hardware_interface.rst
	modified:   ur_robot_driver/include/ur_robot_driver/hardware_interface.hpp
	modified:   ur_robot_driver/launch/ur_control.launch.py
	modified:   ur_robot_driver/src/hardware_interface.cpp
	modified:   ur_robot_driver/test/integration_test_controller_switch.py

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   ur_robot_driver/doc/index.rst

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts humble Relevant for humble and higher ROS versions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant