Ask Your Question

Problem with the robot model collapsing [closed]

asked 2015-08-18 21:46:29 -0600

updated 2016-06-06 10:45:34 -0600

I'm a beginner in the robotics/ROS/Gazebo world. I started to work in a robotics research lab in my university, and I have to model an Hexapod. Apparently, the URDF Xacro is alright: the visuals, collisions, inertia tensors, COM, mass, joint tags, etc..

But when I spawn the model on GazeboSim, it doesn't get immovable. Instead, it get agitated. I thought is was caused by a bad inertia tensor, so I fixed the meshes from the original solid parts, calculated the mass properties and replaced the faulty inertial tags and meshes. But this didn't solve the problem. When I was recording the screen to post this question, I have noticed that the most I increased the effort limit, the most it became agitated. Here's the video that shows this behavior. And you can see, in the _rostopic_ terminal, that the effort value applied to the joint is the max value (positive or negative) defined in the robot URDF Xacro file, and I don't know why this is happening.

Here's the robot description.

What can be made to solve this problem? I'm getting crazy with this haha

Thanks :D

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by emersonfs
close date 2015-08-19 20:18:37.467125

1 answer

Sort by ยป oldest newest most voted

answered 2015-08-19 01:29:24 -0600

updated 2016-01-19 02:43:19 -0600

Real-time physics simulation is hard to make stable for every use-case a user throws at it. I also experienced quite a few cases of physically correct (or at least plausible) models having tremors or just exploding. A combination of these knobs makes things work for me most of the time:

  • Adjust controller gains. Note that per default, joint velocities in Gazebo often exhibit high jitter, so I'd recommend to use low D gains.
  • Adjust inertial parameters of the model. Too high differences between masses and inertia tensors of different links can lead to instabilities that make the physics engine fail (in my experience current standard Gazebo versions have to be restarted in that case). Of course, it's not really desirable to change the model to have inertial parameters the real thing does not have, but this can often cause things to work. What you can do is make a specialized model for Gazebo with (hopefully slightly) adjusted parameters, but keep using the correct model in other applications.
  • Adjust the physics engine parameters (time step and iterations) so the physics are more accurate, but slower.

See also useful answers here: Controller makes robot unstable,Gazebo model jittering.

edit flag offensive delete link more


Thanks for your time! I'll do that and post the results here in the comments.

emersonfs gravatar imageemersonfs ( 2015-08-19 09:50:43 -0600 )edit

I've noticed that the robot PID gains was not properly tuned, so I dropped down the PID values and the Hexapod has stabilized. My professor has commented about the Ziegler-Nichols method, so I'll use that to tune properly the PID controllers. Once again thanks, your answer helped me a lot!

emersonfs gravatar imageemersonfs ( 2015-08-19 18:18:02 -0600 )edit

@emersonfs , Can you explain how you 'disabled' PID? It can be done by software or parameters can be set. (One of the most popular methods is to set I and D to 0 and controlling gain and offset with P. That will enhance the quality of answer by a lot.)

PrasadNR gravatar imagePrasadNR ( 2016-12-21 05:27:12 -0600 )edit

@PrasadNR I didn't disable PID, I set the PID values to a much much lower value than it was before.

emersonfs gravatar imageemersonfs ( 2016-12-21 09:37:44 -0600 )edit

Question Tools


Asked: 2015-08-18 21:46:29 -0600

Seen: 534 times

Last updated: Jun 06 '16