MRA (Robocup MSL Reference Architecture).
This repository contains a set of components, as well as surrounding infrastructure, common datatypes and logging/geometry facilities.
See here for the presentation (pdf) from May 2023.
(TODO more/stable material?)
A demonstration was given at the Robocup Worldcup 2023 Bordeaux, MSL Technical Challenge. It was awarded with first prize (link).
It is unclear if there is video footage.
The demo showed how a robot behaves very differently when using Falcons getball+velocitycontrol versus RobotSports getball+velocitycontrol, all via this repository.
Currently, two build systems are supported: bazel and cmake. For more details and practical guidance, see INTEGRATION.md
The creation of a new component is supported via the tool "MRA-codegen.py" in the MRA-root folder.
This script creates from templates the files needed for a component. To make a new component a developer need to create a new component folder and a subfolder "interface". In the subfolder "interface" the interface files must be present. The files "Input.proto" and "Output.proto" are mandatory (For details see MRA-codegen.py -h).
After the creation of the files, the script generates the files. A starting point for adding own code to the component is "tick.cpp"
- Some other MRA repositories could be factored out of this one, such as MRA-libraries, MRA-documents, MRA-engine, etc.
- Releasing and dependency management
- Connect with FMI/FMU standard?
- ROS2 component wrappers
- ...
https://github.com/janfeitsma/MRA-prototype
(Also contains older / stale branches, history of issues and pull requests.)