Microservice and Assignments Orchestrator for the helyOS framework.
Official site
Explore the docs
·
Report Bug
·
Request Feature
helyOS Core is a microservice and assignment orchestrator for mission-controlled agents. It is part of the helyOS, a software framework developed by Fraunhofer Institute for Transportation and Infrastructure Systems (IVI) for autonomous driving applications in delimited areas.
This repository contains the server source code which includes, GraphQl server, the microservice and assignments orchestrators, the database schema, and the dashboard web app used to configure helyOS Core. The helyOS Core is licensed under a modified version of Apache License 2.0.
Check out the Autotruck repository for a demonstration of the helyOS Core in action. This demo showcases the use of helyOS Core in the integration of logistics center application.
While the helyOS Core can be directly hosted on a Linux machine using Node.js (check out the folder /scripts
), the easiest way to run the server is using the Docker image, as demonstrated in the demo/docker-compose.yml
file.
You can build your own image using packaging/build.sh
or retrieve it from Docker Hub. When the helyOS core is running locally, you should be able to access the dashboard at http://localhost:8080 and the GraphQL interactive interface at http://localhost:5000/graphiql.
Dashboard at localhost:8080
Find more information at helyOS Manual.
Edit and run packaging/build.sh
to build a new docker image.
When a new version of helyos_core
is released and the database schema has changed, you have two options: either delete your database and start the new helyos_core
instance from scratch, or perform a database migration.
There are several migration strategies available. Here, we provide a basic one:
helyos_database/db_commands/pre_migration.sh
script to backup the content of all tables and drop the original tables.helyos core
version.helyos_database/db_commands/post_migration.sh
script to populate the new table structures using the backed-up data. Only tables and fields that match will be copied.You can customize the data transformation or parametrized data initialization in the pre_migration.sh
and post_migration.sh
scripts. If you are using the helyOS Core Docker image, map these files to your machine using the volume options in the docker-compose
file.
To run this migration strategy, you can restart your application with the enviroment variable RUN_MODE="migration" or simply run the the following command in the terminal:
docker compose run --rm helyos_core_service "/usr/local/helyos_core/helyos_database/db_commands/migrate.sh"
Note that when migrating to a new database schema, it is crucial to assess how these changes will impact the application. It is recommended to backup your data before performing any migration. While the provided migration strategy is a basic one, developers have the flexibility to develop a more refined strategy based on their specific requirements.
See CONTRIBUTING.md.
Questions about contributing, internals and so on are very welcome on the mailing list.
If you find the helyOS framework useful for your research or work, we kindly request that you cite the following paper:
C. Viol Barbosa, N. Belov, F. Keppler, J. Kolb, G. Nitzsche and S. Wagner, "helyOS: A customized off-the-shelf solution for autonomous driving applications in delimited areas," 2023 IEEE/SICE International Symposium on System Integration (SII), Atlanta, GA, USA, 2023, pp. 1-6, doi: 10.1109/SII55687.2023.10039276.
We appreciate your support and contribution to the helyOS community!
The helyOS Core is licensed under a modified Apache License 2.0. For more details, please refer to the LICENSE file.