{"id":28707316,"url":"https://github.com/micro-ros/system_modes","last_synced_at":"2025-10-04T05:50:25.699Z","repository":{"id":38386821,"uuid":"161451306","full_name":"micro-ROS/system_modes","owner":"micro-ROS","description":"System modes for ROS 2 and micro-ROS","archived":false,"fork":false,"pushed_at":"2025-02-19T08:30:54.000Z","size":490,"stargazers_count":44,"open_issues_count":21,"forks_count":12,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-13T08:44:29.935Z","etag":null,"topics":["modes","parametrization","ros","ros2"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micro-ROS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-12-12T07:46:06.000Z","updated_at":"2025-02-21T09:37:17.000Z","dependencies_parsed_at":"2025-05-13T08:49:01.528Z","dependency_job_id":null,"html_url":"https://github.com/micro-ROS/system_modes","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/micro-ROS/system_modes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fsystem_modes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fsystem_modes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fsystem_modes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fsystem_modes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micro-ROS","download_url":"https://codeload.github.com/micro-ROS/system_modes/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fsystem_modes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259851625,"owners_count":22921624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["modes","parametrization","ros","ros2"],"created_at":"2025-06-14T17:00:47.342Z","updated_at":"2025-10-04T05:50:25.674Z","avatar_url":"https://github.com/micro-ROS.png","language":"C++","readme":"| :warning: This repository is no longer maintained. If you are interested in taking over maintenance, please contact [Arne Nordmann](https://github.com/norro) or [Ralph Lange](https://github.com/ralph-lange). |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n\n# ROS 2 System Modes\n\n[![License](https://img.shields.io/badge/License-Apache%202-blue.svg)](https://github.com/micro-ROS/system_modes/blob/master/LICENSE)\n[![Build status](http://build.ros2.org/job/Hdev__system_modes__ubuntu_jammy_amd64/badge/icon?subject=Build%20farm%3A%20Humble)](http://build.ros2.org/job/Hdev__system_modes__ubuntu_jammy_amd64/)\n[![Build status](http://build.ros2.org/job/Jdev__system_modes__ubuntu_noble_amd64/badge/icon?subject=Build%20farm%3A%20Jazzy)](http://build.ros2.org/job/Jdev__system_modes__ubuntu_noble_amd64/)\n[![Build status](http://build.ros2.org/job/Rdev__system_modes__ubuntu_noble_amd64/badge/icon?subject=Build%20farm%3A%20Rolling)](http://build.ros2.org/job/Rdev__system_modes__ubuntu_noble_amd64/)\n[![Build status](https://github.com/micro-ROS/system_modes/workflows/CI%3A%20humble%2C%20jazzy%2C%20rolling/badge.svg)](https://github.com/micro-ROS/system_modes/actions)\n[![Code coverage](https://codecov.io/gh/micro-ROS/system_modes/branch/master/graph/badge.svg)](https://codecov.io/gh/micro-ROS/system_modes)\n\nThis repository explores a system modes concept that is implemented for ROS 2 in these packages:\n* [system_modes_msgs](./system_modes_msgs/) provides the message types and services for system modes\n* [system_modes](./system_modes/) provides a library for system mode inference, a mode manager, and a mode monitor\n* [system_modes_examples](./system_modes_examples/) implements a simple example\n* [launch_system_modes](./launch_system_modes/) launch actions, events, and event handlers for system modes\n* [test_launch_system_modes](./test_launch_system_modes/) launch test for the launch_system_modes` package\n\n## Purpose of the Project\n\nThis software is not ready for production use. It has neither been developed nor\ntested for a specific use case. However, the license conditions of the\napplicable Open Source licenses allow you to adapt the software to your needs.\nBefore using it in a safety relevant setting, make sure that the software\nfulfills your requirements and adjust it according to any applicable safety\nstandards, e.g., ISO 26262.\n\n## How to Build, Test, Install, and Use\n\nAfter you cloned this repository into your ROS 2 workspace folder, you may build and install the [system_modes](./system_modes/) package and the [system_modes_examples](./system_modes_examples/) package using colcon:\n$ `colcon build --packages-select-regex system_modes`\n\nHave a look at the [system_modes_examples](./system_modes_examples/) documentation to try your installation.\n\nFor using this package and designing system modes for your system, please refer to the [How to Apply](./system_modes/README.md#how-to-apply) section.\n\n## License\n\nROS 2 System Modes are open-sourced under the Apache-2.0 license. See the\n[LICENSE](LICENSE) file for details.\n\nFor a list of other open-source components included in ROS 2 system_modes,\nsee the file [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\n## Quality assurance\n\nThe colcon_test tool is used for quality assurances, which includes cpplint, uncrustify, flake8, xmllint and various other tools.\n\nUnit tests based on [gtest](https://github.com/google/googletest) are located in the [./system_modes/test](system_modes/test) folder.\n\n## Known Issues/Limitations\n\nPlease notice the following issues/limitations:\n\n* Currently, (sub-)systems managed by the mode manager are not recognized by the `ros2 lifecycle` tool (*\"Node not found\"*). So to trigger lifecycle transitions in (sub-)systems, you have to go with the `ros2 service call` tool. Check the [system_modes_examples](./system_modes_examples/) documentation for example calls.\n* The [Error Handling and Rules](./system_modes/README.md#error-handling-and-rules-experimental) feature is still experimental and might be subject to major changes. However, if no rules are specified in the model file, this feature is not used.\n* The mode inference and the error handling and rules feature do not work as intended if some of the involved nodes are non-lifecycle nodes.\n\n## Acknowledgments\n\nThis activity has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement n° 780785).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fsystem_modes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicro-ros%2Fsystem_modes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fsystem_modes/lists"}