Holding position due to state tolerance violation

Affected ROS2 Driver version(s)

Latest

Used ROS distribution.

Rolling

Which combination of platform is the ROS driver running on.

Ubuntu Linux with realtime patch

How is the UR ROS2 Driver installed.

From binary packets

Which robot platform is the driver connected to.

Real robot

Robot SW / URSim version(s)

UR10

How is the ROS driver used.

Through the robot teach pendant using External Control URCap

Issue details

Summary

When sending joint positions to the UR10 robot does not move. Two weeks ago it did move.

Issue details

Steps to Reproduce

  1. I start the UR10 robot and initialize it → add the structure for remote control in the robot program
  2. Start the ur_driver
    $ ros2 launch ur_robot_driver ur10.launch.py robot_ip:=192.168.1.200 launch_rviz:=true
  3. Run python program that sends six joint angles to the robot (py code below)
import rclpy
from rclpy.node import Node
from trajectory_msgs.msg import JointTrajectory, JointTrajectoryPoint

class UR10Mover(Node):

def __init__(self):
    super().__init__('ur10_mover')
    self.publisher_ = self.create_publisher(JointTrajectory, '/scaled_joint_trajectory_controller/joint_trajectory', 10)

def move_ur10(self):
    msg = JointTrajectory()
    msg.joint_names = ["shoulder_pan_joint", "shoulder_lift_joint", "elbow_joint", 
                       "wrist_1_joint", "wrist_2_joint", "wrist_3_joint"]   

    
    point = JointTrajectoryPoint()
    # positions: [theta1, theta2, theta3, theta4, theta5, theta6]
    point.positions = [0, -0.6109, -24435, -1.6581, 1.5708, 0]
    """
    point.positions = [-0.54, -1.4491, -2.5592, -0.6562, -0.6562, -1.6914]
    point.positions = [0.6435, -1.2161, -0.8685, 0.7594, 1.3617, -1.6916]   
    """

    point.time_from_start.sec = 16
    msg.points.append(point)

    
    self.publisher_.publish(msg)
    self.get_logger().info('Publishing Joint Trajectory')

def main(args=None):
rclpy.init(args=args)

ur10_mover = UR10Mover()

input("press enter to move")    

ur10_mover.move_ur10()

input("press enter to destroy node")


ur10_mover.destroy_node()
rclpy.shutdown()

if name == 'main':
main()

Expected Behavior

Normally the robot just moves to that joint position, but now it has an error.

Actual Behavior

Below you can find the full log. The end is where the error is.
[ur_ros2_control_node-1] [ERROR] [1698400606.938671893] [scaled_joint_trajectory_controller]: Holding position due to state tolerance violation

Extra info

  • I did extract calibration information but where does that yaml-file gets used?
  • Yes I can ping to the robot
  • Yes the robot is in “play” mode
  • The Teachpendand does not go in error

Thank you for helping

Relevant log output

