Re: [ros-users] Best way to set the parameters for the contr…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Stuart Glaser
Date:  
To: ros-users
Subject: Re: [ros-users] Best way to set the parameters for the controllers (param or message?)
Hi Ugo,

The best way to load pid gains is to place them on the parameter
server and load them from your controller's init() function. If you'd
like to change them on the fly, then check out the dynamic reconfigure
tool:

http://www.ros.org/wiki/dynamic_reconfigure

If dynamic reconfigure is too heavyweight, then write an
updateParametersFromServer() function (as Dejan suggested). Next, add
a service call (likely of type std_srvs/Empty) that calls the
function. Then you can use `rosparam set` to change the parameters
and then `rosservice call` to pull the new configuration into your
controller.

But try dynamic_reconfigure first.

-Stu

On Mon, Apr 19, 2010 at 11:18 AM, Dejan Pangercic
<> wrote:
> Hi Ugo,
>
> I am by no means authority but this is the way I update parameters in my nodes:
> Define node's member function, e.g.:
> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
>  double param_;
>  void
>      updateParametersFromServer ()
>    {
>      nh_.getParam ("my_param", param_);
>    }
> and then constantly call it in that node's spin function:
>
>      updateParametersFromServer ();
>
> See also an attached example file.
>
> Furthermore, I just recently stumbled upon
> http://www.ros.org/wiki/dynamic_reconfigure which "facilitates dynamic
> node reconfiguration". However I do not really understand in how far
> is it different to conventional updating of parameters as discussed
> before. But maybe Blaise can tell here more.
>
> D.
> On Mon, Apr 19, 2010 at 6:56 PM, Ugo Cupcic <> wrote:
>> Hi,
>>
>> I'm currently setting the parameters for the controllers (PID and so on)
>> via a message (I have a subscriber which updates the values when it
>> receives the corresponding message).
>>
>> It works well, but I wanted to know what was the recommended way of
>> doing that in ROS. Is it better to do it using parameters? (But then how
>> can I  change the corresponding values when the parameters are updated?)
>>
>> Cheers,
>>
>> Ugo
>>
>> --
>> Ugo Cupcic         |  Shadow Robot Company |
>> Software Engineer      251 Liverpool Road
>> need a Hand?           London  N1 1LX       | +44 20 7700 2487
>> http://www.shadowrobot.com/hand/              @shadowrobot
>>
>>
>> _______________________________________________
>> ros-users mailing list
>>
>> https://code.ros.org/mailman/listinfo/ros-users
>>
>
>
>
> --
> MSc. Dejan Pangercic
> PhD Student/Researcher
> Computer Science IX
> Technische Universität München
> Telephone: +49 (89) 289-17780
> E-Mail:
> WWW: http://ias.cs.tum.edu/people/pangercic
>
> _______________________________________________
> ros-users mailing list
>
> https://code.ros.org/mailman/listinfo/ros-users
>
>




--
Stuart Glaser
sglaser -at- willowgarage -dot- com
www.willowgarage.com