We are experiencing an issue while arm is following the trajectory generated by move it. Arm stops midway while following the trajectory.
- The error message we are seeing here is this. “[ERROR] [1697239357.391497355, 1088.750056783]: Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 5.795119 seconds). Stopping trajectory.”
- We are using ROS1. For planning we are using move it task constructor.
- We are using semu.robotics.ros_bridge library as to pass the information between ros and isaac sim.
- We tried moving the robot arm using the rviz interface and it works perfectly fine.
Hi @kirtan - The error you’re encountering (“Controller is taking too long to execute trajectory”) usually arises when there’s a discrepancy between the actual and expected execution times of the trajectory generated by MoveIt.
Here are some suggestions that might help you troubleshoot the issue:
Check Trajectory Duration: The expected duration might be unrealistic for your physical system, causing the controller to abort as it goes beyond the expected time. When you generate the trajectory, check its total execution time.
Increase Allowed Execution Duration: Adjust allowable execution padding time for your move_group in
Check Joint Velocity and Acceleration Limits: Ensure that your velocity and acceleration limits defined in your URDF or SRDF file match what your actual robot in Isaac Sim can achieve. It’s possible MoveIt is creating plans that your actual robot can’t physically follow.
Significant Time Delays: If there are significant time delays in your ROS system, communication with the robot controller might happen slower than planned. This could cause the actual execution of the trajectory to exceed the expected time.
Isaac Sim Environment: Ensure Isaac Sim is not slowing down due to high computational load which could cause the robot to operate slower than expected.
Trajectory Execution Tolerances: Try increasing the trajectory execution tolerances for your move_group.
Thank you for suggesting ideas. As you are suggesting we found that it was an issue with the execution time. We found that we simulation dt was higher than the dt for way points of the generated trajectory via moveit. We were able to solve the issue by increasing the frame rate and the reducing the dt of the simulation. Here, is it what we did.
- Increase Window > Physics > Settings > Simulator > Min Simulation Frame Rate from 60 to 120.
- Reduced physics_dt from 1/60 to 1/120.
world = World()
world.set_simulation_dt(physics_dt=1.0 / 120.0)