Why does a robot model push away objects whenever it touches them?
I am simulating a robotic manipulator from urdf files. The robot is supposed to interact with objects in its environment, but whenever any part of the robot touches an object, the object is pushed back some distance - it is almost as if there is some repulsion acting between the robot and the object, resulting in the application of an opposing force. I know this might be a problem with the robot's collision and inertia properties, but I do not have any clue on how to debug it. Can someone please guide me? Thanks
PS: I do not think that it is a problem with the object models, since I am using object models supplied by gazebo such as a simple box and coke can for now. When 2 objects touch each other, they have no problem in maintaining the contact, the problem is only when the robot touches the object.
I am showing a video with collision and transparent visualization on, which depicts what happens when a model is brought into contact with the robot link
I can see that some of the joints are rotating without any applied force in the transparent view. Is this the cause of the problem, i.e. is the robot model itself unstable? With a different robot model (UR5) also, the object is thrown away, but the robot itself does not move like the Barrett WAM
You can debug collisions and inertias through the graphical interface. Right click on a model and choose View->Collisions, and/or View->Inertia.
Thanks, I have checked that, The collision of the robot is shown confined to the body of the robot itself, but still I am unable to understand why it is exerting random push on any object that it touches. How should it be related to the collision? What should ideally happen when any part of the robot comes into contact with another object?
Maybe the robot is pushing the objects strongly and they move? What did you expect to happen when they get in contact? Also, how are you moving the robot? Using SetPosition by any chance? Maybe if you post a video of the problem with the models transparent, and collisions and contacts visualizations turned on, it might be clearer for others to understand the problem.
I am not moving the robot at all. I did not apply anything to the robot. After simply spawning the robot and an object model, I drag the object to bring it in contact with the robot. Ideally, I guess the object should simply topple down on colliding with the robot, and the robot should not move significantly. However, in this case, the robot is actually moving to "kick" the object away from itself. I have updated the question with the link to the video. Kindly let me know what is happening here.