State tolerance errors when simulating UR10 robot in Isaac sim

Hi there! We using nvidia Isaac sim to simulate a UR10 in a custom work cell that we’ve built.

We’re using ros2 control for sending joint commands to the robot, but no planning layer on top (no moveIT). Whenever we publish joint trajectories, we run into state tolerance errors, where it seems like the sim can’t keep up. Here is the error log from ros2 control -

[ros2_control_node-1] [ERROR] [1728478385.262414753] [tolerances]: State tolerances failed for joint 2:
[ros2_control_node-1] [ERROR] [1728478385.262452474] [tolerances]: Position Error: -0.200157, Position Tolerance: 0.200000
[ros2_control_node-1] [WARN] [1728478385.262465814] [joint_trajectory_controller]: Aborted due to state tolerance violation

While the error here is specifically for Joint 2, I have seen this happen to different joints for different moves.

This is on an AWS instance, so we tried upgrading the instance but that only fixes the problem temporarily and the errors return. We’re using a g5.8xlarge which should suffice for high workloads per the recommended configuration.

Any ideas on how to fix this?

please share the error logs here.

I updated the question with error logs.

Hi @sidd,

Is the ros2_control node subscribing to simulation time? If not, it is likely that ros2_control is not synchronized with Isaac Sim simulation time.

Could you try publishing simulation clock time and setting the use_sim_time param for the ros2_control node to true?

Apologies for the delay in getting back here. By the ros2_control node, do you mean the node that’s calling the Follow Joint Trajectory action? I am already setting the use_sim_time to true for that node.

Edit: I see from the log I published earlier where it says ros2_control_node. That’s the joint_trajectory_controller which is using the ros2 control framework. I set the use_sim_time param to true on that node as well, but that didn’t help either.