labo@labo:~$ ros2 launch ur_robot_driver ur10.launch.py robot_ip:=192.168.1.200 launch_rviz:=true
[INFO] [launch]: All log files can be found below /home/labo/.ros/log/2023-10-27-11-44-21-408438-labo-30338
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [dashboard_client-2]: process started with pid [30345]
[INFO] [controller_stopper_node-3]: process started with pid [30347]
[INFO] [ur_ros2_control_node-1]: process started with pid [30343]
[INFO] [urscript_interface-4]: process started with pid [30349]
[INFO] [robot_state_publisher-5]: process started with pid [30351]
[INFO] [rviz2-6]: process started with pid [30353]
[INFO] [spawner-7]: process started with pid [30355]
[INFO] [spawner-8]: process started with pid [30413]
[INFO] [spawner-9]: process started with pid [30415]
[INFO] [spawner-10]: process started with pid [30417]
[INFO] [spawner-11]: process started with pid [30419]
[INFO] [spawner-12]: process started with pid [30422]
[robot_state_publisher-5] [INFO] [1698399862.049775463] [robot_state_publisher]: Robot initialized
[dashboard_client-2] [INFO] [1698399862.044217111] [UR_Client_Library:]: Connected: Universal Robots Dashboard Server
[dashboard_client-2] 
[controller_stopper_node-3] [INFO] [1698399862.104686963] [Controller stopper]: Waiting for switch controller service to come up on controller_manager/switch_controller
[ur_ros2_control_node-1] [WARN] [1698399862.802653666] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
[ur_ros2_control_node-1] text not specified in the tf_prefix tag
[ur_ros2_control_node-1] [INFO] [1698399862.803075264] [resource_manager]: Loading hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1698399862.825405098] [resource_manager]: Initialize hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1698399862.825485094] [resource_manager]: Successful initialization of hardware 'ur10'
[ur_ros2_control_node-1] [INFO] [1698399862.825663410] [resource_manager]: 'configure' hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1698399862.825671708] [resource_manager]: Successful 'configure' of hardware 'ur10'
[ur_ros2_control_node-1] [INFO] [1698399862.825693062] [resource_manager]: 'activate' hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1698399862.825700584] [URPositionHardwareInterface]: Starting ...please wait...
[ur_ros2_control_node-1] [INFO] [1698399862.825713449] [URPositionHardwareInterface]: Initializing driver...
[ur_ros2_control_node-1] [WARN] [1698399862.833965485] [UR_Client_Library:]: Your system/user seems not to be setup for FIFO scheduling. We recommend using a lowlatency kernel with FIFO scheduling. See https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md for details.
[ur_ros2_control_node-1] [INFO] [1698399862.996507711] [UR_Client_Library:]: Negotiated RTDE protocol version to 2.
[ur_ros2_control_node-1] [INFO] [1698399862.996730063] [UR_Client_Library:]: Setting up RTDE communication with frequency 125.000000
[rviz2-6] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[ur_ros2_control_node-1] [WARN] [1698399864.024330501] [UR_Client_Library:]: DEPRECATION NOTICE: Setting the keepalive count has been deprecated. Instead use the RobotReceiveTimeout, to set the timeout directly in the write commands. Please change your code to set the read timeout in the write commands directly. This keepalive count will overwrite the timeout passed to the write functions.
[ur_ros2_control_node-1] [WARN] [1698399864.024354241] [UR_Client_Library:]: DEPRECATION NOTICE: Setting the keepalive count has been deprecated. Instead you should set the timeout directly in the write commands. Please change your code to set the read timeout in the write commands directly. This keepalive count will overwrite the timeout passed to the write functions.
[ur_ros2_control_node-1] [INFO] [1698399864.024359798] [URPositionHardwareInterface]: Calibration checksum: 'calib_17227329492635474227'.
[rviz2-6] [INFO] [1698399864.721714742] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-6] [INFO] [1698399864.721873059] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-6] [INFO] [1698399864.749710260] [rviz2]: Stereo is NOT SUPPORTED
[spawner-11] [INFO] [1698399864.846534572] [spawner_force_torque_sensor_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-12] [INFO] [1698399864.866515415] [spawner_forward_position_controller]: Waiting for '/controller_manager' services to be available
[spawner-7] [INFO] [1698399864.872049765] [spawner_scaled_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[spawner-8] [INFO] [1698399864.879248535] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-9] [INFO] [1698399864.885977678] [spawner_io_and_status_controller]: Waiting for '/controller_manager' services to be available
[spawner-10] [INFO] [1698399864.889699235] [spawner_speed_scaling_state_broadcaster]: Waiting for '/controller_manager' services to be available
[ur_ros2_control_node-1] [ERROR] [1698399865.071877557] [URPositionHardwareInterface]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. Please be aware that this can lead to critical inaccuracies of tcp positions. Use the ur_calibration tool to extract the correct calibration from the robot and pass that into the description. See [https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/blob/main/ur_calibration/README.md] for details.
[ur_ros2_control_node-1] [INFO] [1698399865.072013965] [URPositionHardwareInterface]: System successfully started!
[ur_ros2_control_node-1] [INFO] [1698399865.072037030] [resource_manager]: Successful 'activate' of hardware 'ur10'
[controller_stopper_node-3] [INFO] [1698399865.445746123] [Controller stopper]: Service available
[controller_stopper_node-3] [INFO] [1698399865.445773363] [Controller stopper]: Waiting for list controllers service to come up on controller_manager/list_controllers
[controller_stopper_node-3] [INFO] [1698399865.445786080] [Controller stopper]: Service available
[ur_ros2_control_node-1] [WARN] [1698399865.450524714] [controller_manager]: Could not enable FIFO RT scheduling policy
[ur_ros2_control_node-1] [WARN] [1698399865.450657969] [UR_Client_Library:]: Your system/user seems not to be setup for FIFO scheduling. We recommend using a lowlatency kernel with FIFO scheduling. See https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md for details.
[ur_ros2_control_node-1] [INFO] [1698399865.701732494] [controller_manager]: Loading controller 'speed_scaling_state_broadcaster'
[ur_ros2_control_node-1] [INFO] [1698399865.832099938] [speed_scaling_state_broadcaster]: Loading UR SpeedScalingStateBroadcaster with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399865.836348861] [controller_manager]: Loading controller 'joint_state_broadcaster'
[spawner-10] [INFO] [1698399865.837863176] [spawner_speed_scaling_state_broadcaster]: Loaded speed_scaling_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399865.868833620] [controller_manager]: Loading controller 'io_and_status_controller'
[spawner-8] [INFO] [1698399865.868862483] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399865.892409700] [controller_manager]: Loading controller 'forward_position_controller'
[spawner-9] [INFO] [1698399865.893760268] [spawner_io_and_status_controller]: Loaded io_and_status_controller
[ur_ros2_control_node-1] [INFO] [1698399865.932862142] [controller_manager]: Loading controller 'force_torque_sensor_broadcaster'
[spawner-12] [INFO] [1698399865.934172360] [spawner_forward_position_controller]: Loaded forward_position_controller
[spawner-11] [INFO] [1698399865.973716744] [spawner_force_torque_sensor_broadcaster]: Loaded force_torque_sensor_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399865.974964281] [controller_manager]: Loading controller 'scaled_joint_trajectory_controller'
[ur_ros2_control_node-1] [WARN] [1698399866.002763823] [scaled_joint_trajectory_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
[spawner-7] [INFO] [1698399866.005313105] [spawner_scaled_joint_trajectory_controller]: Loaded scaled_joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1698399866.008473327] [controller_manager]: Configuring controller 'speed_scaling_state_broadcaster'
[ur_ros2_control_node-1] [INFO] [1698399866.008662649] [speed_scaling_state_broadcaster]: Publisher rate set to : 100.0 Hz
[ur_ros2_control_node-1] [INFO] [1698399866.014121574] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ur_ros2_control_node-1] [INFO] [1698399866.014195853] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[ur_ros2_control_node-1] [INFO] [1698399866.083416526] [controller_manager]: Configuring controller 'io_and_status_controller'
[ur_ros2_control_node-1] [INFO] [1698399866.092719404] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[spawner-10] [INFO] [1698399866.093274795] [spawner_speed_scaling_state_broadcaster]: Configured and activated speed_scaling_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399866.094718509] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.096305520] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.096744007] [controller_manager]: Configuring controller 'forward_position_controller'
[ur_ros2_control_node-1] [INFO] [1698399866.098783110] [forward_position_controller]: configure successful
[ur_ros2_control_node-1] [INFO] [1698399866.099815465] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.100119529] [controller_manager]: Configuring controller 'force_torque_sensor_broadcaster'
[ur_ros2_control_node-1] [INFO] [1698399866.117343651] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.117612426] [controller_manager]: Configuring controller 'scaled_joint_trajectory_controller'
[ur_ros2_control_node-1] [INFO] [1698399866.117776359] [scaled_joint_trajectory_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ur_ros2_control_node-1] [INFO] [1698399866.117802337] [scaled_joint_trajectory_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ur_ros2_control_node-1] [INFO] [1698399866.117819918] [scaled_joint_trajectory_controller]: Using 'splines' interpolation method.
[spawner-8] [INFO] [1698399866.118027944] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399866.123989038] [scaled_joint_trajectory_controller]: Action status changes will be monitored at 20.00 Hz.
[ur_ros2_control_node-1] [INFO] [1698399866.153752758] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.155921408] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.155988053] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.156004409] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.156303580] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.209088252] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.209205323] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.212685056] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[spawner-9] [INFO] [1698399866.215054459] [spawner_io_and_status_controller]: Configured and activated io_and_status_controller
[ur_ros2_control_node-1] [INFO] [1698399866.220182771] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.228822392] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[spawner-11] [INFO] [1698399866.231129881] [spawner_force_torque_sensor_broadcaster]: Configured and activated force_torque_sensor_broadcaster
[ur_ros2_control_node-1] [INFO] [1698399866.236426351] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.236509167] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698399866.244798670] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[spawner-7] [INFO] [1698399866.246288417] [spawner_scaled_joint_trajectory_controller]: Configured and activated scaled_joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1698399866.252206457] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[INFO] [spawner-10]: process has finished cleanly [pid 30417]
[INFO] [spawner-8]: process has finished cleanly [pid 30413]
[INFO] [spawner-12]: process has finished cleanly [pid 30422]
[INFO] [spawner-11]: process has finished cleanly [pid 30419]
[INFO] [spawner-9]: process has finished cleanly [pid 30415]
[INFO] [spawner-7]: process has finished cleanly [pid 30355]
[ur_ros2_control_node-1] [INFO] [1698400108.570537299] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1698400108.570601816] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1698400108.958180040] [UR_Client_Library:]: Robot connected to reverse interface. Ready to receive control commands.
[ur_ros2_control_node-1] [INFO] [1698400108.974025114] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1698400108.974112649] [io_and_status_controller]: Configure UR gpio controller with tf_prefix: 
[ur_ros2_control_node-1] [ERROR] [1698400606.938671893] [scaled_joint_trajectory_controller]: Holding position due to state tolerance violation