Simulation deteriorates over time, robot arms do not go to the same position

asked 2020-08-07 14:49:58 -0600

luna gravatar image

Hi! I posted this question on the ROS answers forum, but because since the answers on there led me to believe that it's more of a Gazebo-related problem (i.e. an issue with error accumulation over time), I thought it might be good to post here as well to gain some more insight into the issue.

I'm currently running a ROS network (ROS Melodic, Gazebo 9, Ubuntu 18.04) using the ARIAC 2019 simulation interface. I have the competition going on a loop, and two UR10 arms that run on independent threads.

In the beginning of the Gazebo simulation, the robot arms pick up the parts on the conveyor belt just fine, but over time, they don't seem to go back to the same position. In fact, three minutes into the simulation, the robot arm hardly ever picks up parts even though it's the same code, just running on a loop. After checking the topic that contains the arms' joint states, I've come to the conclusion that the arm doesn't reach the same position as I'm specifying when publishing to the topic. Has anyone else experienced something similar? (i.e. after running a simulation on Gazebo where the robot actions are all looped/the same, the behavior is not consistent/deviates more and more away from expected/preferred behavior)

I've already started playing around with the physics params in the world's SDF template file as well as following the directions here but it feels like I'm just guessing/checking values (erp and max step size specifically), which doesn't seem the most efficient. I've also looked into calibration/control theory (i.e. PID controllers), but if the problem concerns the environment/Gazebo simulation on a whole, I don't think it's necessarily the most promising venture.

Would appreciate any suggestions!

edit retag flag offensive close merge delete