Home | Tutorials | Wiki | Issues
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Your steady state error is probably caused by a Proportional gain that is not strong enough to overcome friction AND gravity. I imagine you are still seeing steady state error after zeroing your friction coefficient because of gravity. You need to use an Integral gain to overcome both of these forces and get rid of your steady state error.

Also, the response you posted looks really underdamped. Try increasing your P gain to get a faster rise time, and use a D gain to mitigate any oscillations that pop up.

The static friction coefficient doesn't make sense to me in this case... "static" friction should only apply when the joint is not moving at all. I would expect "dynamic" friction to effect your step response. I tried to look up how Gazebo/ODE implements the "static" friction for a joint, but unfortunately the ODE wiki is down. From what you have found though, it seems likely that either Gazebo or ODE is confusing static friction with dynamic friction. I imagine when you decrease the "static" friction coefficient, your rise time gets quicker? If so, they must be implementing it as dynamic friction.

Lastly, setting up a physically accurate model can be real tricky. I wouldn't rely on the accuracy of the simulation unless you've done some serious system identification... especially if you are trying to determine feedback control gains for a real world system. Setting up a single test case (e.g. letting the link fall from one angle to another) will only make your model accurate for that exact case. You can get entirely different behavior from one test case to the next.

Long story short, use sim to get an initial set of gains for your real world system... then do real world testing and adjust your gains as needed. All kinds of complications come up that are tough to model (e.g. motor dynamics, feedback loop rate effects on integral/derivative terms, etc).

Hope this helps!