robocup-software icon indicating copy to clipboard operation
robocup-software copied to clipboard

Global Parameter Server

Open kylestach opened this issue 5 years ago • 0 comments

Description

There are some parameters, like world/robot parameters, that need to be stored globally. Some examples are listed:

  • Robot motion parameters (max linear/angular velocity and acceleration)
  • Kick and chip speed
  • Ball friction

Requirements

  • Add a global parameter server node
  • Create a parameter provider that pulls parameters from another node
    • Use the AsyncParameterClient to listen to events on the global parameter server and update parameters accordingly
  • Add a way of creating a callback on a parameter so we can call some function when it updates

Design

We will want a new global_parameters node responsible for storing global parameters. Then, we will want two parameter providers that should be used with the params::kGlobalParamModule tag: one for the actual global parameters node (which takes care of actually registering parameters) and one for the client nodes that internally uses AsyncParameterClient to dispatch callbacks to the correct parameter objects and apply changes.

kylestach avatar Oct 15 '20 15:10 kylestach