scaled_joint_trajectory_controller not working as expected with simulation time enabled
Affected ROS2 Driver version(s)
2.5.2-9-g408318b
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Ubuntu Linux with standard kernel, Ubuntu Linux with realtime patch
How is the UR ROS2 Driver installed.
Build both the ROS driver and UR Client Library from source
Which robot platform is the driver connected to.
URSim in docker
Robot SW / URSim version(s)
5.14.3
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
My packages last update was in August 2024, and after updating UR packages to the current version in March 2025, the scaled_joint_trajectory_controller no longer functions correctly when use_sim_time is enabled.
Issue Details
Upon sending a trajectory to the scaled_joint_trajectory_controller, the robot disregards the specified path and moves directly to the final goal. Investigation revealed that this behavior is associated with the use_sim_time parameter. In the ur_moveit.launch.py file, the configuration disables the scaled_joint_trajectory_controller and enables the joint_trajectory_controller when change_controllers is set to "true". I would like to have a fix to always use the scaled_joint_trajectory_controller, even using sim time.
Steps to Reproduce
- Set
use_sim_timetotrue. - If using ur_moveit.launch.py edit line 181 to not changing controller to joint_trajectory_controller.
- Send a trajectory to the scaled_joint_trajectory_controller.
Expected Behavior
The robot should accurately follow the specified trajectory, even with use_sim_time enabled.
Actual Behavior
With use_sim_time enabled, the robot ignores the specified trajectory and moves directly to the final goal.
Workaround Suggestion
Currently, I have not identified an effective workaround for this issue.
Relevant log output
Accept Public visibility
- [x] I agree to make this context public