{"id":28717046,"url":"https://github.com/micro-ros/micro_ros_diagnostics","last_synced_at":"2025-06-15T03:13:12.820Z","repository":{"id":40413097,"uuid":"320508353","full_name":"micro-ROS/micro_ros_diagnostics","owner":"micro-ROS","description":"Diagnostics framework for micro-ROS","archived":false,"fork":false,"pushed_at":"2025-06-03T09:54:24.000Z","size":204,"stargazers_count":9,"open_issues_count":9,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-03T20:29:05.708Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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":"2020-12-11T08:08:19.000Z","updated_at":"2025-04-08T07:12:21.000Z","dependencies_parsed_at":"2025-06-03T10:56:33.429Z","dependency_job_id":"a14df52d-48d6-42d3-a535-0785be906ad6","html_url":"https://github.com/micro-ROS/micro_ros_diagnostics","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/micro-ROS/micro_ros_diagnostics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_diagnostics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_diagnostics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_diagnostics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_diagnostics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micro-ROS","download_url":"https://codeload.github.com/micro-ROS/micro_ros_diagnostics/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micro-ROS%2Fmicro_ros_diagnostics/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259914940,"owners_count":22931333,"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":[],"created_at":"2025-06-15T03:12:55.244Z","updated_at":"2025-06-15T03:13:12.810Z","avatar_url":"https://github.com/micro-ROS.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License](https://img.shields.io/badge/License-Apache%202-blue.svg)](https://github.com/micro-ROS/micro_ros_diagnostics/blob/master/LICENSE)\n[![Build status](https://github.com/micro-ROS/micro_ros_diagnostics/workflows/Build%20%2B%20Coverage/badge.svg)](https://github.com/micro-ROS/micro_ros_diagnostics/actions)\n[![Code coverage](https://codecov.io/gh/micro-ROS/micro_ros_diagnostics/branch/master/graph/badge.svg)](https://codecov.io/gh/micro-ROS/micro_ros_diagnostics)\n\nGeneral information about this repository, including legal information, build instructions and known issues/limitations, can be found in the [README](./README.md) of the repository root.\n\n# The micro-ROS diagnostics framework packages\n\nThis [ROS 2](https://index.ros.org/doc/ros2/) package provides a simple diagnostics framework for micro-ROS, built against rclc:\n\n* [micro_ros_diagnostic_msgs](./micro_ros_diagnostic_msgs/) - Diagnostic messages suited for micro-ROS, e.g., no use of arrays\n* [micro_ros_diagnostic_updater](./micro_ros_diagnostic_updater/) - rclc convenience functions for diagnostic updaters, publishing micro-ROS diagnostic messages\n* [micro_ros_common_diagnostics](./micro_ros_common_diagnostics/) - Micro-controller specific monitors\n* [micro_ros_diagnostic_bridge](./micro_ros_diagnostic_bridge/) - rclcpp package to translate micro-ROS diagnostic massages to vanilla ROS 2 diagnostic messages\n\nThe micro-ROS diagnostics packages do not provide any aggregator as we assume that such aggregation takes place on a microprocessor running standard ROS 2. Hence, we assume the following typical architecture:\n\n\u003cimg src=\"diagnostics_architecture.png\" style=\"display:block; width:100%; margin-left:auto; margin-right:auto;\"/\u003e\n\nIn order for the standard ROS 2 diagnostic aggregator to aggregate micro-ROS diagnostic message types, the ROS 2 bridge translates micro-ROS diagnostic messages to standard ROS 2 diagnostic messages.\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 it using colcon:\n$ `colcon build --packages-select-regex micro_ros_.*diagn`\n\nIn a typical architecture indicated above, you will need to build the packages \n[micro_ros_diagnostic_msgs](./micro_ros_diagnostic_msgs/),\n[micro_ros_diagnostic_updater](./micro_ros_diagnostic_updater/), and\n[micro_ros_common_diagnostics](./micro_ros_common_diagnostics/) (optional) on the microcontroller. Build the packages\n[micro_ros_diagnostic_msgs](./micro_ros_diagnostic_msgs/) and\n[micro_ros_diagnostic_bridge](./micro_ros_diagnostic_bridge/) on the micro processor next to the micro-ROS agent.\n\n## Running the example ##\n\nThe examples can be used as a usage reference. You'll find an [example launch configuration](micro_ros_diagnostic_bridge/example/launch/example_diagnostic_bridge.launch.py) on the micro_ros_diagnostic_bridge. This example can be run along the examples available in the [micro_ros_diagnostic_updater package](micro_ros_diagnostic_updater).\n\nFirst, build both packages with the examples enabled\n```\ncolcon build --cmake-args -DMICRO_ROS_DIAGNOSTIC_BRIDGE_EXAMPLES=ON -DMICRO_ROS_DIAGNOSTIC_UPDATER_EXAMPLES=ON\n```\n\nYou'll need three (or four) terminals for the second step. On the first one, source your `setup.sh` and launch the example bridge\n\n```\n. install/setup.sh\nros2 launch micro_ros_diagnostic_bridge example_diagnostic_bridge.launch.py\n```\n\nOn the second terminal, source `setup.sh` and run the [processor info example](../micro_ros_diagnostic_updater/example/example_processor_updater.c)\n\n```\n. install/setup.sh\nros2 run micro_ros_diagnostic_updater example_processor_updater\n```\n\nLastly, on the third terminal, see the diagnostic messages\n\n```\n. install/setup.sh\nros2 topic echo /diagnostics\n```\n\nYou can open a fourth terminal and run the [website checker example](../micro_ros_diagnostic_updater/example/example_website_checker.c)\n\n## License\n\nThe micro-ROS diagnostics framework packages are open-sourced under the Apache-2.0 license. See the [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## Known Issues/Limitations\n\nPlease notice the following issues/limitations:\n\n1. Due to limitations in the Micro-ROS agent, the micro-ROS diagnostics framework can't (yet) publish the default ROS 2 diagnostic messages [diagnostic_msgs](https://github.com/ros2/common_interfaces/tree/master/diagnostic_msgs), but provides simplified versions of the diagnostic messages and services that go without arrays, [MicroROSDiagnosticStatus](./micro_ros_diagnostic_msgs/msg/MicroROSDiagnosticStatus.msg) and [MicroROSSelfTest](./micro_ros_diagnostic_msgs/srv/MicroROSSelfTest.srv). These simplified messages and services will have to be translated by the agent or a 3rd party.\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fmicro_ros_diagnostics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicro-ros%2Fmicro_ros_diagnostics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicro-ros%2Fmicro_ros_diagnostics/lists"}