There are a lot of constants for our robots and currently, each robot has a large C++ header file with all the relevant constants. Considering how much overlap there is between robot types, it would be nice to have a hierarchical config system which would allow for us to layer more specific configs on top of general ones. Also, robots might have the need for constants relevant only to them, which is currently awkward with the header files.
Goals:
Nicer config files (probably YAML, JSON, or XML)
Hierarchy -- ability to have specific config files which specify a subset of properties on top of more general configs (e.g. you have a general config for Standard and specific configs for each driver).
Run-time config switching (e.g. to allow switching a robot to demo mode without re-flashing)
There are a lot of constants for our robots and currently, each robot has a large C++ header file with all the relevant constants. Considering how much overlap there is between robot types, it would be nice to have a hierarchical config system which would allow for us to layer more specific configs on top of general ones. Also, robots might have the need for constants relevant only to them, which is currently awkward with the header files.
Goals: