# Passthrough trajectory controller no response for short goals or current position goal

**URL:** <https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183>\
**Category:** ROS\
**Created:** [August 12, 2026, 9:35am UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183 "2026-08-12T09:35:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![karthick.chandraseka](https://avatars.discourse-cdn.com/v4/letter/k/f1d935/32.png) [@karthick.chandraseka](https://forum.universal-robots.com/u/karthick.chandraseka)\
**Post date:** [August 12, 2026, 9:35am UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/1 "2026-08-12T09:35:25Z")

</div>

Scenario:

Passthrough trajectory controller says  
“Trajectory should be finished by now. You may want to cancel this goal, if it is not.” If short goals say 600 microns or giving current position as a goal says the above and it gets to a deadlock where client is waiting for controller response and controller is waiting for client to cancel the goal.

Request:

What to do for giving short goals or avoid deadlock when current position is given as a goal ?

Use case:

Passthrough is the only option when used along with force mode. Small motions in microns are needed when doing visual servoing applications

---

<div class="post-metadata">

**Author:** ![feex](https://avatars.discourse-cdn.com/v4/letter/f/7cd45c/32.png) [@feex](https://forum.universal-robots.com/u/feex)\
**Post date:** [August 18, 2026, 8:31am UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/2 "2026-08-18T08:31:01Z")

</div>

I cannot reproduce any deadlock as you are describing. Sending the current joint position as a target

```auto
$ ros2 action send_goal /passthrough_trajectory_controller/follow_joint_trajectory control_msgs/action/FollowJointTrajectory "{
    trajectory: {                                                                                                                                                                                                                           
      joint_names: [shoulder_pan_joint, shoulder_lift_joint, elbow_joint, wrist_1_joint, wrist_2_joint, wrist_3_joint],                                                                                                                     
      points: [                                                                                                                                                                                                                             
        {                                                                                                                                                                                                                                   
          positions: [-1.6007, -1.7271, -2.2030, -0.8080, 1.5951, -0.0310],                                                                                                                                                                 
          velocities: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],                                                                                                                                                                                       
          accelerations: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],                                                                                                                                                                                    
          time_from_start: {sec: 2, nanosec: 0}                                                                                                                                                                                             
        }                                                                                                                                                                                                                                   
      ]                                                                                                                                                                                                                                     
    },                                                                                                                                                                                                                                      
    goal_time_tolerance: {sec: 1, nanosec: 0},                                                                                                                                                                                              
    goal_tolerance: [                                                                                                                                                                                                                       
      {name: shoulder_pan_joint, position: 0.01, velocity: 0.0, acceleration: 0.0},                                                                                                                                                         
      {name: shoulder_lift_joint, position: 0.01, velocity: 0.0, acceleration: 0.0},                                                                                                                                                        
      {name: elbow_joint, position: 0.01, velocity: 0.0, acceleration: 0.0},                                                                                                                                                                
      {name: wrist_1_joint, position: 0.01, velocity: 0.0, acceleration: 0.0},                                                                                                                                                              
      {name: wrist_2_joint, position: 0.01, velocity: 0.0, acceleration: 0.0},                                                                                                                                                              
      {name: wrist_3_joint, position: 0.01, velocity: 0.0, acceleration: 0.0}                                                                                                                                                               
    ]                                                                                                                                                                                                                                       
  }"

```

yields to the following driver output for me:

```auto
[ros2_control_node-1] [INFO 2026-08-18 08:21:51.651] [passthrough_trajectory_controller]: Received new trajectory.                                                                                                                          
[ros2_control_node-1] [INFO 2026-08-18 08:21:51.652] [passthrough_trajectory_controller]: Accepted new trajectory with 1 points.                                                                                                            
[ros2_control_node-1] [INFO 2026-08-18 08:21:51.652] [passthrough_trajectory_controller]: Using goal tolerances                                                                                                                             
[ros2_control_node-1] shoulder_pan_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                    
[ros2_control_node-1] shoulder_lift_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                   
[ros2_control_node-1] elbow_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                           
[ros2_control_node-1] wrist_1_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                         
[ros2_control_node-1] wrist_2_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                         
[ros2_control_node-1] wrist_3_joint -- position: 0.01, velocity: 0, acceleration: 0                                                                                                                                                         
[ros2_control_node-1]                                                                                                                                                                                                                       
[ros2_control_node-1] [INFO 2026-08-18 08:21:51.652] [passthrough_trajectory_controller]: Goal time tolerance: 1 sec                                                                                                                        
[ros2_control_node-1] [INFO 2026-08-18 08:21:51.662] [controller_manager.hardware_component.system.ur5e]: Got a new trajectory with 1 points.
[ros2_control_node-1] [INFO 2026-08-18 08:21:53.688] [controller_manager.hardware_component.system.ur5e]: Trajectory done callback called with result: 0
[ros2_control_node-1] [INFO 2026-08-18 08:21:53.689] [passthrough_trajectory_controller]: Trajectory executed successfully in 2.024882 (scaled) seconds! The real time needed for execution could be longer.

```

The action client reports the action as being executed successfully, as well.

```auto
Goal accepted with ID: 682b14a50d3449cab4d4654df804c68c    

Result:                                                    
    error_code: 0                                          
error_string: Trajectory executed successfully in 2.024882 (scaled) seconds! The real time needed for execution could be longer.

Goal finished with status: SUCCEEDED

```

When using a very tight goal tolerance that is below the encoder’s noise level, the trajectory fails.

It can happen that the ROS control loop runs a bit faster than the robot’s one in which case you see the output you mentioned in the OP. But also in that case the trajectory finishes correctly:

```auto
[ros2_control_node-1] [INFO 2026-08-18 08:32:46.497] [passthrough_trajectory_controller]: Received new trajectory.
[ros2_control_node-1] [INFO 2026-08-18 08:32:46.498] [passthrough_trajectory_controller]: Accepted new trajectory with 1 points.
[ros2_control_node-1] [INFO 2026-08-18 08:32:46.498] [passthrough_trajectory_controller]: Goal time tolerance: 0 sec
[ros2_control_node-1] [INFO 2026-08-18 08:32:46.499] [controller_manager.hardware_component.system.ur5e]: Got a new trajectory with 1 points.
[ros2_control_node-1] [WARN 2026-08-18 08:32:48.503] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ros2_control_node-1] [INFO 2026-08-18 08:32:48.525] [controller_manager.hardware_component.system.ur5e]: Trajectory done callback called with result: 0
[ros2_control_node-1] [INFO 2026-08-18 08:32:48.527] [passthrough_trajectory_controller]: Trajectory executed successfully in 2.021978 (scaled) seconds! The real time needed for execution could be longer.

```

---

<div class="post-metadata">

**Author:** ![karthick.chandraseka](https://avatars.discourse-cdn.com/v4/letter/k/f1d935/32.png) [@karthick.chandraseka](https://forum.universal-robots.com/u/karthick.chandraseka)\
**Post date:** [August 18, 2026, 11:37am UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/3 "2026-08-18T11:37:54Z")

</div>

Could you send the commit id which can work well with ROS humble ? We are using the commit id [GitHub - UniversalRobots/Universal\_Robots\_ROS2\_Driver at 050377245442ecedafa86abe5a10579e6ecc3ffc · GitHub](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/050377245442ecedafa86abe5a10579e6ecc3ffc) Does this issue got solved after this commit id

---

<div class="post-metadata">

**Author:** ![feex](https://avatars.discourse-cdn.com/v4/letter/f/7cd45c/32.png) [@feex](https://forum.universal-robots.com/u/feex)\
**Post date:** [August 18, 2026, 3:01pm UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/4 "2026-08-18T15:01:59Z")

</div>

I was originally doing my test on Rolling master, as a) you didn’t specify any version and b) I don’t remember touching that in quite a while.

I ran the same test on Humble using a combination based in your driver’s version

- driver repo: [050377245442ecedafa86abe5a10579e6ecc3ffc](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/050377245442ecedafa86abe5a10579e6ecc3ffc)
- ur\_client\_library: 5a69bf014bca00da2e38cc3be44418b2a4b012a1
- ur\_description: 580485ade4f113d528f12d66ed39c0d370854af8

I also tested the current Humble development head.

All versions I tested worked fine. Since you seem to be using a rather old version, I would recommend updating everything to the latest Humble-Release. If the issue still persists, please give us some more information on how to reproduce this. Exact commands and full output are most helpful there.

---

<div class="post-metadata">

**Author:** ![karthick.chandraseka](https://avatars.discourse-cdn.com/v4/letter/k/f1d935/32.png) [@karthick.chandraseka](https://forum.universal-robots.com/u/karthick.chandraseka)\
**Post date:** [August 20, 2026, 8:09am UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/5 "2026-08-20T08:09:08Z")

</div>

I used the same commit of all mentioned in this

- driver repo: [050377245442ecedafa86abe5a10579e6ecc3ffc](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/050377245442ecedafa86abe5a10579e6ecc3ffc)
- ur\_client\_library: 5a69bf014bca00da2e38cc3be44418b2a4b012a1
- ur\_description: 580485ade4f113d528f12d66ed39c0d370854af8

When the robot is in below mentioned position, I used RVIZ motion planning tab with checkbox of use cartesian path, the same issue hits. But I have printed out the goal request from the passthrough trajectory controller side to reproduce the issue

 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/2/208eb32cd06c1099904d44d9824ae1ec82433a69.png)

On top of that I added following print statement

```cpp
RCLCPP_INFO_STREAM(get_node()->get_logger(), "Printout the goal request "

                                                   << control_msgs::action::to_yaml(*goal_handle->get_goal())<< std::endl);

```

on the file passthrough\_trajectory\_controller.cpp below this line ([Universal\_Robots\_ROS2\_Driver/ur\_controllers/src/passthrough\_trajectory\_controller.cpp at 050377245442ecedafa86abe5a10579e6ecc3ffc · UniversalRobots/Universal\_Robots\_ROS2\_Driver · GitHub](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/blob/050377245442ecedafa86abe5a10579e6ecc3ffc/ur_controllers/src/passthrough_trajectory_controller.cpp#L530))

Following is the output of ros driver after doing these changes. Still, I am facing the same issue

```bash
[ur_ros2_control_node-1] [INFO] [1787211946.752866132] [passthrough_trajectory_controller]: Printout the goal request trajectory:
[ur_ros2_control_node-1] header:
[ur_ros2_control_node-1] stamp:
[ur_ros2_control_node-1] sec: 0
[ur_ros2_control_node-1] nanosec: 0
[ur_ros2_control_node-1] frame_id: "world"
[ur_ros2_control_node-1] joint_names:
[ur_ros2_control_node-1] - "elbow_joint"
[ur_ros2_control_node-1] - "shoulder_lift_joint"
[ur_ros2_control_node-1] - "shoulder_pan_joint"
[ur_ros2_control_node-1] - "wrist_1_joint"
[ur_ros2_control_node-1] - "wrist_2_joint"
[ur_ros2_control_node-1] - "wrist_3_joint"
[ur_ros2_control_node-1] points:
[ur_ros2_control_node-1] -
[ur_ros2_control_node-1] positions:
[ur_ros2_control_node-1] - -1.95095
[ur_ros2_control_node-1] - -1.51139
[ur_ros2_control_node-1] - -1.60931
[ur_ros2_control_node-1] - -1.26492
[ur_ros2_control_node-1] - 1.59463
[ur_ros2_control_node-1] - -0.0391460
[ur_ros2_control_node-1] velocities:
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] accelerations:
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] - 0.00000
[ur_ros2_control_node-1] effort: []
[ur_ros2_control_node-1] time_from_start:
[ur_ros2_control_node-1] sec: 0
[ur_ros2_control_node-1] nanosec: 0
[ur_ros2_control_node-1] multi_dof_trajectory:
[ur_ros2_control_node-1] header:
[ur_ros2_control_node-1] stamp:
[ur_ros2_control_node-1] sec: 0
[ur_ros2_control_node-1] nanosec: 0
[ur_ros2_control_node-1] frame_id: ""
[ur_ros2_control_node-1] joint_names: []
[ur_ros2_control_node-1] points: []
[ur_ros2_control_node-1] path_tolerance: []
[ur_ros2_control_node-1] component_path_tolerance: []
[ur_ros2_control_node-1] goal_tolerance: []
[ur_ros2_control_node-1] component_goal_tolerance: []
[ur_ros2_control_node-1] goal_time_tolerance:
[ur_ros2_control_node-1] sec: 0
[ur_ros2_control_node-1] nanosec: 0
[ur_ros2_control_node-1] 
[ur_ros2_control_node-1] 
[ur_ros2_control_node-1] [INFO] [1787211946.752938539] [passthrough_trajectory_controller]: Goal time tolerance: 0 sec
[ur_ros2_control_node-1] [INFO] [1787211946.755067962] [URPositionHardwareInterface]: Got a new trajectory with 1 points.
[ur_ros2_control_node-1] [WARN] [1787211946.761485654] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211947.761607025] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211948.763730557] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211949.765706477] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211950.767405613] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211951.769581466] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211952.769661112] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.
[ur_ros2_control_node-1] [WARN] [1787211953.769856912] [passthrough_trajectory_controller]: Trajectory should be finished by now. You may want to cancel this goal, if it is not.

```

---

<div class="post-metadata">

**Author:** ![feex](https://avatars.discourse-cdn.com/v4/letter/f/7cd45c/32.png) [@feex](https://forum.universal-robots.com/u/feex)\
**Post date:** [August 20, 2026, 12:49pm UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/6 "2026-08-20T12:49:41Z")

</div>

I see. The timing seems to be the issue, not the distance. I’ll check and come back to this.

---

<div class="post-metadata">

**Author:** ![feex](https://avatars.discourse-cdn.com/v4/letter/f/7cd45c/32.png) [@feex](https://forum.universal-robots.com/u/feex)\
**Post date:** [August 20, 2026, 1:38pm UTC](https://forum.universal-robots.com/t/passthrough-trajectory-controller-no-response-for-short-goals-or-current-position-goal/43183/7 "2026-08-20T13:38:15Z")

</div>

[Fix/passthrough controller very short trajectories by urfeex · Pull Request #1940 · UniversalRobots/Universal\_Robots\_ROS2\_Driver · GitHub](https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/pull/1940) should fix this.
