/ssl-core

Primary LanguageC++MIT LicenseMIT

Issues Buf: Lint and Formatting Checker C/C++: clang-format Pull Requests C++ CMake VS Code Dev Containers License: MIT Docker Redis InfluxDB Yarn Go JavaScript C++ CMake Visual Studio Code

ssl-core

This repository contains the next yet-to-be-developed software for the RoboCup Small Size Soccer.

It consists in a long-term project that applies the concept of microservices to robotics, taking the utmost care to meet the latency and resource management requirements that exist in the category while having a portable, modular, and scalabe software.

Important

In this repository, there is the implementation of VAR (Video Assistant Referee), presented at RoboCup 2024 in Eindhoven. The idea is to make this set of microservices usable in official matches of the competition, with a 3D visualization, the ability to replay, and to index events produced by the game-controller.

To test during matches, please run: docker compose -f docker-compose.robocup-2024-var.yaml up

Table of Contents

About

The ssl-core project is organized as a language-agnostic monorepo package-by-feature microservices. Top-level directories contains its own README.md and are individually responsible for describing its purpose.

System Requirements

All the code developed was done in Visual Studio Code with development tied to a devcontainer, making it platform-independent.

Codemap

  • .cmake

    Contains common CMake rules and utilities used across the project.

  • app-shell

    Contains the application shell for mounting microfrontends.

  • common

    Contains common code and utilities used across the project.

  • containers

    Contains common Docker files and scripts used across the project.

  • docs

    Contains documentation pages as guides, tutorials, and other useful information.

  • experiments

    Contains experiments and prototypes for conceptual validation.

  • gateway

    Contains the API Gateway.

  • perception-ms

    Contains the perception microservice.

  • playback-ms

    Contains the playback microservice.

  • player-bff

    Contains the player backend for frontend.

  • player-mfe

    Contains the player microfrontend.

  • protocols

    Contains the Protocol Buffers definitions used across the project.

  • referee-ms

    Contains the referee microservice.

  • viewer-mfe

    Contains the viewer microfrontend.

How to Contribute

There are many ways in which you can participate in this project, for example:

If you are interested in fixing issues and contributing directly to the code base, please see How to Contribute.

License

The ssl-core repository is licensed under the terms of the MIT license. See LICENSE for more information.

Acknowledgements

We would like to express our gratitude to the following open-source projects that have inspired and influenced us in the development of ssl-core: