Skip to content

Replace Redis with a TOML configuration file for (per) robot constants #3315

@williamckha

Description

@williamckha

Description of the task

Currently, we use Redis on-board our robots to store per robot constants and some robot status info (though the robot status is currently unused). The original plan was to use Redis as a communication interface between the Jetson Nano and UI (Display) Board on the robots; robot status data would be stored in Redis and then asynchronously queried by the UI Board. However, the UI display project was scrapped and we ended up sending robot status protobuf messages back to the main AI computer for visualization in Thunderscope.

Now that we no longer require Redis for storing robot status, we should opt for a simpler solution for storing our robot constants and remove our dependency on Redis (which for some reason shit the bed at competition last year).

One solution would be to have a TOML file on each of our robots that contains its constants. TOML files are easy to read, edit, and copy.

Acceptance criteria

  • Add a TOML parsing library as an external dependency to our codebase
  • Update Thunderloop to read robot constants from a TOML file located somewhere on the robot (probably the home directory would be best)
  • Delete all references to Redis in codebase, jetson/rpi setup scripts/playbooks, CI
  • Update documentation (notably robot-software-architecture.md and useful-robot-commands.md) wherever Redis is mentioned
  • Make sure all our robots have the TOML file with the correct constants per robot (transfer them over from redis). Ideally we have an Ansible playbook that can automatically create the TOML file using some default constants: Create Ansible playbook to setup robots constants for competition #3223

Blocked By

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions