Skip to content

CI runs fail on quintic spline execution #1650

Description

@urfeex

Spradically, the integration_test_passthrough_controller.py fails with the wrong trajectory result as in https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/runs/21135772423/job/60777332157?pr=1646

The output is:

 9: INFO:root:Sending goal to action server '/passthrough_trajectory_controller/follow_joint_trajectory': control_msgs.action.FollowJointTrajectory_Goal(trajectory=trajectory_msgs.msg.JointTrajectory(header=std_msgs.msg.Header(stamp=builtin_interfaces.msg.Time(sec=0, nanosec=0), frame_id=''), joint_names=['my_ur_elbow_joint', 'my_ur_shoulder_lift_joint', 'my_ur_shoulder_pan_joint', 'my_ur_wrist_1_joint', 'my_ur_wrist_2_joint', 'my_ur_wrist_3_joint'], points=[trajectory_msgs.msg.JointTrajectoryPoint(positions=[0.0, -1.5708, 0.0, -1.5708, 0.0, 0.0], 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], effort=[], time_from_start=builtin_interfaces.msg.Duration(sec=4, nanosec=0)), trajectory_msgs.msg.JointTrajectoryPoint(positions=[-0.7853981633974483, -2.3561981633974485, -0.7853981633974483, -2.3561981633974485, -0.7853981633974483, -0.7853981633974483], 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], effort=[], time_from_start=builtin_interfaces.msg.Duration(sec=8, nanosec=0)), trajectory_msgs.msg.JointTrajectoryPoint(positions=[0.7853981633974483, -0.7854018366025517, 0.7853981633974483, -0.7854018366025517, 0.7853981633974483, 0.7853981633974483], 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], effort=[], time_from_start=builtin_interfaces.msg.Duration(sec=12, nanosec=0))]), multi_dof_trajectory=trajectory_msgs.msg.MultiDOFJointTrajectory(header=std_msgs.msg.Header(stamp=builtin_interfaces.msg.Time(sec=0, nanosec=0), frame_id=''), joint_names=[], points=[]), path_tolerance=[], component_path_tolerance=[], goal_tolerance=[control_msgs.msg.JointTolerance(name='my_ur_elbow_joint', position=0.01, velocity=0.0, acceleration=0.0), control_msgs.msg.JointTolerance(name='my_ur_shoulder_lift_joint', position=0.01, velocity=0.0, acceleration=0.0), control_msgs.msg.JointTolerance(name='my_ur_shoulder_pan_joint', position=0.01, velocity=0.0, acceleration=0.0), control_msgs.msg.JointTolerance(name='my_ur_wrist_1_joint', position=0.01, velocity=0.0, acceleration=0.0), control_msgs.msg.JointTolerance(name='my_ur_wrist_2_joint', position=0.01, velocity=0.0, acceleration=0.0), control_msgs.msg.JointTolerance(name='my_ur_wrist_3_joint', position=0.01, velocity=0.0, acceleration=0.0)], component_goal_tolerance=[], goal_time_tolerance=builtin_interfaces.msg.Duration(sec=1, nanosec=0))
  9: [ur_ros2_control_node-14] [INFO] [1768823976.705237025] [passthrough_trajectory_controller]: Received new trajectory.
  9: [ur_ros2_control_node-14] [INFO] [1768823976.705383839] [passthrough_trajectory_controller]: Accepted new trajectory with 3 points.
  9: [ur_ros2_control_node-14] [INFO] [1768823976.705465081] [passthrough_trajectory_controller]: Using goal tolerances
  9: [ur_ros2_control_node-14] my_ur_shoulder_pan_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: [ur_ros2_control_node-14] my_ur_shoulder_lift_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: [ur_ros2_control_node-14] my_ur_elbow_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: INFO:root:  Received result: ClientGoalHandle <id=[ 49   1 119 236 235 177  72 167 162 133  82 162  11  16  97   3], accepted=True, status=2>
  9: INFO:root:Waiting for action result from '/passthrough_trajectory_controller/follow_joint_trajectory' with timeout 30.000000s
  9: [ur_ros2_control_node-14] my_ur_wrist_1_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: [ur_ros2_control_node-14] my_ur_wrist_2_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: [ur_ros2_control_node-14] my_ur_wrist_3_joint -- position: 0.01, velocity: 0, acceleration: 0
  9: [ur_ros2_control_node-14] 
  9: [ur_ros2_control_node-14] [INFO] [1768823976.705484748] [passthrough_trajectory_controller]: Goal time tolerance: 1 sec
  9: [ur_ros2_control_node-14] [INFO] [1768823976.706632544] [URPositionHardwareInterface]: Got a new trajectory with 3 points.
  Error: ros2_control_node-14] [ERROR] [1768823989.114844818] [passthrough_trajectory_controller]: Trajectory failed, goal tolerances not met.
  9: INFO:root:  Received result: control_msgs.action.FollowJointTrajectory_Result(error_code=-5, error_string='Robot not within tolerances at end of trajectory.')
  9: FAIL
======================================================================
  9: FAIL: test_quintic_trajectory[my_ur_] (ur_robot_driver.PassthroughControllerTest)
  9: ----------------------------------------------------------------------
  9: Traceback (most recent call last):
  9:   File "/root/target_ws/src/Universal_Robots_ROS2_Driver/ur_robot_driver/test/integration_test_passthrough_controller.py", line 200, in test_quintic_trajectory
  9:     self.assertEqual(result.error_code, FollowJointTrajectory.Result.SUCCESSFUL)

I was not able to reproduce this locally, so far, but it keeps happening in CI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-failureThis issue describes a currently occuring CI failure

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions