# UR5 robot breaks after small collision

Hi,

I am working with the simulated UR5 with a gripper, and I am trying to simulate the collision between the gripper and some object (for now just a wooden box). The problem is that whenever the robot collides with the box it wildly bounce off and most of the time if the collision is slightly strong then the controller breaks.

You can see it here https://youtu.be/aab2w8Ymc7o

I am using the following collision parameters for the wooden box :

    <collision name="collision">
...
<surface>
<contact>
<poissons_ratio>0.347</poissons_ratio>
<elastic_modulus>8.8e+09</elastic_modulus>
<ode>
<soft_cfm>0.2</soft_cfm>
<soft_erp>0.2</soft_erp>
<kp>1000</kp>
<kd>10</kd>
<max_vel>100.0</max_vel>
<min_depth>0.001</min_depth>
</ode>
</contact>
</surface>


In the case of the robot joints, I define small damping like:

<joint name=...>
...
<dynamics damping="0.7" friction="0.0"/>
</joint>


How can I get a more realistic interaction between the robot and the object? I want the robot to behave stiffer instead of bouncing like crazy at any small collision.

I am using gazebo 7.14.0 with ROS Kinetic in Ubuntu 16.04.

Thanks!

edit retag close merge delete

Sort by » oldest newest most voted

Okay, I manage to solve my problem after checking the answer provided for this other post. The problem is that using the PositionJointInterface the simulator somehow cannot estimate the force interaction appropriately at the joints when there is a collision, so it breaks.

What I did, as suggested in the other post, is to implement the EffortJointInterface similarly as done here and carefully find some reasonable PID gains. So now, the simulation works more realistic, it won't break the controller even if it hits some obstacle, you can see it here.

Here is my code in case anyone needs something similar.

more