<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-reply;
        font-family:"Arial","sans-serif";
        color:#1F497D;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'>Hi,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'>In general +1.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'>I would like to see kind of a hierarchy or priority to define parameters. There are 4 possible sources for parameters: default values, launch file, a parameter server and command line. The static sources should have the lowest priority: 0 default values, 1 launch files, 2 parameter server, 3 command line<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'>At start a node will get the value coming from the source with the highest priority.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'>Mit freundlichen Grüßen / Best regards <br><br><b>Hannes Becker<br></b><br>Robert Bosch GmbH<br>Cognitive Systems (CR/AEY2) <br>Postfach 30 02 40 <br>70442 Stuttgart <span style='text-transform:uppercase'><br>GERMANY </span><br><a href="http://www.bosch.com"><span style='color:blue'>www.bosch.com</span></a> <br><br>Tel. +49(711)811-35085 <br>Fax +49(711)811-0 <br><a href="mailto:Hannes.Becker@de.bosch.com"><span style='color:blue'>Hannes.Becker@de.bosch.com</span></a> </span><span style='font-size:8.0pt;font-family:"Arial","sans-serif";color:black'><br><br>Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000;<br>Aufsichtsratsvorsitzender: Franz Fehrenbach; Geschäftsführung: Volkmar Denner,<br>Stefan Asenkerschbaumer, Bernd Bohr, Stefan Hartung, Dirk Hoheisel, Christoph Kübel, Uwe Raschke,<br>Wolf-Henning Scheider, Werner Struth, Peter Tyroller </span><span style='font-size:10.0pt;font-family:"Arial","sans-serif";color:#1F497D'><o:p></o:p></span></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> ros-users-bounces@code.ros.org [mailto:ros-users-bounces@code.ros.org] <b>Im Auftrag von </b>Gonzalo Abella<br><b>Gesendet:</b> Mittwoch, 17. April 2013 03:08<br><b>An:</b> ros-users@code.ros.org<br><b>Betreff:</b> [ros-users] New Parameter Server<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Dear community<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>My name is Gonzalo Abella. I am going to apply for the Google Summer of Code program. For those who does not know about what I am talking about, GSoC is a program where Google awards stipends to students who successfully complete a requested free and open-source software coding project during the summer. Here you can find more info [1]. There is a project which I find very interesting: <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>"Develop new Parameter API for C++ ROS client"<o:p></o:p></p></div><div><p class=MsoNormal>Description: ROS has a concept called parameters, which are settings for individual computational “nodes”. Currently the built-in parameter system in ROS statically sets the parameters at launch time and cannot be changed during runtime. There is an additional system called Dynamic Reconfigure which allows ROS nodes to define dynamic parameters, but this system requires that the parameters be defined outside of the normal ROS parameter API and is not integrated into the ROS C++ client API. This task would be to redesign the built-in ROS parameter system for C++ into a functional prototype which combines the normal static parameters with the Dynamic Parameter’s feature set. There are several features that need to be tackled for this project, for example: having callbacks for when parameters change, lock on access for the parameters (thread safety), grouping of parameters, and how to define the valid ranges for parameter values. The goal is a working prototype which can be used for ROS 2.0 work, but which could be back ported into ROS 1.0 if the new system can be implemented alongside the existing one or the changes to the existing system are minimal.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>With this description I have a pretty good idea of the goal of the project. I also have an initial idea of how I would do it. But because this is a community and it is you who are going to use the new Parameter Server at the end of the project, I would like to know your opinions in order to propose a better project (and do it if finally I get selected). Do you miss any feature? How would you improve the Parameter Server?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>For example, I think it could be interesting to decouple the Parameter Server from the ROS Master. The reason to do so is to increase its functionality. We could have two implementations and use the one that better suit for you. There is a simple by default implementation. Useful when you don't have many parameters. The other implementation could use a distributed key/value DB. It is useful when you have many parameters and to use the Parameter Server as a database. If the underlying DB is distributed, the DB would be highly scalable. What do you think? Does it fit in the project scope?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I would appreciate any opinion/suggestion/advice/commentary. Thank you very much.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Best regards,<o:p></o:p></p></div><div><p class=MsoNormal>      Gonzalo<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></body></html>