0
$\begingroup$

Rosanswers logo

Hi all,

I am looking for a package allowing to optimize gains for a given robot (or a simulated robot) - such as low-level PID gains. The idea is to provide init gains to the package and a cost function to optimize (typically including a component for the "tracking speed" and another one for the "stability") and then to let the package optimize by performing thousands of cycles overnight with different gains so as to converge to an optimum (using gradient descent or whatever relevant method).

Do you know about anything looking like that?

Thanks,

Antoine.


Originally posted by arennuit on ROS Answers with karma: 955 on 2014-08-05

Post score: 0


Original comments

Comment by prosa100 on 2014-08-05:
I would love to see an integration with Mathematica's PIDTune, especially because "Wolfram Programming Cloud" is free now.

Comment by arennuit on 2014-08-06:
Interesting...

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

This is a partial answer, but hopefully will point in the right direction.

Many PID tuning tools (like Mathematica's or Matlab's) require as input the plant model. Typically you don't have the plant model, so it's something you have to experimentally identify. Again, there are tools out there for doing this. From the ROS side, what would be desirable then is tooling to simplify the process of gathering the data for identifying the plant.

There are some very basic building blocks you can leverage, but it's not a press-play solution, you need to stitch the parts together yourself. For instance, the control_toolbox package has a tool for doing sine sweeps, which can be fed to the actuators and the recorded output in turn fed to an identification tool.

Since PID tuning is not something you do all the time, a tight coupling with the identification and tuning tool is not required IMO. Having something that excites your plant and records the data in a format usable by these tools should be enough. This is still a fair amount of work, and I've never tried it in simulation.


Originally posted by Adolfo Rodriguez T with karma: 3907 on 2014-08-07

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by arennuit on 2014-08-08:
Hi Adolfo, thanks for you answer. I am not sure I understand the need for sine sweeps: (I am not an expert in identification but) the main methods for identification do not imply spectrum analysis, do they? Or are you talking about approaches like http://tinyurl.com/p25pocd which I thought exotic?

Comment by ZdenekM on 2014-08-11:
For identification, you need some control input (velocity, position, etc). Sine is used quite often for this purposes. Another approach might be pseudorandom binary sequence.

Comment by arennuit on 2014-08-11:
@ZdenekM: interesting thnaks ;)

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.