{"id":13702897,"url":"https://github.com/boschresearch/fmi_adapter","last_synced_at":"2026-03-08T16:35:30.779Z","repository":{"id":105076083,"uuid":"140839878","full_name":"boschresearch/fmi_adapter","owner":"boschresearch","description":"Integrating functional mock-up units (FMUs) in ROS nodes","archived":false,"fork":false,"pushed_at":"2025-02-15T23:48:23.000Z","size":819,"stargazers_count":49,"open_issues_count":7,"forks_count":13,"subscribers_count":10,"default_branch":"rolling","last_synced_at":"2025-05-05T06:37:35.057Z","etag":null,"topics":["fmi","keep","robotics","ros"],"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/boschresearch.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-07-13T11:38:58.000Z","updated_at":"2025-04-15T07:50:31.000Z","dependencies_parsed_at":"2025-05-05T06:32:40.441Z","dependency_job_id":"7171462e-b191-4e6f-8930-c9aaa3057d2f","html_url":"https://github.com/boschresearch/fmi_adapter","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/boschresearch/fmi_adapter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschresearch%2Ffmi_adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschresearch%2Ffmi_adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschresearch%2Ffmi_adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschresearch%2Ffmi_adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boschresearch","download_url":"https://codeload.github.com/boschresearch/fmi_adapter/tar.gz/refs/heads/rolling","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschresearch%2Ffmi_adapter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278762925,"owners_count":26041444,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fmi","keep","robotics","ros"],"created_at":"2024-08-02T21:00:45.644Z","updated_at":"2025-10-07T10:40:50.590Z","avatar_url":"https://github.com/boschresearch.png","language":"C++","funding_links":[],"categories":["FMI 2"],"sub_categories":["Tools"],"readme":"[![License](https://img.shields.io/badge/License-Apache%202-blue.svg)](LICENSE)\n[![Build status](http://build.ros2.org/job/Hdev__fmi_adapter__ubuntu_jammy_amd64/badge/icon?subject=Build%20farm%3A%20Humble)](http://build.ros2.org/job/Hdev__fmi_adapter__ubuntu_jammy_amd64/)\n[![Build status](http://build.ros2.org/job/Jdev__fmi_adapter__ubuntu_noble_amd64/badge/icon?subject=Build%20farm%3A%20Jazzy)](http://build.ros2.org/job/Jdev__fmi_adapter__ubuntu_noble_amd64/)\n[![Build status](http://build.ros2.org/job/Rdev__fmi_adapter__ubuntu_noble_amd64/badge/icon?subject=Build%20farm%3A%20Rolling)](http://build.ros2.org/job/Rdev__fmi_adapter__ubuntu_noble_amd64/)\n[![Build status](https://github.com/boschresearch/fmi_adapter/workflows/Build%20action%3A%20Humble%2C%20Jazzy%2C%20Rolling/badge.svg)](https://github.com/boschresearch/fmi_adapter/actions)\n[![Code coverage](https://codecov.io/gh/boschresearch/fmi_adapter/branch/rolling/graph/badge.svg)](https://codecov.io/gh/boschresearch/fmi_adapter)\n\n# The fmi_adapter repository\n\nThis repository provides the fmi_adapter package for wrapping *functional mockup units (FMUs)* for co-simulation of physical models into ROS 2 nodes, i.e. for the version ROS 2. The implementation for the first generation of ROS can be found in the [melodic_and_noetic branch](https://github.com/boschresearch/fmi_adapter/tree/melodic_and_noetic).\n\n\nFMUs are defined in the [FMI standard](http://fmi-standard.org/) and can be created with a variety of modeling and simulation tools, including [Dymola](http://www.3ds.com/products-services/catia/products/dymola), [MATLAB/Simulink](https://www.mathworks.com/products/simulink.html), [OpenModelica](https://www.openmodelica.org/), [SimulationX](https://www.simulationx.de/), and [Wolfram System Modeler](http://www.wolfram.com/system-modeler/).\n\nfmi_adapter provides a library with convenience functions based on common ROS types to load an FMU during runtime, retrieve the input, output, and parameter names, set timestamped input values, run the FMU's numeric solver, and query the resulting output.\n\nIn detail, this repository contains two ROS 2 packages:\n\n*   [fmi_adapter](fmi_adapter/) provides a generic library and node for loading and running FMUs in ROS-based applications.\n*   [fmi_adapter_examples](fmi_adapter_examples/) provides small examples for the use of fmi_adapter.\n\nTechnical information on the interfaces and use of these packages is given in the README.md files in the corresponding subfolders.\n\n\n## Purpose of the project\n\nThe software is not ready for production use. It has neither been developed nor tested for a specific use case. However, the license conditions of the applicable Open Source licenses allow you to adapt the software to your needs. Before using it in a safety relevant setting, make sure that the software fulfills your requirements and adjust it according to any applicable safety standards (e.g. ISO 26262).\n\n\n## Requirements, how to build, test, install, use, etc.\n\nClone the repository into a ROS workspace and build it using [colcon](https://colcon.readthedocs.io/).\n\n\n## License\n\nfmi_adapter is 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 fmi_adapter, see the file [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\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 [fmi_adapter/test](fmi_adapter/test) folder. The unit tests use an FMU created with the [FMU SDK](https://www.qtronic.de/en/fmu-sdk/) by QTronic GmbH, cf. [3rd-party-licenses.txt](3rd-party-licenses.txt).\n\n\n## Known issues/limitations\n\nPlease notice the following issues/limitations:\n\n*   fmi_adapter only supports FMUs according to the FMI 2.0 standard.\n*   fmi_adapter treats all inputs, outputs and parameters of a given FMU as floating-point values (ROS message std_msgs::msg::Float64, C++ type double, FMI type fmi2fmi2_real_t).\n*   A possible end time specified in an FMU is not considered, i.e., the FMU is being evaluated constantly until the corresponding ROS node is shutdown.\n\n\n## Papers\n\nIf you want to cite this repository/package, please cite the following book chapter ([PDF available at Springer Link](https://doi.org/10.1007/978-3-030-45956-7_7)) instead:\n\nRalph Lange, Silvio Traversaro, Oliver Lenord, and Christian Bertsch: Integrating the Functional Mock-Up Interface with ROS and Gazebo. In: _Anis Koubaa (ed.) Robot Operating System (ROS): The Complete Reference (Volume 5)_, Springer, pp. 187–231, 2021.\n\n```bibtex\n@INBOOK{Lange_et_al_2021_Integrating_the_FMI_with_ROS_and_Gazebo,\n  author = {Ralph Lange and Silvio Traversaro and Oliver Lenord and Christian Bertsch},\n  title = {Integrating the Functional Mock-Up Interface with ROS and Gazebo},\n  editor = {Anis Koubaa},\n  booktitle = {Robot Operating System (ROS): The Complete Reference (Volume 5)},\n  year = {2021},\n  publisher = {Springer},\n  pages = {187--231},\n  doi = {10.1007/978-3-030-45956-7_7}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboschresearch%2Ffmi_adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboschresearch%2Ffmi_adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboschresearch%2Ffmi_adapter/lists"}