├── .github └── workflows │ └── dependent-issues.yml ├── .gitignore ├── LICENSE ├── README.md ├── Tutorial.md ├── doc ├── HOW_TO_CREATE_RELEASE.md └── THESES_QUESTIONS_CHECK.md └── src ├── img ├── kieliszek.jpg ├── meros-graphical-abstract-caption.txt ├── meros-graphical-abstract.png └── meros-graphical-abstract.pptx ├── meros-stereotypes.tex ├── meros.bib ├── metamodel-doc ├── diagrams │ ├── action_bdd.png │ ├── communicating_component_connections_bdd.png │ ├── communicating_component_specialisations_bdd.png │ ├── communicating_components_req.png │ ├── communication_channel_bdd.png │ ├── communication_concepts_req.png │ ├── compactness_and_simplicity_req.png │ ├── extra_concepts_req.png │ ├── general_req.png │ ├── grouping_req.png │ ├── namespace_bdd.png │ ├── node_bdd.png │ ├── original_ros_concepts_req.png │ ├── other_ros_concepts_req.png │ ├── repository_bdd.png │ ├── ros_connections_bdd.png │ ├── ros_package_bdd.png │ ├── ros_workspace_bdd.png │ ├── running_system_component_bdd.png │ ├── running_system_req.png │ ├── sources_executables_container_bdd.png │ ├── sources_executables_req.png │ └── system_bdd.png ├── meros-metamodel-doc.tex └── vp-project │ ├── meros-vp-stereotypes.xml │ └── meros_metamodel.vpp ├── poster └── meros-poster-b0.svg └── turtlesim-doc ├── diagrams ├── general_scenario_sd.png ├── rosgraph.png ├── running_system_detailed_bdd.png ├── running_system_detailed_ibd.png ├── running_system_general_bdd.png ├── running_system_general_ibd.png ├── system_initilisation_sd.png ├── system_sourexec_composition_bdd.png ├── turtle - stm.png ├── turtle_motion_sd.png ├── turtlesim_command_channel_bdd.png └── turtlesim_command_channel_ibd.png ├── img ├── turtle1.png ├── turtle2.png └── turtle3.png ├── meros-turtlesim-doc.tex └── vp-project └── meros-turtlesim.vpp /.github/workflows/dependent-issues.yml: -------------------------------------------------------------------------------- 1 | name: Dependent Issues 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | - edited 8 | - closed 9 | - reopened 10 | pull_request_target: 11 | types: 12 | - opened 13 | - edited 14 | - closed 15 | - reopened 16 | # Makes sure we always add status check for PRs. Useful only if 17 | # this action is required to pass before merging. Otherwise, it 18 | # can be removed. 19 | - synchronize 20 | 21 | # Schedule a daily check. Useful if you reference cross-repository 22 | # issues or pull requests. Otherwise, it can be removed. 23 | schedule: 24 | - cron: '0 0 * * *' 25 | 26 | jobs: 27 | check: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - uses: z0al/dependent-issues@v1 31 | env: 32 | # (Required) The token to use to make API calls to GitHub. 33 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 34 | # (Optional) The token to use to make API calls to GitHub for remote repos. 35 | GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }} 36 | 37 | with: 38 | # (Optional) The label to use to mark dependent issues 39 | label: dependent 40 | 41 | # (Optional) Enable checking for dependencies in issues. 42 | # Enable by setting the value to "on". Default "off" 43 | check_issues: off 44 | 45 | # (Optional) Ignore dependabot PRs. 46 | # Enable by setting the value to "on". Default "off" 47 | ignore_dependabot: off 48 | 49 | # (Optional) A comma-separated list of keywords. Default 50 | # "depends on, blocked by" 51 | keywords: depends on, blocked by 52 | 53 | # (Optional) A custom comment body. It supports `{{ dependencies }}` token. 54 | comment: > 55 | This PR/issue depends on: 56 | 57 | {{ dependencies }} 58 | 59 | By **[Dependent Issues](https://github.com/z0al/dependent-issues)** (🤖). Happy coding! 60 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /meros.bib.sav 2 | 3 | src/metamodel-doc/meros-metamodel-doc.* 4 | !src/metamodel-doc/meros-metamodel-doc.tex 5 | src/turtlesim-doc/meros-turtlesim-doc.* 6 | !src/turtlesim-doc/meros-turtlesim-doc.tex 7 | 8 | 9 | src/metamodel-doc/vp-project/meros_metamodel.vpp.* 10 | src/metamodel-doc/vp-project/.meros_metamodel.vpp.lck 11 | src/turtlesim-doc/vp-project/meros-turtlesim.vpp.* 12 | src/turtlesim-doc/vp-project/.meros_turtlesim.vpp.lck 13 | src/turtlesim-doc/vp-project/.meros-turtlesim.vpp.lck 14 | /src/MeROS-project.lnk 15 | /src/poster/meros-poster-b0.pdf 16 | /src/metamodel-doc/meros-4-0-0-metamodel-doc.pdf 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Tomasz Winiarski 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## MeROS: SysML-based Metamodel for ROS-related Systems 2 | 3 | The complexity of today's robot control systems implies difficulty in developing them efficiently and reliably. Systems engineering (SE) and frameworks come to help. The frameworks' metamodels are needed to support the standardisation and correctness of the created application models. MeROS is a metamodel for ROS, which addresses the running system and developer workspace. An essential addition to the original ROS concepts is the grouping of these concepts, which provides an opportunity to illustrate the system's decomposition and varying degrees of detail in its presentation. The metamodel is derived from the requirements and verified on the practical examples. The matter is described in a standardised way in SysML (Systems Modeling Language). Hence, common development tools that support SysML can help develop robot controllers in the spirit of SE. 4 | 5 |

6 | 7 |

8 | 9 | ## Resources 10 | * [MeROS documentation (pdf)](https://github.com/twiniars/MeROS/releases/download/4.0.0/meros-4-0-0-metamodel-doc.pdf) (current version - strongly recommended for use) 11 | * [MeROS turtlesim tutorial (pdf)](https://github.com/twiniars/MeROS/releases/download/4.0.0/meros-4-0-0-turtlesim-doc.pdf) (current version - strongly recommended for use) 12 | * [MeROS poster (pdf)](https://github.com/twiniars/MeROS/releases/download/4.0.4/meros-4-0-0-poster-b0.pdf) (B0 size) 13 | * [Releases and Changelog](https://github.com/twiniars/MeROS/releases) 14 | * [Wskazówki dla studentów i nie tylko (in Polish)](doc/THESES_QUESTIONS_CHECK.md) 15 | * IEEE ACCESS scientific paper with a complete description of the initial version of MeROS - https://ieeexplore.ieee.org/document/10207804. **Please cite it while publishing articles that relates to MeROS**. 16 | * arxiv scientific paper with a MeROS-related V-model - https://arxiv.org/abs/2506.08706. **Please cite it while publishing articles that relates to MeROS**. 17 | 18 | ## Contribution 19 | 20 | * User feedback and contribution is welcome with issues https://github.com/twiniars/MeROS/issues 21 | 22 | 23 | -------------------------------------------------------------------------------- /Tutorial.md: -------------------------------------------------------------------------------- 1 | ## MeROS: SysML-based Metamodel for ROS-based Systems 2 | 3 | # -- OLD Version -- Practical tutorial to MeROS usage with Visual Paradigm (in Polish, Polish and English subtitles) 4 | 5 | ## Part I - Introduction 6 | 7 | * VP project creation 8 | * MeROS stereotypes - application in diagrams, import, export 9 | * Block definition diagrams - blocks creation, relations, and views - 10 | 11 | [![Watch the video](https://img.youtube.com/vi/-r2_D_HjsNs/hqdefault.jpg)](https://www.youtube.com/embed/-r2_D_HjsNs) 12 | 13 | ## Part II - Requirements 14 | 15 | * Requirements diagrams, 16 | * Allocation of requirements 17 | 18 | [![Watch the video](https://img.youtube.com/vi/oy06tMGAGNo/hqdefault.jpg)](https://www.youtube.com/embed/oy06tMGAGNo) 19 | 20 | ## Part III - Presentation of elements of blocks 21 | 22 | * Presentation of elements of blocks 23 | 24 | [![Watch the video](https://img.youtube.com/vi/b5hw-Opv38I/hqdefault.jpg)](https://www.youtube.com/embed/b5hw-Opv38I) 25 | 26 | ## Part IV - Sequence diagrams 27 | 28 | * Sequence diagrams 29 | 30 | [![Watch the video](https://img.youtube.com/vi/vmoTcreDeqI/hqdefault.jpg)](https://www.youtube.com/embed/vmoTcreDeqI) 31 | 32 | ## Part V - Diagrams in documentation 33 | 34 | * Diagrams in documentation 35 | 36 | [![Watch the video](https://img.youtube.com/vi/yBAbCfkiQVw/hqdefault.jpg)](https://www.youtube.com/embed/yBAbCfkiQVw) 37 | 38 | ## Part VI - Internal block diagrams 39 | 40 | * Diagrams in documentation 41 | 42 | [![Watch the video](https://img.youtube.com/vi/S8q7sBQxlCE/hqdefault.jpg)](https://www.youtube.com/embed/S8q7sBQxlCE) 43 | 44 | -------------------------------------------------------------------------------- /doc/HOW_TO_CREATE_RELEASE.md: -------------------------------------------------------------------------------- 1 | # MeROS: SysML-based Metamodel for ROS-based Systems 2 | 3 | ## How to create release in steps 4 | 5 | 1. Prepare source codes of MeROS documentation 6 | 2. Prepare poster svg file (if needed) 7 | 3. Prepare new enterprise architect MeROS profile (if needed) 8 | 4. Commit and push local repository 9 | 5. Compile MeROS documentation locally (e.g. with texstudio) to resultant pdf file. Change the pdf name to **meros-X-Y-Z-doc.pdf**, where X.Y.Z is the release number, 10 | 6. (If needed) Save svg poster (e.g. with inkscape) as pdf file **meros-X-Y-Z-poster-b0.pdf**, where X.Y.Z is the release number, 11 | 7. (If needed) Save enterprise architect MeROS profile as **meros-X-Y-Z-ea-profile.xml**, where X.Y.Z is the release number, 12 | 8. Create release and tag X.Y.Z 13 | 9. Upload new documents (documentation, poster, profile) 14 | 10. Modify Changlelog 15 | 11. Modify README.md to link to new documents 16 | 12. Pull repository on local PC 17 | -------------------------------------------------------------------------------- /doc/THESES_QUESTIONS_CHECK.md: -------------------------------------------------------------------------------- 1 | # MeROS: Pytania na jakie powinna odpowiadać praca dyplomowa w kontekście MeROS. Dotyczy to zarówno diagramów jak i towarzyszącego im tekstu. 2 | 3 | 1. Czy wszędzie zastosowano właściwe stereotypy? 4 | 2. Czy wykorzystywana jest bieżąca wersja MeROS? Czy podano wersję MeROS, która jest wykorzystywana? 5 | 3. Jakie wyszczególniono Systemy? 6 | 4. Jak wygląda dekompozycja ogólnego Systemu, na którym prowadzono prace? 7 | 5. Czy wyszczególniono Systemy dla zastanej części sterownika oraz autorskiej części sterownika? 8 | 6. Czy wskazano wszelkie Repozytoria, Przestrzenie Robocze, Pakiety i inne potrzebne Kontenery Źródeł? 9 | 7. Czy do Pakietów przypisano autorskie Komponenty Systemu Uruchomieniowego? 10 | 8. Czy przedstawiono wszystkie autorskie Węzły i inne Komponenty Systemu Uruchomieniowego? 11 | 9. Czy określono na poziomie ogólnym i szczegółowym Kanały Komunikacyjne? 12 | 10. Czy przedstawiono wymagania i zaalokowano jawnie w Systemie wszystkie wymagania liścienne? 13 | 11. Czy na wstępnie określono cele funkcjonalne i sposób walidacji? Dotyczy to w szczególności koncepcyjnych diagramów sekwencji, przypadków użycia, diagramów aktywności w zależności od charakteru pracy. 14 | 12. Czy sformułowano opis projektu na poziomie koncepcyjnym w sensie strukturalnym i behawioralnym? 15 | 13. Czy sformułowano implementacyjny opis projektu w sensie strukturalnym i behawioralnym? 16 | 14. Czy wszystkie elementy wystepujące na diagramach (np. \<\\>), są agregowane przez inne elementy i jest to zilustrowane na diagramach (zasadniczo bdd)? 17 | 15. Czy przeprowadzono weryfikację przejścia pomiędzy poziomem koncepcyjnym a implementacyjnym opisu projektu? W szczególności wiąże to się z przypisaniem wszelkich bloków na poziomie implementacyjnym (np. Node) ich koncepcyjnym odpowiednikom (np. Systemom), w tym agregatom. 18 | 16. Zastosowanie (deployment). Czy opisano na diagramach SysML (zasadniczo bdd i ibd) sprzęt, na którym uruchamiane jest oprogramowanie opisane w MeROS? Czy powiązano bloki tych diagramów z odpowiadającymi im blokami oprogramowania opisanego w MeROS? 19 | 17. Czy czcionka na diagramach wstawionych do pracy jest zbliżona wielkością do tej w tekście pracy? Jeśli jest za mała zwykle właściwym krokiem jest dekompozycja diagramów, czy też zmniejszenie liczby elementów na pojedynczym diagramie. Diagramy należy wstawiać zadająć im wielkość za pomocą scale=x, gdzie powinno być zbliżone do 1.0. 20 | 18. Czy diagramy nie są zbyt ,,pionowe'' i obszerne, tak że po ich wstawieniu do prezentacji czcionka będzie zbyt mała? Jeśli tak, to należy je przerobić na bardziej poziome wersje. Co więcej nie należy mieć dwóch wersji diagramów: do pracy i do prezentacji. Właściwym jest zastosowanie w pracy wersji z prezentacji. 21 | 19. Czy w tekście pracy odwołano się do wszystkich rysunków i tabel za pomocą \ref{}? Czy te obiekty są wstawione w tekście dalej niż pierwsze odwołanie do nich? 22 | 20. Czy przeprowadzono testy zgodnie z założeniami walidacyjnymi? 23 | 21. Czy powstał odpowiedni film ilustrujący testy/działanie systemu? Jeśli nie, to dlaczego. 24 | 22. Czy oceniono wyników testów, najlepiej w sensie nie tylko jakościowym ale i ilościowym (np. czas szybkość działania, niezawodność w sensie statystycznym)? 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/img/kieliszek.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/img/kieliszek.jpg -------------------------------------------------------------------------------- /src/img/meros-graphical-abstract-caption.txt: -------------------------------------------------------------------------------- 1 | MeROS: SysML-based Metamodel for ROS-based Systems and its development process -------------------------------------------------------------------------------- /src/img/meros-graphical-abstract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/img/meros-graphical-abstract.png -------------------------------------------------------------------------------- /src/img/meros-graphical-abstract.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/img/meros-graphical-abstract.pptx -------------------------------------------------------------------------------- /src/meros-stereotypes.tex: -------------------------------------------------------------------------------- 1 | % encoding: utf8 2 | % 3 | % Stereotypes 4 | % 5 | 6 | % Lista powinna być zgodna z profilem w EA 7 | 8 | \newcommand{\stAction}{<>} 9 | \newcommand{\stActionGoal}{<>} 10 | \newcommand{\stActionFeedback}{<>} 11 | \newcommand{\stActionResult}{<>} 12 | \newcommand{\stCLTool}{<>} 13 | \newcommand{\stCommChannel}{<>} 14 | \newcommand{\stComponContain}{<>} 15 | \newcommand{\stFile}{<>} 16 | \newcommand{\stGpPackages}{<>} 17 | \newcommand{\stHardware}{<>} 18 | \newcommand{\stLaunchFile}{<>} 19 | \newcommand{\stMetaPackage}{<>} 20 | \newcommand{\stMicroNode}{<>} 21 | \newcommand{\stNamespace}{<>} 22 | \newcommand{\stNode}{<>} 23 | \newcommand{\stNodeLifeState}{<>} 24 | \newcommand{\stPackage}{<>} 25 | \newcommand{\stParameter}{<>} 26 | \newcommand{\stRepository}{<>} 27 | \newcommand{\stRosCommCompon}{<>} 28 | \newcommand{\stRosConnection}{<>} 29 | \newcommand{\stRQtNode}{<>} 30 | \newcommand{\stRunSystemCompon}{<>} 31 | \newcommand{\stService}{<>} 32 | \newcommand{\stServiceRequest}{<>} 33 | \newcommand{\stServiceResponse}{<>} 34 | \newcommand{\stSourExeContain}{<>} 35 | \newcommand{\stSystem}{<>} 36 | \newcommand{\stSystemState}{<>} 37 | \newcommand{\stTerminal}{<>} 38 | \newcommand{\stTopic}{<>} 39 | \newcommand{\stTopicMsg}{<>} 40 | \newcommand{\stWorkspace}{<>} 41 | 42 | \newcommand{\stblock}{<>} 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/meros.bib: -------------------------------------------------------------------------------- 1 | @article{dal2022formal, 2 | title={A formal toolchain for offline and run-time verification of robotic systems}, 3 | author={Dal Zilio, Silvano and Hladik, Pierre-Emmanuel and Ingrand, F{\'e}lix and Mallet, Anthony}, 4 | journal={Robotics and Autonomous Systems}, 5 | pages={104301}, 6 | year={2022}, 7 | publisher={Elsevier} 8 | } 9 | 10 | @Article{ladeira2021robmex, 11 | author = {Ladeira, Matheus and Ouhammou, Yassine and Grolleau, Emmanuel}, 12 | journal = {Journal of Systems Architecture}, 13 | title = {{RoBMEX: ROS}-based modelling framework for end-users and experts}, 14 | year = {2021}, 15 | pages = {102089}, 16 | volume = {117}, 17 | publisher = {Elsevier}, 18 | } 19 | 20 | 21 | @article{karwowski2021hubero, 22 | title={{HuBeRo-a Framework to Simulate Human Behaviour in Robot Research}}, 23 | author={Jarosław Karwowski and Wojciech Dudek and Maciej Węgierek and Tomasz Winiarski}, 24 | journal={Journal of Automation, Mobile Robotics and Intelligent Systems}, 25 | abstract = {Social robots’ software is commonly tested in a simulation due to the safety and convenience reasons as well as an environment configuration repeatability assurance. An interaction between a robot and a human requires taking a person presence and his movement abilities into consideration. The purpose of the article is to present the HuBeRo framework, which can be used to simulate human motion behaviour. The framework allows independent control of each individual’s activity, which distinguishes the presented approach from state-of-the-art, opensource solutions from the robotics domain. The article presents the framework assumptions, architecture, and an exemplary application with respect to presented scenarios.}, 26 | volume = {15}, 27 | number = {1}, 28 | pages = {31--38}, 29 | year = {2021}, 30 | doi = {10.14313/JAMRIS/1-2021/4} 31 | } 32 | 33 | @article{kasprzak2020agent, 34 | author = {Kasprzak, Włodzimierz and Szynkiewicz, Wojciech and Stefańczyk, Maciej and Dudek, Wojciech and Węgierek, Maciej and Seredyński, Dawid and Figat, Maksym and Zieliński, Cezary}, 35 | journal = {Bulletin of the Polish Academy of Sciences: Technical Sciences}, 36 | title = {Agent-based approach to the design of a multimodal interface for cyber-security event visualisation control}, 37 | year = {2020}, 38 | number = {No. 5 (October)}, 39 | pages = {1187-1205}, 40 | volume = {68}, 41 | doi = {10.24425/bpasts.2020.134662}, 42 | grant = {NPC}, 43 | howpublished = {online}, 44 | keywords = {multimodal interface, cyber security visualisation, embodied agent}, 45 | twiki = {journal} 46 | } 47 | 48 | 49 | @InProceedings{wenger2016model, 50 | author = {Wenger, Monika and Eisenmenger, Waldemar and Neugschwandtner, Georg and Schneider, Ben and Zoitl, Alois}, 51 | booktitle = {2016 IEEE 21st international conference on emerging technologies and factory automation (ETFA)}, 52 | title = {A model based engineering tool for {ROS} component compositioning, configuration and generation of deployment information}, 53 | year = {2016}, 54 | organization = {IEEE}, 55 | pages = {1--8}, 56 | } 57 | 58 | @InProceedings{wehrmeister2020generating, 59 | author = {Wehrmeister, Marco Aurelio}, 60 | booktitle = {2020 25th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA)}, 61 | title = {{Generating ROS-based Software for Industrial Cyber-Physical Systems from UML/MARTE}}, 62 | year = {2020}, 63 | organization = {IEEE}, 64 | pages = {313--320}, 65 | volume = {1}, 66 | } 67 | 68 | @inproceedings{koubaa2016turtlebot, 69 | title={Turtlebot at office: A service-oriented software architecture for personal assistant robots using ros}, 70 | author={Koub{\^a}a, Anis and Sriti, Mohamed-Foued and Javed, Yasir and Alajlan, Maram and Qureshi, Basit and Ellouze, Fatma and Mahmoud, Abdelrahman}, 71 | booktitle={2016 International Conference on Autonomous Robot Systems and Competitions (ICARSC)}, 72 | pages={270--276}, 73 | year={2016}, 74 | organization={IEEE} 75 | } 76 | 77 | @Article{anis2015ros, 78 | author = {Anis, Koubaa}, 79 | journal = {Journal of Software Engineering for Robotic}, 80 | title = {{ROS} as a service: web services for robot operating system}, 81 | year = {2015}, 82 | issn = {2035-3928}, 83 | month = dec, 84 | number = {1}, 85 | pages = {1--14}, 86 | volume = {6}, 87 | publisher = {Universit{\`a} degli studi di Bergamo}, 88 | } 89 | 90 | @inproceedings{li2016alliance, 91 | title={ALLIANCE-ROS: a software architecture on ROS for fault-tolerant cooperative multi-robot systems}, 92 | author={Li, Minglong and Cai, Zhongxuan and Yi, Xiaodong and Wang, Zhiyuan and Wang, Yanzhen and Zhang, Yongjun and Yang, Xuejun}, 93 | booktitle={Pacific Rim International Conference on Artificial Intelligence}, 94 | pages={233--242}, 95 | year={2016}, 96 | organization={Springer} 97 | } 98 | 99 | @Article{earl2020, 100 | author = {Winiarski, Tomasz and Węgierek, Maciej and Seredyński, Dawid and Dudek, Wojciech and Banachowicz, Konrad and Zieliński, Cezary}, 101 | journal = {Electronics}, 102 | title = {{EARL -- Embodied Agent-Based Robot Control Systems Modelling Language}}, 103 | year = {2020}, 104 | issn = {2079-9292}, 105 | number = {2 - 379}, 106 | volume = {9}, 107 | article-number = {379}, 108 | doi = {10.3390/electronics9020379}, 109 | } 110 | 111 | @InProceedings{belzunce2016control, 112 | author = {Belzunce, Andres and Li, Ming and Handroos, Heikki}, 113 | booktitle = {2016 IEEE 11th Conference on Industrial Electronics and Applications (ICIEA)}, 114 | title = {Control system design of a teleoperated omnidirectional mobile robot using {ROS}}, 115 | year = {2016}, 116 | organization = {IEEE}, 117 | pages = {1283--1287}, 118 | } 119 | 120 | @Article{zander2016model, 121 | author = {Zander, Stefan and Heppner, Georg and Neugschwandtner, Georg and Awad, Ramez and Essinger, Marc and Ahmed, Nadia}, 122 | journal = {arXiv preprint arXiv:1601.03998}, 123 | title = {A model-driven engineering approach for {ROS} using ontological semantics}, 124 | year = {2016}, 125 | } 126 | 127 | @InProceedings{hua2016automationml, 128 | author = {Hua, Yingbing and Zander, Stefan and Bordignon, Mirko and Hein, Bj{\"o}rn}, 129 | booktitle = {2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA)}, 130 | title = {{From AutomationML to ROS: A model-driven approach for software engineering of industrial robotics using ontological reasoning}}, 131 | year = {2016}, 132 | organization = {IEEE}, 133 | pages = {1--8}, 134 | } 135 | 136 | @Inproceedings{robotml, 137 | author = {Dhouib, Saadia and Kchir, Selma and Stinckwich, Serge and Ziadi, Tewfik and Ziane, Mikal}, 138 | title = {{RobotML}, a Domain-Specific Language to Design, Simulate and Deploy Robotic Applications}, 139 | year = {2012}, 140 | month = {November}, 141 | doi = {10.1007/978-3-642-34327-8_16}, 142 | } 143 | 144 | @Article{v3cmm_2010, 145 | author = {Diego, Alonso and Cristina, Vicente-Chicote and Francisco, Ortiz and Juan, Pastor and B{\'a}rbara, {\'A}lvarez}, 146 | title = {{V3CMM: A 3-view component meta-model for model-driven robotic software development}}, 147 | journal = {Journal of Software Engineering in Robotics}, 148 | year = {2010}, 149 | volume = {1}, 150 | number = {1}, 151 | pages = {3--17}, 152 | publisher = {Universit{\`a} degli studi di Bergamo}, 153 | } 154 | 155 | @Article{zielinski2017variable, 156 | author = {Cezary Zieliński and Maciej Stefańczyk and Tomasz Kornuta and Maksym Figat and Wojciech Dudek and Wojciech Szynkiewicz and Włodzimierz Kasprzak and Jan Figat and Marcin Szlenk and Tomasz Winiarski and Konrad Banachowicz and Teresa Zielińska and Emmanouil G. Tsardoulias and Andreas L. Symeonidis and Fotis E. Psomopoulos and Athanassios M. Kintsakis and Pericles A. Mitkas and Aristeidis Thallas and Sofia E. Reppou and George T. Karagiannis and Konstantinos Panayiotou and Vincent Prunet and Manuel Serrano and Jean-Pierre Merlet and Stratos Arampatzis and Alexandros Giokas and Lazaros Penteridis and Ilias Trochidis and David Daney and Miren Iturburu}, 157 | title = {Variable structure robot control systems: The {RAPP} approach}, 158 | journal = {Robotics and Autonomous Systems}, 159 | year = {2017}, 160 | volume = {94}, 161 | pages = {226--244}, 162 | abstract = {This paper presents a~method of designing variable structure control systems for robots. As the on-board robot computational resources are limited, but in some cases the demands imposed on the robot by the user are virtually limitless, the solution is to produce a~variable structure system. The task dependent part has to be exchanged, however the task governs the activities of the robot. Thus not only exchange of some task-dependent modules is required, but also supervisory responsibilities have to be switched. Such control systems are necessary in the case of robot companions, where the owner of the robot may demand from it to provide many services.}, 163 | doi = {10.1016/j.robot.2017.05.002}, 164 | issn = {0921-8890}, 165 | publisher = {Elsevier}, 166 | } 167 | 168 | @Article{zielinski2010motion, 169 | author = {Cezary Zieliński and Tomasz Winiarski}, 170 | journal = {International Journal of Robotics Research}, 171 | title = {Motion Generation in the {MRROC++} Robot Programming Framework}, 172 | year = {2010}, 173 | number = {4}, 174 | pages = {386-413}, 175 | volume = {29}, 176 | doi = {10.1177/0278364909348761}, 177 | publisher = {Multimedia Archives}, 178 | } 179 | 180 | @Article{kornuta-bpan-2020, 181 | author = {Kornuta, Tomasz and Zieliński, Cezary and Winiarski, Tomasz}, 182 | journal = {Bulletin of the Polish Academy of Sciences: Technical Sciences}, 183 | title = {A universal architectural pattern and specification method for robot control system design}, 184 | year = {2020}, 185 | number = {No. 1 February}, 186 | pages = {3--29}, 187 | volume = {68}, 188 | doi = {10.24425/bpasts.2020.131827}, 189 | howpublished = {online}, 190 | keywords = {Autonomous Agents, Control Architectures and Programming, service robots, Range Sensing, Recognition, Grasping} 191 | } 192 | 193 | %----------------------------- 194 | %frameworki 195 | 196 | 197 | %----------------------------- 198 | %inna literatura 199 | 200 | @article{tasker2020, 201 | author = {Dudek, Wojciech and Winiarski, Tomasz}, 202 | journal = {IEEE Access}, 203 | title = {{Scheduling of a Robot's Tasks With the TaskER Framework}}, 204 | year = {2020}, 205 | volume = {8}, 206 | number = {}, 207 | doi = {10.1109/ACCESS.2020.3020265}, 208 | pages = {161449-161471}, 209 | grant = {aal-incare}, 210 | video = {https://vimeo.com/403391725} 211 | } 212 | 213 | @Inproceedings{winiarskimmar2015, 214 | author = {Tomasz Winiarski and Konrad Banachowicz}, 215 | title = {Automated generation of component system for the calibration of the service robot kinematic parameters}, 216 | booktitle = {20th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2015}, 217 | year = {2015}, 218 | pages = {1098--1103}, 219 | publisher = {IEEE}, 220 | } 221 | 222 | @misc{winiarski2020intentbased, 223 | title={An intent-based approach for creating assistive robots' control systems}, 224 | author={Tomasz Winiarski and Wojciech Dudek and Maciej Stefańczyk and Łukasz Zieliński and Daniel Giełdowski and Dawid Seredyński}, 225 | year={2020}, 226 | eprint={2005.12106}, 227 | archivePrefix={arXiv}, 228 | primaryClass={cs.RO} 229 | } 230 | 231 | @Article{figat2020robotic, 232 | author = {Figat, Maksym and Zieliński, Cezary}, 233 | journal = {IEEE Access}, 234 | title = {Robotic system specification methodology based on hierarchical Petri nets}, 235 | year = {2020}, 236 | pages = {71617--71627}, 237 | volume = {8}, 238 | publisher = {IEEE}, 239 | } 240 | 241 | @InProceedings{winiarski2015automation, 242 | author = {Winiarski, Tomasz and Banachowicz, Konrad and Seredyński, Dawid}, 243 | booktitle = {Progress in Automation, Robotics and Measuring Techniques. Vol. 2 Robotics.}, 244 | title = {{Two mode impedance control of Velma service robot redundant arm}}, 245 | year = {2015}, 246 | pages = {319--328}, 247 | publisher = {Springer}, 248 | series = {Advances in Intelligent Systems and Computing (AISC)}, 249 | volume = {351}, 250 | doi = {10.1007/978-3-319-15847-1\_31}, 251 | } 252 | 253 | @InProceedings{maruyama2016exploring, 254 | author = {Maruyama, Yuya and Kato, Shinpei and Azumi, Takuya}, 255 | booktitle = {Proceedings of the 13th International Conference on Embedded Software}, 256 | title = {Exploring the performance of {ROS2}}, 257 | year = {2016}, 258 | pages = {1--10}, 259 | } 260 | 261 | @article{erHos2019ros2, 262 | title={A ROS2 based communication architecture for control in collaborative and intelligent automation systems}, 263 | author={Er{\H{o}}s, Endre and Dahl, Martin and Bengtsson, Kristofer and Hanna, Atieh and Falkman, Petter}, 264 | journal={Procedia Manufacturing}, 265 | volume={38}, 266 | pages={349--357}, 267 | year={2019}, 268 | publisher={Elsevier} 269 | } 270 | 271 | @Article{tsuji2020reusable, 272 | author = {Tsuji, Hiroyasu and Shii, Mayuka and Yokoyama, Shogo and Takamido, Yuki and Murase, Yuji and Masaki, Soshi and Ohara, Kenichi}, 273 | journal = {Advanced Robotics}, 274 | title = {{Reusable robot system for display and disposal tasks at convenience stores based on a SysML model and RT Middleware}}, 275 | year = {2020}, 276 | number = {3-4}, 277 | pages = {250--264}, 278 | volume = {34}, 279 | publisher = {Taylor \& Francis}, 280 | } 281 | 282 | @InProceedings{ohara2010sysml, 283 | author = {OHARA, Kenichi and TAKUBO, Tomohito and MAE, Yasushi and ARAI, Tatsuo}, 284 | booktitle = {The Abstracts of the international conference on advanced mechatronics: toward evolutionary fusion of IT and mechatronics: ICAM 2010.5}, 285 | title = {(SysML-based robot system design for manipulation tasks)}, 286 | year = {2010}, 287 | organization = {The Japan Society of Mechanical Engineers}, 288 | pages = {522--527}, 289 | } 290 | 291 | @InProceedings{bubeck2014bride, 292 | author = {Bubeck, Alexander and Weisshardt, Florian and Verl, Alexander}, 293 | booktitle = {ISR/Robotik 2014; 41st International Symposium on Robotics}, 294 | title = {{BRIDE - A toolchain for framework-independent development of industrial service robot applications}}, 295 | year = {2014}, 296 | organization = {VDE}, 297 | pages = {1--6}, 298 | } 299 | 300 | @Article{kumar2016rosmod, 301 | author = {Kumar, Pranav Srinivas and Emfinger, William and Karsai, Gabor and Watkins, Dexter and Gasser, Benjamin and Anilkumar, Amrutur}, 302 | journal = {Electronics}, 303 | title = {{ROSMOD: a toolsuite for modeling, generating, deploying, and managing distributed real-time component-based software using ROS}}, 304 | year = {2016}, 305 | number = {3}, 306 | pages = {53}, 307 | volume = {5}, 308 | publisher = {Multidisciplinary Digital Publishing Institute}, 309 | } 310 | 311 | @InProceedings{bardaro2017aadl, 312 | author = {Bardaro, Gianluca and Semprebon, Andrea and Matteucci, Matteo}, 313 | booktitle = {IRC 2017-IEEE International Conference on Robotic Computing}, 314 | title = {{AADL for robotics: a general approach for system architecture modeling and code generation}}, 315 | year = {2017}, 316 | } 317 | 318 | @InProceedings{awad2016ros, 319 | author = {Awad, Ramez and Heppner, Georg and Roennau, Arne and Bordignon, Mirko}, 320 | booktitle = {2016 IEEE 21st international conference on emerging technologies and factory automation (ETFA)}, 321 | title = {{ROS engineering workbench based on semantically enriched app models for improved reusability}}, 322 | year = {2016}, 323 | organization = {IEEE}, 324 | pages = {1--9}, 325 | } 326 | 327 | @article{wigand2017domain, 328 | title={Domain-specific language modularization scheme applied to a multi-arm robotics use-case}, 329 | author={Wigand, Dennis Leroy and Nordmann, Arne and Dehio, Niels and Mistry, Michael and Wrede, Sebastian}, 330 | journal={Journal of Software Engineering for Robotics}, 331 | volume={8}, 332 | number={1}, 333 | year={2017} 334 | } 335 | 336 | @article{estevez2016novel, 337 | title={A novel model-driven approach to support development cycle of robotic systems}, 338 | author={Est{\'e}vez, Elisabet and S{\'a}nchez-Garc{\'\i}a, Alejandro and G{\'a}mez-Garc{\'\i}a, Javier and G{\'o}mez-Ortega, Juan and Satorres-Mart{\'\i}nez, Silvia}, 339 | journal={The International Journal of Advanced Manufacturing Technology}, 340 | volume={82}, 341 | number={1}, 342 | pages={737--751}, 343 | year={2016}, 344 | publisher={Springer} 345 | } 346 | 347 | @Article{dao2021oromacs, 348 | author = {Dao, Phong Ba}, 349 | journal = {International Journal of Control, Automation and Systems}, 350 | title = {{OROMACS: A design framework for multi-agent control system}}, 351 | year = {2021}, 352 | pages = {1--13}, 353 | publisher = {Springer}, 354 | } 355 | 356 | @article{de2021survey, 357 | title={A survey of Model Driven Engineering in robotics}, 358 | author={de Ara{\'u}jo Silva, Edson and Valentin, Eduardo and Carvalho, Jose Reginaldo Hughes and da Silva Barreto, Raimundo}, 359 | journal={Journal of Computer Languages}, 360 | pages={101021}, 361 | year={2021}, 362 | publisher={Elsevier} 363 | } 364 | 365 | @Article{requc2, 366 | author = {Soares, Michel and Vrancken, Jos and Verbraeck, Alexander}, 367 | title = {User requirements modeling and analysis of software-intensive systems}, 368 | journal = {Journal of Systems and Software}, 369 | year = {2011}, 370 | volume = {84}, 371 | pages = {328--339}, 372 | month = {February}, 373 | doi = {10.1016/j.jss.2010.10.020}, 374 | } 375 | 376 | @article{khaitan2015design, 377 | title={Design techniques and applications of cyberphysical systems: A survey}, 378 | author={Khaitan, Siddhartha Kumar and McCalley, James D}, 379 | journal={IEEE Systems Journal}, 380 | volume={9}, 381 | number={2}, 382 | pages={350--365}, 383 | year={2015}, 384 | publisher={IEEE} 385 | } 386 | 387 | @Article{przeglad_dsl, 388 | author = {Ramaswamy, Arunkumar and Monsuez, Bruno and Tapus, Adriana}, 389 | title = {Model-driven software development approaches in robotics research}, 390 | journal = {6th International Workshop on Modeling in Software Engineering, MiSE 2014 - Proceedings}, 391 | year = {2014}, 392 | month = {June}, 393 | doi = {10.1145/2593770.2593781}, 394 | isbn = {978-1-4503-2849-4}, 395 | } 396 | 397 | @Article{dennis2016smartmdsd, 398 | author = {Dennis, Stampfer and Alex, Lotz and Matthias, Lutz and Christian, Schlegel}, 399 | title = {The {SmartMDSD} Toolchain: An Integrated MDSD Workflow and Integrated Development Environment ({IDE}) for Robotics Softwaree}, 400 | journal = {Journal of Software Engineering in Robotics}, 401 | year = {2016}, 402 | volume = {7}, 403 | number = {1}, 404 | pages = {3--19}, 405 | publisher = {Universit{\`a} degli studi di Bergamo}, 406 | } 407 | 408 | @Article{mohd2014robotic, 409 | author = {Mohd, Nor Nur Safwati and Mizukawa, Makoto}, 410 | title = {Robotic services at home: An initialization system based on robots' information and user preferences in unknown environments}, 411 | journal = {International Journal of Advanced Robotic Systems}, 412 | year = {2014}, 413 | volume = {11}, 414 | number = {7}, 415 | pages = {112}, 416 | publisher = {SAGE Publications Sage UK: London, England}, 417 | } 418 | 419 | @Article{rahman2013model, 420 | author = {Rahman, Mohd Azizi Abdul and Mizukawa, Makoto}, 421 | title = {Model-based development and simulation for robotic systems with SysML, Simulink and Simscape profiles}, 422 | journal = {International Journal of Advanced Robotic Systems}, 423 | year = {2013}, 424 | volume = {10}, 425 | number = {2}, 426 | pages = {112}, 427 | publisher = {SAGE Publications Sage UK: London, England}, 428 | } 429 | 430 | @Article{JaniakCZ:2015, 431 | author = {Janiak, Mariusz and Zieliński, Cezary}, 432 | title = {Control System Architecture for the Investigation of Motion Control Algorithms on an Example of the Mobile Platform {Rex}}, 433 | journal = {Bulletin of the Polish Academy of Sciences -- Technical Sciences}, 434 | year = {2015}, 435 | volume = {63}, 436 | number = {3}, 437 | pages = {667--678}, 438 | doi = {10.1515/bpasts-2015-0078}, 439 | } 440 | 441 | @Article{guiochet2017safety, 442 | author = {Guiochet, J{\'e}r{\'e}mie and Machin, Mathilde and Waeselynck, H{\'e}l{\`e}ne}, 443 | title = {Safety-critical advanced robots: A survey}, 444 | journal = {Robotics and Autonomous Systems}, 445 | year = {2017}, 446 | volume = {94}, 447 | pages = {43--52}, 448 | publisher = {Elsevier}, 449 | } 450 | 451 | @Article{par-agent-2018, 452 | author = {Krzysztof Oprzędkiewicz and Maciej Ciurej and Maciej Garbacz}, 453 | title = {The agent, state-space model of the mobile robot}, 454 | journal = {Pomiary Automatyka Robotyka}, 455 | year = {2018}, 456 | volume = {22}, 457 | number = {229}, 458 | pages = {41--50}, 459 | month = {March}, 460 | doi = {10.14313/PAR_229/41}, 461 | keywords = {agent model, Braitenberg algorithm, design pattern, mobile robot, trajectory planning}, 462 | } 463 | 464 | @Article{graves2011using, 465 | author = {Graves, Henson and Bijan, Yvonne}, 466 | title = {{Using formal methods with SysML in aerospace design and engineering}}, 467 | journal = {Annals of Mathematics and Artificial Intelligence}, 468 | year = {2011}, 469 | volume = {63}, 470 | number = {1}, 471 | pages = {53--102}, 472 | publisher = {Springer}, 473 | } 474 | 475 | @Article{laleau2010first, 476 | author = {Laleau, R{\'e}gine and Semmak, Farida and Matoussi, Abderrahman and Petit, Dorian and Hammad, Ahmed and Tatibouet, Bruno}, 477 | title = {{A first attempt to combine SysML requirements diagrams and B}}, 478 | journal = {Innovations in Systems and Software Engineering}, 479 | year = {2010}, 480 | volume = {6}, 481 | number = {1-2}, 482 | pages = {47--54}, 483 | publisher = {Springer}, 484 | } 485 | 486 | @Article{knorreck2011tepe, 487 | author = {Knorreck, Daniel and Apvrille, Ludovic and de Saqui-Sannes, Pierre}, 488 | title = {{TEPE: a SysML language for time-constrained property modeling and formal verification}}, 489 | journal = {ACM SIGSOFT Software Engineering Notes}, 490 | year = {2011}, 491 | volume = {36}, 492 | number = {1}, 493 | pages = {1--8}, 494 | publisher = {ACM}, 495 | } 496 | 497 | @Article{chouali2011formal, 498 | author = {Chouali, Samir and Hammad, Ahmed}, 499 | title = {{Formal verification of components assembly based on SysML and interface automata}}, 500 | journal = {Innovations in Systems and Software Engineering}, 501 | year = {2011}, 502 | volume = {7}, 503 | number = {4}, 504 | pages = {265--274}, 505 | publisher = {Springer}, 506 | } 507 | 508 | @Article{stigmergic:2009, 509 | author = {Cezary Zieliński and Piotr Trojanek}, 510 | title = {Stigmergic cooperation of autonomous robots}, 511 | journal = {Journal of Mechanism and Machine Theory}, 512 | year = {2009}, 513 | volume = {44}, 514 | pages = {656--670}, 515 | month = {April}, 516 | lang = {en}, 517 | } 518 | 519 | 520 | @Article{systems7020019, 521 | AUTHOR = {Salado, Alejandro and Wach, Paul}, 522 | TITLE = {Constructing True Model-Based Requirements in SysML}, 523 | JOURNAL = {Systems}, 524 | VOLUME = {7}, 525 | YEAR = {2019}, 526 | NUMBER = {2}, 527 | ARTICLE-NUMBER = {19}, 528 | URL = {https://www.mdpi.com/2079-8954/7/2/19}, 529 | ISSN = {2079-8954}, 530 | ABSTRACT = {Some authors suggest that transitioning requirements engineering from the traditional statements in natural language with shall clauses to model-based requirements within a Model-Based Systems Engineering (MBSE) environment could improve communication, requirements traceability, and system decomposition, among others. Requirement elements in the Systems Modeling Language (SysML) fail to fulfill this objective, as they are really a textual requirement in natural language as a model element. Current efforts to directly leverage behavioral and structural models of the system lack an overarching theoretical framework with which to assess the adequacy of how those models are used to capture requirements. This paper presents an approach to construct true model-based requirements in SysML. The presented approach leverages some of SysML’s behavioral and structural models and diagrams, with specific construction rules derived from Wymore’s mathematical framework for MBSE and taxonomies of requirements and interfaces. The central proposition of the approach is that every requirement can be modeled as an input/output transformation. Examples are used to show how attributes traditionally thought of as non-functional requirements can be captured, with higher precision, as functional transformations.}, 531 | DOI = {10.3390/systems7020019} 532 | } 533 | 534 | @Article{app9030376, 535 | AUTHOR = {Pietrusewicz, Krzysztof}, 536 | TITLE = {Metamodelling for Design of Mechatronic and Cyber-Physical Systems}, 537 | JOURNAL = {Applied Sciences}, 538 | VOLUME = {9}, 539 | YEAR = {2019}, 540 | NUMBER = {3}, 541 | ARTICLE-NUMBER = {376}, 542 | URL = {https://www.mdpi.com/2076-3417/9/3/376}, 543 | ISSN = {2076-3417}, 544 | ABSTRACT = {The paper presents the issue of metamodeling of Domain-Specific Languages (DSL) for the purpose of designing complex mechatronics systems. Usually, one of the problems during the development of such projects is an interdisciplinary character of the team that is involved in this endeavour. The success of a complex machine project (e.g., Computer Numerically Controlled machine (CNC), loading crane, forestry crane) often depends on a proper communication between team members. The domain-specific modelling languages developed using one of the two approaches discussed in the work, lead to a machine design that can be carried out much more efficiently than with conventional approaches. Within the paper, the Meta-Object Facility (MOF) approach to metamodeling is presented; it is much more prevalent in modern modelling software tools than Graph-Object-Property-Relationship-Role (GOPRR). The main outcome of this work is the first presentation of researchML modelling language that is the result of more than twenty ambitious research and development projects. It is effectively used within new enterprises and leads to improved traceability of the project goals. It enables for fully-featured automatic code generation which is one of the main pillars of the agile management within mechatronic system design projects.}, 545 | DOI = {10.3390/app9030376} 546 | } 547 | 548 | @Article{aerospace5010010, 549 | AUTHOR = {Chhaya, Bharvi and Jafer, Shafagh and Durak, Umut}, 550 | TITLE = {Formal Verification of Simulation Scenarios in Aviation Scenario Definition Language (ASDL)}, 551 | JOURNAL = {Aerospace}, 552 | VOLUME = {5}, 553 | YEAR = {2018}, 554 | NUMBER = {1}, 555 | ARTICLE-NUMBER = {10}, 556 | URL = {https://www.mdpi.com/2226-4310/5/1/10}, 557 | ISSN = {2226-4310}, 558 | ABSTRACT = {Formal methods offer well-defined means for mathematical verification of the functional specifications of software systems. For model-based engineering, model checking is a verification technique that explores all possible system states. The Aviation Scenario Definition Language is a domain-specific language designed based on a scenario development process from a model-driven engineering perspective. It aims at providing a well-structured definition language to specify departure, en route, re-route, and landing scenarios. This paper uses statecharts and a model checker for the verification of each scenario generated and uses examples to demonstrate conformance to the rules established in the statecharts to verify the logic of all future scenarios.}, 559 | DOI = {10.3390/aerospace5010010} 560 | } 561 | 562 | 563 | @Article{machines7020042, 564 | AUTHOR = {Rivera, Zandra B. and De Simone, Marco C. and Guida, Domenico}, 565 | TITLE = {Unmanned Ground Vehicle Modelling in Gazebo/ROS-Based Environments}, 566 | JOURNAL = {Machines}, 567 | VOLUME = {7}, 568 | YEAR = {2019}, 569 | NUMBER = {2}, 570 | ARTICLE-NUMBER = {42}, 571 | URL = {https://www.mdpi.com/2075-1702/7/2/42}, 572 | ISSN = {2075-1702}, 573 | ABSTRACT = {The fusion of different technologies is the base of the fourth industrial revolution. Companies are encouraged to integrate new tools in their production processes in order to improve working conditions and increase productivity and production quality. The integration between information, communication technologies and industrial automation can create highly flexible production models for products and services that can be customized through real-time interactions between consumer, production and machinery throughout the production process. The future of production, therefore, depends on increasingly intelligent machinery through the use of digital systems. The key elements for future integrated devices are intelligent systems and machines, based on human–machine interaction and information sharing. To do so, the implementation of shared languages that allow different systems to dialogue in a simple way is necessary. In this perspective, the use of advanced prototyping tools like Open-Source programming systems, the development of more detailed multibody models through the use of CAD software and the use of self-learning techniques will allow for developing a new class of machines capable of revolutionizing our companies. The purpose of this paper is to present a waypoint navigation activity of a custom Wheeled Mobile Robot (WMR) in an available simulated 3D indoor environment by using the Gazebo simulator. Gazebo was developed in 2002 at the University of Southern California. The idea was to create a high-fidelity simulator that gave the possibility to simulate robots in outdoor environments under various conditions. In particular, we wanted to test the high-performance physics Open Dynamics Engine (ODE) and the sensors feature present in Gazebo for prototype development activities. This choice was made for the possibility of emulating not only the system under analysis, but also the world in which the robot will operate. Furthermore, the integration tools available with Solidworks and Matlab-Simulink, well known commercial platforms of modelling and robotics control respectively, are also explored.}, 574 | DOI = {10.3390/machines7020042} 575 | } 576 | 577 | @Article{hexel-jint2019, 578 | author = {Zieliński, Cezary and Figat, Maksym and Hexel, Ren{\'e}}, 579 | title = {Communication Within Multi-FSM Based Robotic Systems}, 580 | journal = {Journal of Intelligent {\&} Robotic Systems}, 581 | year = {2019}, 582 | volume = {93}, 583 | number = {3}, 584 | pages = {787--805}, 585 | issn = {1573-0409}, 586 | doi = {https://doi.org/10.1007/s10846-018-0869-6}, 587 | } 588 | 589 | @article{Luckcuck:2019, 590 | author = {Luckcuck, Matt and Farrell, Marie and Dennis, Louise A. and Dixon, Clare and Fisher, Michael}, 591 | title = {Formal Specification and Verification of Autonomous Robotic Systems: A Survey}, 592 | journal = {ACM Comput. Surv.}, 593 | issue_date = {October 2019}, 594 | volume = {52}, 595 | number = {5}, 596 | month = {September}, 597 | year = {2019}, 598 | issn = {0360-0300}, 599 | pages = {100:1--100:41}, 600 | articleno = {100}, 601 | numpages = {41}, 602 | doi = {10.1145/3342355}, 603 | acmid = {3342355}, 604 | publisher = {ACM}, 605 | address = {New York, NY, USA}, 606 | keywords = {Formal verification, autonomous robotics, formal methods, formal specification}, 607 | } 608 | 609 | @article{Stenmark2014, 610 | author = {Stenmark, Maj and Malec, Jacek}, 611 | year = {2014}, 612 | month = {09}, 613 | pages = {}, 614 | title = {Knowledge-based instruction of manipulation tasks for industrial robotics}, 615 | volume = {33}, 616 | journal = {Robotics and Computer-Integrated Manufacturing}, 617 | doi = {10.1016/j.rcim.2014.07.004} 618 | } 619 | 620 | @ARTICLE{Kornuta:13_irs, 621 | author = {Tomasz Kornuta and Cezary Zieliński}, 622 | title = {Robot control system design exemplified by multi-camera visual servoing}, 623 | journal = {Journal of Intelligent and Robotic Systems}, 624 | year = {2013}, 625 | volume = {77}, 626 | pages = {499--524}, 627 | number = {3--4}, 628 | doi = {10.1007/s10846-013-9883-x} 629 | } 630 | 631 | @Article{robosherlock, 632 | author = {Moritz Tenorth and Michael Beetz}, 633 | journal = {The International Journal of Robotics Research}, 634 | title = {KnowRob: A knowledge processing infrastructure for cognition-enabled robots}, 635 | year = {2013}, 636 | number = {5}, 637 | pages = {566-590}, 638 | volume = {32}, 639 | abstract = {Autonomous service robots will have to understand vaguely described tasks, such as “set the table” or “clean up”. Performing such tasks as intended requires robots to fully, precisely, and appropriately parameterize their low-level control programs. We propose knowledge processing as a computational resource for enabling robots to bridge the gap between vague task descriptions and the detailed information needed to actually perform those tasks in the intended way. In this article, we introduce the KnowRobknowledge processing system that is specifically designed to provide autonomous robots with the knowledge needed for performing everyday manipulation tasks. The system allows the realization of “virtual knowledge bases”: collections of knowledge pieces that are not explicitly represented but computed on demand from the robot’s internal data structures, its perception system, or external sources of information. This article gives an overview of the different kinds of knowledge, the different inference mechanisms, and interfaces for acquiring knowledge from external sources, such as the robot’s perception system, observations of human activities, Web sites on the Internet, as well as Web-based knowledge bases for information exchange between robots. We evaluate the system’s scalability and present different integrated experiments that show its versatility and comprehensiveness.}, 640 | doi = {10.1177/0278364913481635} 641 | } 642 | 643 | @ARTICLE{Brooks:1991_intelligence, 644 | author = {Rodney A. Brooks}, 645 | title = {Intelligence without reason}, 646 | journal = {Artificial intelligence: critical concepts}, 647 | year = {1991}, 648 | volume = {3}, 649 | pages = {107--163}, 650 | owner = {tkornuta}, 651 | timestamp = {2012.11.06} 652 | } 653 | 654 | @ARTICLE{BrooksScience:1991, 655 | author = {Brooks, R. A.}, 656 | title = {New approaches to robotics}, 657 | journal = {Science}, 658 | year = {1991}, 659 | volume = {253}, 660 | pages = {1227–-1232}, 661 | month = {September}, 662 | doi = {10.1126/science.253.5025.1227} 663 | } 664 | 665 | @article{CALICIOTTI20187, 666 | title = "An adaptive truncation criterion, for linesearch-based truncated Newton methods in large scale nonconvex optimization", 667 | journal = "Operations Research Letters", 668 | volume = "46", 669 | number = "1", 670 | pages = "7 - 12", 671 | year = "2018", 672 | issn = "0167-6377", 673 | doi = "https://doi.org/10.1016/j.orl.2017.10.014", 674 | author = "Andrea Caliciotti and Giovanni Fasano and Stephen G. Nash and Massimo Roma", 675 | keywords = "Large scale nonconvex optimization, Linesearch-based truncated Newton methods, Krylov subspace methods, Adaptive truncation criterion", 676 | abstract = "Starting from the paper by Nash and Sofer (1990), we propose a heuristic adaptive truncation criterion for the inner iterations within linesearch-based truncated Newton methods. Our aim is to possibly avoid “over-solving” of the Newton equation, based on a comparison between the predicted reduction of the objective function and the actual reduction obtained. A numerical experience on unconstrained optimization problems highlights a satisfactory effectiveness and robustness of the adaptive criterion proposed, when a residual-based truncation criterion is selected." 677 | } 678 | 679 | @article{CALICIOTTI2018246, 680 | title = "Data and performance profiles applying an adaptive truncation criterion, within linesearch-based truncated Newton methods, in large scale nonconvex optimization", 681 | journal = "Data in Brief", 682 | volume = "17", 683 | pages = "246 - 255", 684 | year = "2018", 685 | issn = "2352-3409", 686 | doi = "https://doi.org/10.1016/j.dib.2018.01.012", 687 | author = "Andrea Caliciotti and Giovanni Fasano and Stephen G. Nash and Massimo Roma", 688 | abstract = "In this paper, we report data and experiments related to the research article entitled “An adaptive truncation criterion, for linesearch-based truncated Newton methods in large scale nonconvex optimization” by Caliciotti et al. [1]. In particular, in Caliciotti et al. [1], large scale unconstrained optimization problems are considered by applying linesearch-based truncated Newton methods. In this framework, a key point is the reduction of the number of inner iterations needed, at each outer iteration, to approximately solving the Newton equation. A novel adaptive truncation criterion is introduced in Caliciotti et al. [1] to this aim. Here, we report the details concerning numerical experiences over a commonly used test set, namely CUTEst (Gould et al., 2015) [2]. Moreover, comparisons are reported in terms of performance profiles (Dolan and Moré, 2002) [3], adopting different parameters settings. Finally, our linesearch-based scheme is compared with a renowned trust region method, namely TRON (Lin and Moré, 1999) [4]." 689 | } 690 | 691 | @Book{Jacobson:2005_uml, 692 | title = {{The Unified Modeling Language} Reference manual, Second Edition}, 693 | publisher = {MA: Addison Wesley}, 694 | year = {2005}, 695 | author = {Booch, Grady and Jacobson, Ivar and Rumbaugh, James}, 696 | owner = {max}, 697 | timestamp = {2015.02.27}, 698 | } 699 | 700 | @Book{Friedenthal:2015, 701 | title = {A~practical guide to {SysML}: The systems modeling language. 3rd ed.}, 702 | publisher = {Elsevier, Morgan Kaufmann}, 703 | year = {2015}, 704 | author = {Friedenthal, Sanford and Moore, Alan and Steiner, Rick}, 705 | } 706 | 707 | @BOOK{UML:2005, 708 | title = {UML 2.0 in a~Nutshell}, 709 | publisher = {O'Reilly}, 710 | year = {2005}, 711 | author = {Pilone, D. and Pitman, N.} 712 | } 713 | 714 | @Book{steels2018artificial, 715 | title = {The artificial life route to artificial intelligence: Building embodied, situated agents}, 716 | publisher = {Routledge}, 717 | year = {2018}, 718 | author = {Steels, Luc and Brooks, Rodney}, 719 | } 720 | 721 | @BOOK{Russell:95, 722 | title = {Artificial Intelligence: A~Modern Approach}, 723 | publisher = {Prentice Hall}, 724 | year = {1995}, 725 | author = {S. Russell and P. Norvig}, 726 | address = {Upper Saddle River, N.J.}, 727 | lang = {en}, 728 | owner = {Szynkiewicz}, 729 | timestamp = {2010.10.11} 730 | } 731 | 732 | @BOOK{Arkin:98, 733 | title = {Behavior-Based Robotics}, 734 | publisher = {MIT Press}, 735 | year = {1998}, 736 | author = {Ronald C. Arkin}, 737 | lang = {en} 738 | } 739 | 740 | @Inbook{Rovida2017, 741 | author="Rovida, Francesco 742 | and Crosby, Matthew 743 | and Holz, Dirk 744 | and Polydoros, Athanasios S. 745 | and Gro{\ss}mann, Bjarne 746 | and Petrick, Ronald P. A. 747 | and Kr{\"u}ger, Volker", 748 | editor="Koubaa, Anis", 749 | title="SkiROS---A Skill-Based Robot Control Platform on Top of ROS", 750 | bookTitle="Robot Operating System (ROS): The Complete Reference (Volume 2)", 751 | year="2017", 752 | publisher="Springer International Publishing", 753 | address="Cham", 754 | pages="121--160", 755 | abstract="The development of cognitive robots in ROS still lacks the support of some key components: a knowledge integration framework and a framework for autonomous mission execution. In this research chapter, we will discuss our skill-based platform SkiROS, that was developed on top of ROS in order to organize robot knowledge and its behavior. We will show how SkiROS offers the possibility to integrate different functionalities in form of skill `apps' and how SkiROS offers services for integrating these skill-apps into a consistent workspace. Furthermore, we will show how these skill-apps can be automatically executed based on autonomous, goal-directed task planning. SkiROS helps the developers to program and port their high-level code over a heterogeneous range of robots, meanwhile the minimal Graphical User Interface (GUI) allows non-expert users to start and supervise the execution. As an application example, we present how SkiROS was used to vertically integrate a robot into the manufacturing system of PSA Peugeot-Citro{\"e}n. We will discuss the characteristics of the SkiROS architecture which makes it not limited to the automotive industry but flexible enough to be used in other application areas as well. SkiROS has been developed on Ubuntu 14.04 LTS and ROS indigo and it can be downloaded at https://github.com/frovida/skiros. A demonstration video is also available at https://youtu.be/mo7UbwXW5W0.", 756 | isbn="978-3-319-54927-9", 757 | doi="10.1007/978-3-319-54927-9_4" 758 | } 759 | 760 | @InCollection{szlenk2011metamodel, 761 | author = {Szlenk, Marcin}, 762 | booktitle = {Dependable Computer Systems}, 763 | publisher = {Springer}, 764 | title = {{Metamodel and UML profile for functional programming languages}}, 765 | year = {2011}, 766 | pages = {233--242}, 767 | } 768 | 769 | @InCollection{Zie:06Springer, 770 | author = {Cezary Zieliński}, 771 | title = {Transition-Function Based Approach to Structuring Robot Control Software}, 772 | booktitle = {Robot Motion and Control}, 773 | publisher = {Springer-Verlag}, 774 | year = {2006}, 775 | editor = {Krzysztof Kozłowski}, 776 | volume = {335}, 777 | series = {Lecture Notes in Control and Information Sciences}, 778 | pages = {265--286}, 779 | abstract = {The presented transition function based formalism can be applied to 780 | specifying programming frameworks for robot controllers executing 781 | very diverse tasks. The paper deals with systems consisting of multiple 782 | embodied agents, influencing the environment through effectors, gathering 783 | information from the environment through sensors and communicating 784 | with other agents through communication channels. The presented code 785 | patterns pertain to agents with the following characteristics: deterministic 786 | or indeterministic, crisp or fuzzy, behavioral or deliberative. The 787 | formalism was instrumental in the design of MRROC++ robot programming 788 | framework, which has been used for producing controllers of single 789 | and two manipulator systems performing diverse tasks. The formalism 790 | introduces rigor into the discussion of the structure of embodied 791 | agent controllers. It is used as the means for the specification 792 | of the functions of the components of the control system and the 793 | structure of the communication links between them. This structures 794 | the implementation of a~programming framework, and that in turn makes 795 | the coding of specific controllers much easier, both from the point 796 | of view of dealing with the hardware configuration of the system 797 | and the specific task that has to be executed.}, 798 | lang = {en}, 799 | } 800 | 801 | @incollection{Dijkstra:74, 802 | author = {Dijkstra, Edsger}, 803 | year = {1982}, 804 | pages = {60--66}, 805 | title = {On the Role Of Scientific Thought}, 806 | booktitle={Selected Writings on Computing: A Personal Perspective}, 807 | publisher = {Springer--Verlag}, 808 | doi = {10.1007/978-1-4612-5695-3_12} 809 | } 810 | 811 | @Inproceedings{requc1, 812 | author = {M. {dos Santos Soares} and J. {Vrancken}}, 813 | title = {Requirements specification and modeling through {SysML}}, 814 | booktitle = {2007 IEEE International Conference on Systems, Man and Cybernetics}, 815 | year = {2007}, 816 | pages = {1735--1740}, 817 | doi = {10.1109/ICSMC.2007.4413936}, 818 | issn = {1062-922X}, 819 | keywords = {distributed processing;formal specification;natural languages;requirements specification;requirements modeling;SysML;use case diagrams;informal descriptions;natural language;requirements representation;real time distributed system;Natural languages;Unified modeling language;Systems engineering and theory;Costs;Scalability;Safety;Hardware;Personnel;Councils;Software standards}, 820 | } 821 | 822 | @InProceedings{przeglad_dsl_3, 823 | author = {Nordmann, Arne and Hochgeschwender, Nico and Wrede, Sebastian}, 824 | title = {A Survey on Domain-Specific Languages in Robotics}, 825 | booktitle = {Simulation, Modeling, and Programming for Autonomous Robots}, 826 | year = {2014}, 827 | editor = {Brugali, Davide and Broenink, Jan F. and Kroeger, Torsten and MacDonald, Bruce A.}, 828 | pages = {195--206}, 829 | address = {Cham}, 830 | publisher = {Springer International Publishing}, 831 | abstract = {The design, simulation and programming of robotics systems is challenging as expertise from multiple domains needs to be integrated conceptually and technically. Domain-specific modeling promises an efficient and flexible concept for developing robotics applications that copes with this challenge. It allows to raise the level of abstraction through the use of specific concepts that are closer to the respective domain concerns and easier to understand and validate. Furthermore, it focuses on increasing the level of automation, e.g. through code generation, to bridge the gap between the modeling and the implementation levels and to improve the efficiency and quality of the software development process. Within this contribution, we survey the literature available on domain-specific (modeling) languages in robotics required to realize a state-of-the-art real-world example from the RoboCup@Work competition. We classify 41 publications in the field as reference for potential DSL users. Furthermore, we analyze these contributions from a DSL-engineering viewpoint and discuss quantitative and qualitative aspects such as the methods and tools used for DSL implementation as well as their documentation status and platform integration. Finally, we conclude with some recommendations for discussion in the robotics programming and simulation community based on the insights gained with this survey.}, 832 | isbn = {978-3-319-11900-7}, 833 | } 834 | 835 | @Inproceedings{robotml2, 836 | author = {S. Kchir and S. Dhouib and J. Tatibouet and B. Gradoussoff and M. Da Silva Simoes}, 837 | title = {{RobotML for industrial robots: Design and simulation of manipulation scenarios}}, 838 | booktitle = {2016 IEEE 21st International Conference on Emerging Technologies and Factory Automation (ETFA)}, 839 | year = {2016}, 840 | pages = {1--8}, 841 | month = {September}, 842 | doi = {10.1109/ETFA.2016.7733727}, 843 | keywords = {control engineering computing;industrial manipulators;production engineering computing;software engineering;RobotML;industrial robots;manipulation scenarios;robotic systems;complex systems;MDE;model-driven engineering;industrial manipulators;modelling environment;Papyrus tool;Sybot collaborative robot;Robot kinematics;Service robots;Unified modeling language;DSL;Trajectory;Mobile communication}, 844 | } 845 | 846 | @Inproceedings{bricks1, 847 | author = {Bruyninckx, Herman and Klotzb{\"u}cher, Markus and Hochgeschwender, Nico and Kraetzschmar, Gerhard and Gherardi, Luca and Brugali, Davide}, 848 | title = {The {BRICS} Component Model: A Model-Based Development Paradigm for Complex Robotics Software Systems}, 849 | year = {2013}, 850 | pages = {1758--1764}, 851 | month = {March}, 852 | doi = {10.1145/2480362.2480693}, 853 | isbn = {9781450316569}, 854 | } 855 | 856 | @InProceedings{bricks2, 857 | author = {Bischoff, Rainer and Guhl, Tim and Prassler, Erwin and Nowak, Walter and Kraetzschmar, Gerhard and Bruyninckx, Herman and Soetens, Peter and Hägele, Martin and Pott, Andreas and Breedveld, Peter and Broenink, J.F. and Brugali, Davide and Tomatis, Nicola}, 858 | title = {BRICS - Best practice in robotics}, 859 | booktitle = {ISR 2010 (41st International Symposium on Robotics) and ROBOTIK 2010 (6th German Conference on Robotics)}, 860 | year = {2010}, 861 | pages = {1-8}, 862 | month = {June}, 863 | issn = {null}, 864 | keywords = {Robustness;Robot kinematics;Software;Hardware;Service robots;Best practices}, 865 | } 866 | 867 | @Inproceedings{smartsoft, 868 | author = {Lutz, Matthias and Stampfer, Dennis and Lotz, Alex and Schlegel, Christian}, 869 | title = {Service robot control architectures for flexible and robust real-world task execution: best practices and patterns}, 870 | booktitle = {Informatik 2014}, 871 | year = {2014}, 872 | editor = {Plödereder, E. AND Grunske, L. AND Schneider, E. AND Ull, D.}, 873 | pages = {1295--1306}, 874 | address = {Bonn}, 875 | publisher = {Gesellschaft für Informatik e.V.}, 876 | } 877 | 878 | @InProceedings{bruyninckx2001open, 879 | author = {Herman Bruyninckx}, 880 | title = {Open robot control software: The {OROCOS} project}, 881 | booktitle = {International Conference on Robotics and Automation (ICRA)}, 882 | year = {2001}, 883 | volume = {3}, 884 | pages = {2523--2528}, 885 | organization = {IEEE}, 886 | } 887 | 888 | @InProceedings{quigley2009ros, 889 | author = {Quigley, Morgan and Conley, Ken and Gerkey, Brian and Faust, Josh and Foote, Tully and Leibs, Jeremy and Wheeler, Rob and Ng, Andrew Y}, 890 | title = {{ROS: an open-source Robot Operating System}}, 891 | booktitle = {ICRA workshop on open source software}, 892 | year = {2009}, 893 | volume = {3}, 894 | number = {3.2}, 895 | } 896 | 897 | @InProceedings{Baillie:07, 898 | author = {J.-C. Baillie}, 899 | title = {Design Principles for a~Universal Robotic Software Platform and Application to {URBI}}, 900 | booktitle = {{IEEE ICRA} 2007 Workshop on Software Development and Integration in Robotics (SDIR-II)}, 901 | year = {2007}, 902 | publisher = {{IEEE Robotics and Automation Society}}, 903 | url = {http://robotics.unibg.it/tcsoft/sdir2007/papers/poster-p1-Baillie.pdf}, 904 | } 905 | 906 | @InProceedings{gruyer2006sivic, 907 | author = {Gruyer, Dominique and Royere, C and du Lac, Nicolas and Michel, G and Blosseville, JM}, 908 | title = {{SiVIC and RTMaps, interconnected platforms for the conception and the evaluation of driving assistance systems}}, 909 | booktitle = {Proceedings of the its world congress}, 910 | year = {2006}, 911 | volume = {10}, 912 | } 913 | 914 | @InProceedings{tessier2006real, 915 | author = {Tessier, C{\'e}dric and Cariou, Christophe and Debain, Christophe and Chausse, Frederic and Chapuis, Roland and Rousset, Christophe}, 916 | title = {A real-time, multi-sensor architecture for fusion of delayed observations: application to vehicle localization}, 917 | booktitle = {Intelligent Transportation Systems Conference, 2006. ITSC'06. IEEE}, 918 | year = {2006}, 919 | pages = {1316--1321}, 920 | organization = {IEEE}, 921 | } 922 | 923 | @Inproceedings{echeverria2011modular, 924 | author = {Echeverria, Gilberto and Lassabe, Nicolas and Degroote, Arnaud and Lemaignan, S{\'e}verin}, 925 | title = {Modular open robots simulation engine: {Morse}}, 926 | booktitle = {IEEE International Conference on Robotics and Automation (ICRA)}, 927 | year = {2011}, 928 | pages = {46--51}, 929 | organization = {Citeseer}, 930 | } 931 | 932 | @Inproceedings{stanczyk2016logical, 933 | author = {Sta{\'n}czyk, Bart{\l}omiej and Kurnicki, Adam and Arent, Krzysztof}, 934 | title = {Logical architecture of medical telediagnostic robotic system}, 935 | booktitle = {21st International Conference on Methods and Models in Automation and Robotics (MMAR)}, 936 | year = {2016}, 937 | pages = {200--205}, 938 | organization = {IEEE}, 939 | } 940 | 941 | @Inproceedings{ZielinskiMMAR2014, 942 | author = {Cezary Zieliński and Tomasz Kornuta and Tomasz Winiarski}, 943 | title = {A~Systematic Method of Designing Control Systems for Service and Field Robots}, 944 | booktitle = {19-th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR}, 945 | year = {2014}, 946 | pages = {1--14}, 947 | publisher = {IEEE}, 948 | doi = {10.1109/MMAR.2014.6957317}, 949 | grant = {GrantRobREx}, 950 | owner = {tkornuta}, 951 | timestamp = {2014.07.17}, 952 | twiki = {article}, 953 | } 954 | 955 | @InProceedings{mmar_dudek_distributed-2016, 956 | author = {Wojciech Dudek and Konrad Banachowicz and Wojciech Szynkiewicz and Tomasz Winiarski}, 957 | title = {{Distributed NAO robot navigation system in the hazard detection application}}, 958 | booktitle = {21th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2016}, 959 | year = {2016}, 960 | pages = {942--947}, 961 | publisher = {IEEE}, 962 | doi = {10.1109/MMAR.2016.7575264}, 963 | } 964 | 965 | @Inproceedings{essalmi2006graphical, 966 | author = {Essalmi, Fathi and Ayed, Leila Jemni Ben}, 967 | title = {Graphical {UML} view from extended backus-naur form grammars}, 968 | booktitle = {Sixth International Conference on Advanced Learning Technologies}, 969 | year = {2006}, 970 | pages = {544--546}, 971 | organization = {IEEE}, 972 | } 973 | 974 | @Inproceedings{dudek:2016-automation, 975 | author = {Wojciech Dudek and Wojciech Szynkiewicz and Tomasz Winiarski}, 976 | title = {Nao Robot Navigation System Structure Development in an Agent-Based Architecture of the {RAPP} Platform}, 977 | booktitle = {Recent Advances in Automation, Robotics and Measuring Techniques}, 978 | year = {2016}, 979 | editor = {Roman Szewczyk and Cezary Zieliński and Małgorzata Kaliczyńska}, 980 | volume = {440}, 981 | series = {Advances in Intelligent Systems and Computing (AISC)}, 982 | pages = {623--633}, 983 | publisher = {Springer}, 984 | doi = {10.1007/978-3-319-29357-8\_54}, 985 | grant = {fp7rapp}, 986 | owner = {tkornut}, 987 | timestamp = {2015.10.30}, 988 | twiki = {article}, 989 | } 990 | 991 | @InProceedings{mmar_winiarski_multibehavioral-2016, 992 | author = {Tomasz Winiarski and Konrad Banachowicz and Michał Walęcki and Jonathan Bohren}, 993 | title = {{Multibehavioral position–force manipulator controller}}, 994 | booktitle = {21th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2016}, 995 | year = {2016}, 996 | pages = {651--656}, 997 | publisher = {IEEE}, 998 | doi = {10.1109/MMAR.2016.7575213}, 999 | } 1000 | 1001 | @InProceedings{whitney1969extended, 1002 | author = {Whitney, Gordon}, 1003 | title = {{An extended BNF for specifying the syntax of declarations}}, 1004 | booktitle = {Proceedings of the May 14-16, 1969, spring joint computer conference}, 1005 | year = {1969}, 1006 | pages = {801--812}, 1007 | organization = {ACM}, 1008 | } 1009 | 1010 | @InProceedings{mmar_seredynski_graph-2016, 1011 | author = {Dawid Seredyński and Konrad Banachowicz and Tomasz Winiarski}, 1012 | title = {{Graph–based potential field for the end–effector control within the torque–based task hierarchy}}, 1013 | booktitle = {21th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2016}, 1014 | year = {2016}, 1015 | pages = {645--650}, 1016 | publisher = {IEEE}, 1017 | doi = {10.1109/MMAR.2016.7575212}, 1018 | } 1019 | 1020 | @InProceedings{mmar_seredynski_control-2016, 1021 | author = {Dawid Seredyński and Maciej Stefańczyk and Konrad Banachowicz and Bartosz Świstak and Vitalii Kutia and Tomasz Winiarski}, 1022 | title = {{Control system design procedure of a~mobile robot with various modes of locomotion}}, 1023 | booktitle = {21th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2016}, 1024 | year = {2016}, 1025 | pages = {490--495}, 1026 | publisher = {IEEE}, 1027 | doi = {10.1109/MMAR.2016.7575184}, 1028 | } 1029 | 1030 | @Inproceedings{bouabana2012formal, 1031 | author = {Bouabana-Tebibel, Thouraya and Rubin, Stuart H and Bennama, Miloud}, 1032 | title = {{Formal modeling with SysML}}, 1033 | booktitle = {2012 IEEE 13th International Conference on Information Reuse \& Integration (IRI)}, 1034 | year = {2012}, 1035 | pages = {340--347}, 1036 | organization = {IEEE}, 1037 | } 1038 | 1039 | @Inproceedings{mmar_winiarski_automated-2016, 1040 | author = {Tomasz Winiarski and Włodzimierz Kasprzak and Maciej Stefańczyk and Michał Walęcki}, 1041 | title = {{Automated inspection of door parts based on fuzzy recognition system}}, 1042 | booktitle = {21th IEEE International Conference on Methods and Models in Automation and Robotics, MMAR'2016}, 1043 | year = {2016}, 1044 | pages = {478--483}, 1045 | publisher = {IEEE}, 1046 | doi = {10.1109/MMAR.2016.7575182}, 1047 | } 1048 | 1049 | @Inproceedings{Zielinski:2014_IS_ontology_short, 1050 | author = {Cezary Zieliński and Tomasz Kornuta}, 1051 | title = {An Object-Based Robot Ontology}, 1052 | year = {2015}, 1053 | volume = {323}, 1054 | series = {Advances in Intelligent Systems and Computing (AISC)}, 1055 | pages = {3--14}, 1056 | publisher = {Springer}, 1057 | doi = {10.1007/978-3-319-11310-4_1}, 1058 | grant = {GrantRobREx}, 1059 | isbn = {978-3-319-11309-8}, 1060 | owner = {tkornuta}, 1061 | timestamp = {2014.05.28}, 1062 | twiki = {inbook}, 1063 | } 1064 | 1065 | @Inproceedings{Figat-icra2019, 1066 | author = {Figat, Maksym and Zieliński, Cezary}, 1067 | title = {Methodology of Designing Multi-agent Robot Control Systems Utilising Hierarchical Petri Nets}, 1068 | booktitle = {The 2019 International Conference on Robotics and Automation (ICRA), Canada, Montreal}, 1069 | year = {2019}, 1070 | pages = {3363--3369}, 1071 | } 1072 | 1073 | @Inproceedings{ding2010approach, 1074 | author = {Ding, Song and Tang, Sheng-Qun}, 1075 | title = {{An approach for formal representation of SysML block diagram with description logic SHIOQ (D)}}, 1076 | booktitle = {2010 2nd International Conference on Industrial and Information Systems}, 1077 | year = {2010}, 1078 | volume = {2}, 1079 | pages = {259--261}, 1080 | organization = {IEEE}, 1081 | } 1082 | 1083 | @InProceedings{Dudek-multitasking-romoco-2019, 1084 | author = {Wojciech Dudek and Maciej Węgierek and Jaros∤aw Karwowski and Wojciech Szynkiewicz and Tomasz Winiarski}, 1085 | title = {Task harmonisation for a single--task robot controller}, 1086 | booktitle = {12th International Workshop on Robot Motion and Control (RoMoCo)}, 1087 | year = {2019}, 1088 | editor = {K.~Kozłowski}, 1089 | pages = {86--91}, 1090 | organization = {IEEE}, 1091 | abstract = {The technical capabilities of robots and their 1092 | increased versatility require a single robot to be able to perform 1093 | a wide array of complex tasks. What more, when performing 1094 | a task, it may be asked to carry out another one. Switching 1095 | between different tasks is a known problem in engineering, 1096 | however, robots, compared to programs operating in a virtual 1097 | space, are unique as they must follow laws of physics. In this 1098 | work, we introduce a method for harmonising service robot 1099 | tasks being managed by finite state machines. The method 1100 | allows for the handling of safe suspend and resume procedures 1101 | for a complex task. Additionally, we consider a case when 1102 | the robot can not switch the current task to another at any 1103 | time. The method was implemented and verified by conducting 1104 | multiple interruptions of one task by another one. The tasks 1105 | during the verification were being performed in simulation by 1106 | a TIAGo robot.}, 1107 | doi = {10.1109/RoMoCo.2019.8787385}, 1108 | } 1109 | 1110 | @Inproceedings{Zielinski:2015_RoMoCo, 1111 | author = {Zieliński, C. and Szynkiewicz, W. and Figat, M. and Szlenk, M. and Kornuta, T. and Kasprzak, W. and Stefańczyk, M. and Zielińska, T. and Figat, J.}, 1112 | title = {Reconfigurable control architecture for exploratory robots}, 1113 | booktitle = {10th International Workshop on Robot Motion and Control (RoMoCo)}, 1114 | year = {2015}, 1115 | editor = {Kozłowski, K.}, 1116 | pages = {130--135}, 1117 | organization = {IEEE}, 1118 | conference = {romoco15}, 1119 | doi = {10.1109/RoMoCo.2015.7219724}, 1120 | } 1121 | 1122 | @InProceedings{wujek:automation-2016, 1123 | author = {Anna Wujek and Tomasz Winiarski}, 1124 | title = {{Automated Drawing Recognition and Reproduction with a~Multisensory Robotic Manipulation System}}, 1125 | booktitle = {Recent Advances in Automation, Robotics and Measuring Techniques}, 1126 | year = {2016}, 1127 | editor = {Roman Szewczyk and Cezary Zieliński and Małgorzata Kaliczyńska}, 1128 | volume = {440}, 1129 | series = {Advances in Intelligent Systems and Computing (AISC)}, 1130 | pages = {423-433}, 1131 | publisher = {Springer}, 1132 | doi = {10.1007/978-3-319-29357-8_38}, 1133 | grant = {GrantNCNSonata3}, 1134 | owner = {tkornut}, 1135 | timestamp = {2015.10.30}, 1136 | twiki = {article}, 1137 | } 1138 | 1139 | @InProceedings{Seredynski-fabric-romoco-2019, 1140 | author = {Dawid Seredyński and Tomasz Winiarski and Cezary Zieliński}, 1141 | booktitle = {12th International Workshop on Robot Motion and Control (RoMoCo)}, 1142 | title = {{FABRIC: Framework for Agent-Based Robot Control Systems}}, 1143 | year = {2019}, 1144 | editor = {K.~Kozłowski}, 1145 | organization = {IEEE}, 1146 | pages = {215--222}, 1147 | doi = {10.1109/RoMoCo.2019.8787370}, 1148 | } 1149 | 1150 | @InProceedings{ontologytodsl, 1151 | author="Lortal, Ga{\"e}lle 1152 | and Dhouib, Saadia 1153 | and G{\'e}rard, S{\'e}bastien", 1154 | editor="Dingel, Juergen 1155 | and Solberg, Arnor", 1156 | title="Integrating Ontological Domain Knowledge into a Robotic DSL", 1157 | booktitle="Models in Software Engineering", 1158 | year="2011", 1159 | publisher="Springer Berlin Heidelberg", 1160 | address="Berlin, Heidelberg", 1161 | pages="401--414", 1162 | abstract="Coming from the Artificial Intelligence (AI) and Semantic Web (SW) circles, ontologies are used mainly to represent domains. The Model Driven Engineering (MDE) field gave birth to Domain Specific Languages to represent a particular technical domain. Abstracting from their uses, we consider as many others researchers that ontologies and models are closer than their original fields could get to think. Furthermore, their building or development are facing the same problems. They are costly and need experts' interviews in order to grasp specific knowledge and structure it. Likewise, ontologies and DSL can benefit from each other domains in reusing construction methodologies and even reusing knowledge modelled in another format. In this paper we first present the ontologies and DSL definition we use and some methodologies of development enabling the reuse of knowledge (as alignment, fusion). We then present how we propose to reuse the knowledge of a robotic ontology to develop robotic DSLs within the PROTEUS project in order to inject ready-made domain information to the DSL.", 1163 | isbn="978-3-642-21210-9" 1164 | } 1165 | 1166 | @inproceedings{Nordmann2016ASO, 1167 | title={A Survey on Domain-specific Modeling and Languages in Robotics}, 1168 | author={Arne Nordmann and Nico Hochgeschwender and Dennis Leroy Wigand and Sebastian Wrede}, 1169 | year={2016} 1170 | } 1171 | 1172 | @InProceedings{zielinski-kka:2017, 1173 | author = {Zieliński, C. and Winiarski, T. and Kornuta, T.}, 1174 | title = {Agent-Based Structures of Robot Systems}, 1175 | booktitle = {Trends in Advanced Intelligent Control, Optimization and Automation}, 1176 | year = {2017}, 1177 | editor = {Kacprzyk, J. and et al}, 1178 | volume = {577}, 1179 | series = {Advances in Intelligent Systems and Computing}, 1180 | pages = {493--502}, 1181 | doi = {10.1007/978-3-319-60699-6\_48}, 1182 | } 1183 | 1184 | @inproceedings{malavolta2020you, 1185 | title={How do you architect your robots? State of the practice and guidelines for {ROS}-based systems}, 1186 | author={Malavolta, Ivano and Lewis, Grace and Schmerl, Bradley and Lago, Patricia and Garlan, David}, 1187 | booktitle={2020 IEEE/ACM 42nd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)}, 1188 | pages={31--40}, 1189 | year={2020}, 1190 | organization={IEEE} 1191 | } 1192 | 1193 | 1194 | @InProceedings{bruyninckx2002orocos, 1195 | author = {Bruyninckx, Herman}, 1196 | booktitle = {Proceedings of IEEE International Conference on Robotics and Automation}, 1197 | title = {{OROCOS: design and implementation of a robot control software framework}}, 1198 | year = {2002}, 1199 | organization = {Citeseer}, 1200 | } 1201 | 1202 | @InProceedings{seredynski2016fast-short, 1203 | author = {Dawid Seredyński and Wojciech Szynkiewicz}, 1204 | title = {{Fast Grasp Learning for Novel Objects}}, 1205 | booktitle = {Recent Advances in Automation, Robotics and Measuring Techniques}, 1206 | year = {2016}, 1207 | volume = {440}, 1208 | series = {Advances in Intelligent Systems and Computing (AISC)}, 1209 | pages = {681-692}, 1210 | publisher = {Springer}, 1211 | doi = {10.1007/978-3-319-29357-8_59}, 1212 | timestamp = {2015.10.30}, 1213 | } 1214 | 1215 | @InProceedings{seredynski2015grasp, 1216 | author = {Seredyński, Dawid and Winiarski, Tomasz and Banachowicz, Konrad and Zieliński, Cezary}, 1217 | title = {Grasp planning taking into account the external wrenches acting on the grasped object}, 1218 | booktitle = {Robot Motion and Control (RoMoCo), 10th International Workshop on}, 1219 | year = {2015}, 1220 | pages = {40--45}, 1221 | organization = {IEEE}, 1222 | doi = {10.1109/RoMoCo.2015.7219711}, 1223 | } 1224 | 1225 | @INPROCEEDINGS{Kunze2012, 1226 | author={L. {Kunze} and M. {Beetz} and M. {Saito} and H. {Azuma} and K. {Okada} and M. {Inaba}}, 1227 | booktitle={2012 IEEE International Conference on Robotics and Automation}, 1228 | title={Searching objects in large-scale indoor environments: A decision-theoretic approach}, 1229 | year={2012}, 1230 | volume={}, 1231 | number={}, 1232 | pages={4385-4390}, 1233 | keywords={decision theory;mobile robots;probability;large-scale indoor environment;mobile robot;manipulation task;task-related object;object search;decision-theoretic approach;probabilistic environment model;object location;robot system;fetch-and-delivery task;multilevel building;Robots;Search problems;Semantics;Elevators;Probabilistic logic;Databases}, 1234 | doi={10.1109/ICRA.2012.6224965}, 1235 | ISSN={1050-4729}, 1236 | month={May}} 1237 | 1238 | @Manual{omg-sysml17, 1239 | title = {{OMG Systems Modeling Language - Version 1.7}}, 1240 | organization = {Open Management Group}, 1241 | month = {December}, 1242 | year = {2019}, 1243 | note = {Available online (accessed on 26 June 2025)}, 1244 | url = {https://www.omg.org/spec/SysML/1.7/}, 1245 | } 1246 | 1247 | @misc{smartsoftwww, 1248 | title = {The SmartSoft Approach}, 1249 | howpublished = {\url{https://wiki.servicerobotik-ulm.de/about-smartsoft:approach}}, 1250 | } 1251 | 1252 | @PhdThesis{Trojanek:phd2012, 1253 | author = {Trojanek, Piotr}, 1254 | title = {Design and implementation of robot control systems reacting to asynchronous events}, 1255 | school = {Warsaw University of Technology}, 1256 | year = {2012}, 1257 | } 1258 | 1259 | @incollection{brugali2016hyperflex, 1260 | title={Hyperflex: A model driven toolchain for designing and configuring software control systems for autonomous robots}, 1261 | author={Brugali, Davide and Gherardi, Luca}, 1262 | booktitle={Robot Operating System (ROS)}, 1263 | pages={509--534}, 1264 | year={2016}, 1265 | publisher={Springer} 1266 | } 1267 | 1268 | @InProceedings{garcia2019bootstrapping, 1269 | author = {Garcia, Nadia Hammoudeh and Deval, Ludovic and L{\"u}dtke, Mathias and Santos, Andre and Kahl, Bj{\"o}rn and Bordignon, Mirko}, 1270 | booktitle = {2019 ACM/IEEE 22nd International Conference on Model Driven Engineering Languages and Systems (MODELS)}, 1271 | title = {Bootstrapping {MDE} Development from {ROS} Manual Code-Part 2: Model Generation}, 1272 | year = {2019}, 1273 | organization = {IEEE}, 1274 | pages = {95--105}, 1275 | } 1276 | 1277 | @Article{en14206693-grav-comp, 1278 | author = {Tomasz Winiarski and Szymon Jarocki and Dawid Seredyński}, 1279 | journal = {Energies}, 1280 | title = {Grasped Object Weight Compensation in Reference to Impedance Controlled Robots}, 1281 | year = {2021}, 1282 | issn = {1996-1073}, 1283 | number = {20}, 1284 | volume = {14}, 1285 | abstract = {This paper addresses the problem of grasped object weight compensation in the one-handed manipulation of impedance controlled robots. In an exemplary identification procedure, the weight of an object and its centre of mass together with gripper kinematic configuration are identified. The procedure is based on the measurements from a 6-axis force/torque sensor mounted near the gripper. The proposed method reduces trajectory tracking errors coming from the model imprecision without compromising the main advantages of impedance control. The whole approach is applied according to the embodied agent paradigm and verified on the two-arm service robot both in simulation and on hardware. Due to the general description that follows system engineering standards, the method can be easily modified or applied to similar systems.}, 1286 | article-number = {6693}, 1287 | doi = {10.3390/en14206693}, 1288 | } 1289 | 1290 | @Article{gobillot2019design, 1291 | author = {Gobillot, Nicolas and Lesire, Charles and Doose, David}, 1292 | journal = {Journal of Intelligent \& Robotic Systems}, 1293 | title = {A design and analysis methodology for component-based real-time architectures of autonomous systems}, 1294 | year = {2019}, 1295 | number = {1}, 1296 | pages = {123--138}, 1297 | volume = {96}, 1298 | publisher = {Springer}, 1299 | } 1300 | 1301 | @InProceedings{mallet2010genom3, 1302 | author = {Mallet, Anthony and Pasteur, C{\'e}dric and Herrb, Matthieu and Lemaignan, S{\'e}verin and Ingrand, F{\'e}lix}, 1303 | booktitle = {2010 IEEE International Conference on Robotics and Automation}, 1304 | title = {GenoM3: Building middleware-independent robotic components}, 1305 | year = {2010}, 1306 | organization = {IEEE}, 1307 | pages = {4627--4632}, 1308 | } 1309 | 1310 | @Article{estevez2018art, 1311 | author = {Est{\'e}vez, E and Garc{\'\i}a, Alejandro S{\'a}nchez and Garc{\'\i}a, Javier G{\'a}mez and Ortega, Juan G{\'o}mez}, 1312 | journal = {International Journal of Advanced Manufacturing Technology}, 1313 | title = {{ART 2 ool: a model-driven framework to generate target code for robot handling tasks.}}, 1314 | year = {2018}, 1315 | volume = {97}, 1316 | } 1317 | 1318 | @InProceedings{wigand2017modularization, 1319 | author = {Wigand, Dennis Leroy and Nordmann, Arne and Goerlich, Michael and Wrede, Sebastian}, 1320 | booktitle = {2017 First IEEE International Conference on Robotic Computing (IRC)}, 1321 | title = {Modularization of domain-specific languages for extensible component-based robotic systems}, 1322 | year = {2017}, 1323 | organization = {IEEE}, 1324 | pages = {164--171}, 1325 | } 1326 | 1327 | @InProceedings{klotzbucher2011reusable, 1328 | author = {Klotzb{\"u}cher, Markus and Smits, Ruben and Bruyninckx, Herman and De Schutter, Joris}, 1329 | booktitle = {2011 IEEE/RSJ International Conference on Intelligent Robots and Systems}, 1330 | title = {Reusable hybrid force-velocity controlled motion specifications with executable domain specific languages}, 1331 | year = {2011}, 1332 | organization = {IEEE}, 1333 | pages = {4684--4689}, 1334 | } 1335 | 1336 | @PhdThesis{gherardi2013variability, 1337 | author = {Gherardi, Luca}, 1338 | school = {Ph. D. dissertation, University of Bergamo}, 1339 | title = {Variability modeling and resolution in component-based robotics systems}, 1340 | year = {2013}, 1341 | } 1342 | 1343 | @InProceedings{hochgeschwender2014declarative, 1344 | author = {Hochgeschwender, Nico and Schneider, Sven and Voos, Holger and Kraetzschmar, Gerhard K}, 1345 | booktitle = {International Conference on Simulation, Modeling, and Programming for Autonomous Robots}, 1346 | title = {Declarative specification of robot perception architectures}, 1347 | year = {2014}, 1348 | organization = {Springer}, 1349 | pages = {291--302}, 1350 | } 1351 | 1352 | @Article{Figat:2022:RAS, 1353 | author = {Maksym Figat and Cezary Zieliński}, 1354 | journal = {Robotics and Autonomous Systems}, 1355 | title = {Parameterised robotic system meta-model expressed by Hierarchical Petri nets}, 1356 | year = {2022}, 1357 | issn = {0921-8890}, 1358 | pages = {103987}, 1359 | doi = {10.1016/j.robot.2021.103987}, 1360 | } 1361 | 1362 | @Article{park2020real, 1363 | author = {Park, Jaeho and Delgado, Raimarius and Choi, Byoung Wook}, 1364 | journal = {IEEE Access}, 1365 | title = {Real--time characteristics of {ROS} 2.0 in multiagent robot systems: an empirical study}, 1366 | year = {2020}, 1367 | pages = {154637--154651}, 1368 | volume = {8}, 1369 | publisher = {IEEE}, 1370 | } 1371 | 1372 | @Article{inigo2012robotics, 1373 | author = {I{\~n}igo-Blasco, Pablo and Diaz-del-Rio, Fernando and Romero-Ternero, Ma Carmen and Cagigas-Mu{\~n}iz, Daniel and Vicente-Diaz, Saturnino}, 1374 | journal = {Robotics and Autonomous Systems}, 1375 | title = {Robotics software frameworks for multi-agent robotic systems development}, 1376 | year = {2012}, 1377 | number = {6}, 1378 | pages = {803--821}, 1379 | volume = {60}, 1380 | publisher = {Elsevier}, 1381 | } 1382 | 1383 | @Article{tsardoulias2017robotic, 1384 | author = {Tsardoulias, Emmanouil and Mitkas, Pericles}, 1385 | journal = {arXiv preprint arXiv:1711.06842}, 1386 | title = {Robotic frameworks, architectures and middleware comparison}, 1387 | year = {2017}, 1388 | } 1389 | 1390 | @InProceedings{hentout2016survey, 1391 | author = {Hentout, Abdelfetah and Maoudj, Abderraouf and Bouzouia, Brahim}, 1392 | booktitle = {2016 8th International Conference on Modelling, Identification and Control (ICMIC)}, 1393 | title = {A survey of development frameworks for robotics}, 1394 | year = {2016}, 1395 | organization = {IEEE}, 1396 | pages = {67--72}, 1397 | } 1398 | 1399 | @Article{bezivin2004search, 1400 | author = {B{\'e}zivin, Jean}, 1401 | journal = {Novatica Journal, Special Issue}, 1402 | title = {In search of a basic principle for model driven engineering}, 1403 | year = {2004}, 1404 | number = {2}, 1405 | pages = {21--24}, 1406 | volume = {5}, 1407 | publisher = {Citeseer}, 1408 | } 1409 | 1410 | @Article{schmidt2006model, 1411 | author = {Schmidt, Douglas C}, 1412 | journal = {Computer-IEEE Computer Society-}, 1413 | title = {Model-driven engineering}, 1414 | year = {2006}, 1415 | number = {2}, 1416 | pages = {25}, 1417 | volume = {39}, 1418 | publisher = {Citeseer}, 1419 | } 1420 | 1421 | @InProceedings{kent2002model, 1422 | author = {Kent, Stuart}, 1423 | booktitle = {International conference on integrated formal methods}, 1424 | title = {Model driven engineering}, 1425 | year = {2002}, 1426 | organization = {Springer}, 1427 | pages = {286--298}, 1428 | } 1429 | 1430 | @InProceedings{mnkandla2009software, 1431 | author = {Mnkandla, Ernest}, 1432 | booktitle = {AFRICON 2009}, 1433 | title = {About software engineering frameworks and methodologies}, 1434 | year = {2009}, 1435 | organization = {IEEE}, 1436 | pages = {1--5}, 1437 | } 1438 | 1439 | @Book{shehory2014agent, 1440 | author = {Shehory, Onn and Sturm, Arnon}, 1441 | publisher = {Springer}, 1442 | title = {Agent-oriented software engineering: reflections on architectures, methodologies, languages, and frameworks}, 1443 | year = {2014}, 1444 | } 1445 | 1446 | @InProceedings{wienke2012meta, 1447 | author = {Wienke, Johannes and Nordmann, Arne and Wrede, Sebastian}, 1448 | booktitle = {International Conference on Simulation, Modeling, and Programming for Autonomous Robots}, 1449 | title = {A meta-model and toolchain for improved interoperability of robotic frameworks}, 1450 | year = {2012}, 1451 | organization = {Springer}, 1452 | pages = {323--334}, 1453 | } 1454 | 1455 | @InProceedings{thale2020ros, 1456 | author = {Thale, Sumegh Pramod and Prabhu, Mihir Mangesh and Thakur, Pranjali Vinod and Kadam, Pratik}, 1457 | booktitle = {ITM Web of conferences}, 1458 | title = {{ROS} based {SLAM} implementation for autonomous navigation using {Turtlebot}}, 1459 | year = {2020}, 1460 | organization = {EDP Sciences}, 1461 | pages = {01011}, 1462 | volume = {32}, 1463 | } 1464 | 1465 | @Article{bisi2018development, 1466 | author = {Bisi, Stefano and De Luca, Luca and Shrestha, Bikash and Yang, Zhijun and Gandhi, Vaibhav}, 1467 | journal = {Robotics}, 1468 | title = {Development of an EMG-controlled mobile robot}, 1469 | year = {2018}, 1470 | number = {3}, 1471 | pages = {36}, 1472 | volume = {7}, 1473 | publisher = {MDPI}, 1474 | } 1475 | 1476 | @InProceedings{gupta2020design, 1477 | author = {Gupta, Saumya and Wang, Boyang and Yi, Won-Jae and Saniie, Jafar}, 1478 | booktitle = {2020 IEEE International Conference on Electro Information Technology (EIT)}, 1479 | title = {{Design Flow of Wireless Body Sensor Network for Human Activity Classification using Long Short-Term Memory (LSTM) Neural Network}}, 1480 | year = {2020}, 1481 | organization = {IEEE}, 1482 | pages = {166--170}, 1483 | } 1484 | 1485 | @Article{dudek2023spsysml, 1486 | author = {Dudek, Wojciech and Miguel, Narcis and Winiarski, Tomasz}, 1487 | journal = {arXiv preprint arXiv:2303.09565}, 1488 | title = {{SPSysML: A meta-model for quantitative evaluation of Simulation-Physical Systems}}, 1489 | year = {2023}, 1490 | } 1491 | 1492 | @Article{palka2022communication, 1493 | author = {Pałka, Piotr and Zieliński, Cezary and Dudek, Wojciech and Seredyński, Dawid and Szynkiewicz, Wojciech}, 1494 | journal = {Energies}, 1495 | title = {Communication-Focused Top-Down Design of Robotic Systems Based on Binary Decomposition}, 1496 | year = {2022}, 1497 | number = {21}, 1498 | pages = {7983}, 1499 | volume = {15}, 1500 | publisher = {MDPI}, 1501 | } 1502 | 1503 | @InProceedings{lages2014architecture, 1504 | author = {Lages, Walter Fetter and Ioris, Darlan and Santini, Diego Caberlon}, 1505 | booktitle = {ISR/Robotik 2014; 41st International Symposium on Robotics}, 1506 | title = {{An architecture for controlling the barrett wam robot using ROS and Orocos}}, 1507 | year = {2014}, 1508 | organization = {VDE}, 1509 | pages = {1--8}, 1510 | } 1511 | 1512 | @InProceedings{buys2011haptic, 1513 | author = {Buys, Koen and Bellens, Steven and Vanthienen, Nick and Decre, Wilm and Klotzb{\"u}cher, Markus and De Laet, Tinne and Smits, Ruben and Bruyninckx, Herman and De Schutter, Joris}, 1514 | booktitle = {IROS PR2 Workshop. San Francisco, California}, 1515 | title = {{Haptic coupling with the PR2 as a demo of the OROCOS-ROS-Blender integration}}, 1516 | year = {2011}, 1517 | pages = {30}, 1518 | volume = {25}, 1519 | } 1520 | 1521 | @InProceedings{pages2016tiago, 1522 | author = {Pages, Jordi and Marchionni, Luca and Ferro, Francesco}, 1523 | booktitle = {International workshop on robot modularity, IROS}, 1524 | title = {Tiago: the modular robot that adapts to different research needs}, 1525 | year = {2016}, 1526 | volume = {290}, 1527 | } 1528 | 1529 | @InProceedings{cholewinski2015software, 1530 | author = {Mateusz Cholewiński and Mariusz Janiak and Łukasz Juszkiewicz}, 1531 | booktitle = {2015 20th International Conference on Methods and Models in Automation and Robotics (MMAR)}, 1532 | title = {Software platform for practical verification of control algorithms developed for rescue and exploration mobile platform}, 1533 | year = {2015}, 1534 | organization = {IEEE}, 1535 | pages = {388--393}, 1536 | } 1537 | 1538 | @InProceedings{canfora2007new, 1539 | author = {Canfora, Gerardo and Di Penta, Massimiliano}, 1540 | booktitle = {Future of Software Engineering (FOSE'07)}, 1541 | title = {New frontiers of reverse engineering}, 1542 | year = {2007}, 1543 | organization = {IEEE}, 1544 | pages = {326--341}, 1545 | } 1546 | 1547 | @InProceedings{habib2021systematic, 1548 | author = {Habib, Basit and Romli, Rohaida}, 1549 | booktitle = {2021 IEEE 12th International Conference on Software Engineering and Service Science (ICSESS)}, 1550 | title = {A systematic mapping study on issues and importance of documentation in agile}, 1551 | year = {2021}, 1552 | organization = {IEEE}, 1553 | pages = {198--202}, 1554 | } 1555 | 1556 | @Article{chaudron2012effective, 1557 | author = {Chaudron, Michel RV and Heijstek, Werner and Nugroho, Ariadi}, 1558 | journal = {Software \& Systems Modeling}, 1559 | title = {{How effective is UML? An empirical perspective on costs and benefits}}, 1560 | year = {2012}, 1561 | pages = {571--580}, 1562 | volume = {11}, 1563 | publisher = {Springer}, 1564 | } 1565 | 1566 | @Article{ginting2021chord, 1567 | author = {Ginting, Muhammad Fadhil and Otsu, Kyohei and Edlund, Jeffrey A and Gao, Jay and Agha-Mohammadi, Ali-Akbar}, 1568 | journal = {IEEE Robotics and Automation Letters}, 1569 | title = {CHORD: Distributed data-sharing via hybrid ROS 1 and 2 for multi-robot exploration of large-scale complex environments}, 1570 | year = {2021}, 1571 | number = {3}, 1572 | pages = {5064--5071}, 1573 | volume = {6}, 1574 | publisher = {IEEE}, 1575 | } 1576 | 1577 | @Book{friedenthal2017architecting, 1578 | author = {Friedenthal, Sanford and Oster, Christopher}, 1579 | publisher = {CreateSpace Independent Publishing Platform}, 1580 | title = {Architecting Spacecraft with SysML: A Model-Based Systems Engineering Approach}, 1581 | year = {2017}, 1582 | } 1583 | 1584 | @Misc{BiomedicalHealthcare, 1585 | howpublished = {\url{https://www.omgwiki.org/MBSE/doku.php?id=mbse:drugdelivery}}, 1586 | title = {Biomedical-Healthcare -- web page}, 1587 | lang = {en}, 1588 | } 1589 | 1590 | @Article{meros-access, 1591 | author = {Tomasz Winiarski}, 1592 | journal = {IEEE Access}, 1593 | title = {{MeROS: SysML-based Metamodel for ROS-based Systems}}, 1594 | year = {2023}, 1595 | pages = {82802-82815}, 1596 | volume = {11}, 1597 | doi = {10.1109/ACCESS.2023.3301727}, 1598 | keywords = {meros-access}, 1599 | } 1600 | 1601 | @Misc{meros-www, 1602 | howpublished = {\url{https://github.com/twiniars/MeROS}}, 1603 | title = {MeROS project -- web page}, 1604 | keywords = {meros-www}, 1605 | lang = {en}, 1606 | } 1607 | 1608 | @Article{winiarski2025-v-model, 1609 | title={ROS-related Robotic Systems Development with V-model-based Application of MeROS Metamodel}, 1610 | author={Tomasz Winiarski and Jan Kaniuka and Daniel Giełdowski and Jakub Ostrysz and Krystian Radlak and Dmytro Kushnir}, 1611 | year={2025}, 1612 | abstract = {As robotic systems grow increasingly complex, heterogeneous, and safety-critical, the need for structured development methodologies becomes paramount. Although frameworks like the Robot Operating System (ROS) and Model-Based Systems Engineering (MBSE) offer foundational tools, they often lack integration when used together. This paper addresses that gap by aligning the widely recognized V-model development paradigm with the MeROS metamodel SysML-based modeling language tailored for ROS-based systems. 1613 | We propose a domain-specific methodology that bridges ROS-centric modelling with systems engineering practices. Our approach formalises the structure, behaviour, and validation processes of robotic systems using MeROS, while extending it with a generalized, adaptable V-model compatible with both ROS and ROS 2. Rather than prescribing a fixed procedure, the approach supports project-specific flexibility and reuse, offering guidance across all stages of development. 1614 | The approach is validated through a comprehensive case study on HeROS, a heterogeneous multi-robot platform comprising manipulators, mobile units, and dynamic test environments. This example illustrates how the MeROS-compatible V-model enhances traceability and system consistency while remaining accessible and extensible for future adaptation. The work contributes a structured, tool-agnostic foundation for developers and researchers seeking to apply MBSE practices in ROS-based projects. }, 1615 | journal = {arXiv}, 1616 | doi = {10.48550/arXiv.2506.08706} 1617 | } 1618 | 1619 | @Comment{jabref-meta: databaseType:bibtex;} 1620 | -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/action_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/action_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/communicating_component_connections_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/communicating_component_connections_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/communicating_component_specialisations_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/communicating_component_specialisations_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/communicating_components_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/communicating_components_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/communication_channel_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/communication_channel_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/communication_concepts_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/communication_concepts_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/compactness_and_simplicity_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/compactness_and_simplicity_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/extra_concepts_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/extra_concepts_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/general_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/general_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/grouping_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/grouping_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/namespace_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/namespace_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/node_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/node_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/original_ros_concepts_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/original_ros_concepts_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/other_ros_concepts_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/other_ros_concepts_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/repository_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/repository_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/ros_connections_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/ros_connections_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/ros_package_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/ros_package_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/ros_workspace_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/ros_workspace_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/running_system_component_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/running_system_component_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/running_system_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/running_system_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/sources_executables_container_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/sources_executables_container_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/sources_executables_req.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/sources_executables_req.png -------------------------------------------------------------------------------- /src/metamodel-doc/diagrams/system_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/diagrams/system_bdd.png -------------------------------------------------------------------------------- /src/metamodel-doc/meros-metamodel-doc.tex: -------------------------------------------------------------------------------- 1 | % !TeX spellcheck = en_GB 2 | % encoding: utf8 3 | % !TEX encoding = utf8 4 | % !TEX program = pdflatex 5 | % !BIB program = biber 6 | 7 | \documentclass[11pt,oneside,a4paper]{report} 8 | 9 | \usepackage[utf8]{inputenc} 10 | \usepackage[T1]{fontenc} 11 | \usepackage[colorlinks]{hyperref} 12 | \usepackage[left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm]{geometry} 13 | \usepackage{float} 14 | \usepackage{subcaption} 15 | \usepackage{mathtools} 16 | \usepackage{color} 17 | \usepackage[backend=biber,maxnames=10,style=numeric,sorting=nty,abbreviate=false,giveninits=true,language=english]{biblatex} 18 | 19 | \addbibresource{../meros.bib} 20 | 21 | %\newcommand{\twc}[1]{\textcolor{red}{\textbf{TW}: #1}} 22 | \newcommand{\Fig}[1]{Fig.~\ref{#1}} 23 | 24 | \definecolor{amber}{rgb}{1.0, 0.49, 0.0} 25 | \newcommand{\twci}[1]{ 26 | \textcolor{amber}{TW: #1}} 27 | 28 | \input{../meros-stereotypes} 29 | 30 | \begin{document} 31 | 32 | \title{MeROS: SysML-based Metamodel for ROS-related Systems - version 4.0.0 - reference manual} 33 | \author{MeROS developers group - https://github.com/twiniars/MeROS \\ tomasz.winiarski@pw.edu.pl} 34 | \date{\today} 35 | 36 | \maketitle 37 | 38 | 39 | \begin{abstract} 40 | The complexity of today's robot control systems implies difficulty in developing them efficiently and reliably. Systems engineering (SE) and frameworks come to help. The frameworks' metamodels are needed to support the standardisation and correctness of the created application models. MeROS is a~metamodel for ROS, which addresses the running system and developer workspace. An essential addition to the original ROS concepts is the grouping of these concepts, which provides an opportunity to illustrate the system's decomposition and varying degrees of detail in its presentation. The metamodel is derived from the requirements and verified on the practical examples. The matter is described in a~standardised way in SysML (Systems Modeling Language). Hence, common development tools that support SysML can help develop robot controllers in the spirit of SE. 41 | \end{abstract} 42 | 43 | 44 | \chapter*{Important citation notice} 45 | 46 | \textbf{If you are to use MeROS in your papers, please first cite the IEEE ACCESS article~\cite{meros-access}, where the initial version of the MeROS is presented. You can also refer to MeROS project page \cite{meros-www} and mention the actual MeROS version you are using.} 47 | 48 | 49 | \chapter{Introduction} 50 | \label{ch:intro} 51 | 52 | The development of civilisation has led to an increase in the importance of robotics. Many modern robotic systems are complex. To create them as effectively and reliably as possible, it is necessary to follow systems engineering (SE), where metamodels play an essential role~\cite{bezivin2004search,kent2002model,schmidt2006model}. 53 | Robots, especially complex ones, are mostly controlled with usage of software. Hence, in robotics, SE is inextricably linked with software engineering, where frameworks have been crucial for many years \cite{mnkandla2009software,shehory2014agent}. 54 | Diverse robotics frameworks have been developed so far \cite{hentout2016survey,inigo2012robotics,tsardoulias2017robotic}. Some steps towards standardisation have been made in recent years, and ROS (Robot Operating System) has come to the fore, currently in ROS~2 version \cite{maruyama2016exploring,park2020real}. 55 | 56 | The robotic models can be subdivided~\cite{de2021survey} into Platform Independent Models (PIM), e.g., \cite{tasker2020,earl2020,zielinski2010motion,zielinski2017variable}, and Platform Specific Models (PSM). The metamodels of ROS, including MeROS, belong to PSM and should answer to the component nature of ROS \cite{Figat:2022:RAS,wenger2016model}. 57 | MeROS is founded on SysML (Systems Modeling Language) \cite{Friedenthal:2015,omg-sysml17}, a~profile of UML (Unified Modeling Language). Modelling in languages from the UML family addresses a~number of important aspects of systems engineering \cite{chaudron2012effective}. These include the use cases [UCX]: 58 | \begin{itemize} 59 | \item $[$UC1] Systems' documentation and presentation, 60 | \item $[$UC2] Effective analysis of systems, especially in interdisciplinary teams (graphical language is more understandable for non-specialists in the field), 61 | \item $[$UC3] Defects detection, 62 | \item $[$UC4] Integration of new collaborators into the development team, 63 | \item $[$UC5] Resuming work after a~break, 64 | \item $[$UC6] Extension and modification of existing systems, 65 | \item $[$UC7] Support the implementation of new systems, 66 | \item $[$UC8] Migration of systems. 67 | \end{itemize} 68 | 69 | In practice, documentation is created both prior to implementation and, in many cases, through a~process of reverse engineering \cite{canfora2007new} for existing systems. Agile-type strategies involve modifying the documentation as the project develops \cite{habib2021systematic}. Systems development with V-model-based application of MeROS metamodel was proposed in \cite{winiarski2025-v-model}. 70 | 71 | The following presentation was prepared basing on the diagrams created as the core of the Visual Paradigm project. It starts with formulating the requirements (chapter~\ref{ch:requirements}). These requirements are allocated to the MeROS metamodel that's architecture is described in chapter~\ref{ch:architecture}. The applications of MeROS are presented in other documents. 72 | MeROS metamodel can be employed in various ways in broad context of SE. To help to develop projects, the MeROS Visual Paradigm stereotypes and other materials are accessible from MeROS project page\footnote{\url{http://github.com/twiniars/meros}}. 73 | 74 | 75 | \chapter{MeROS requirements} 76 | \label{ch:requirements} 77 | The requirements [RX] formulation process for MeROS metamodel is multi-stage and iterative. In the beginning, the initial requirements were formulated based on: (i) literature review (both scientific and ROS wiki/community sources), (ii) author experience from supervising and supporting ROS-related projects, and finally, (iii) author experience from EARL (Embodied Agent-based cybeR-physical control systems modelling Language) \cite{earl2020} PIM development and its applications (e.g. \cite{tasker2020,karwowski2021hubero,en14206693-grav-comp}). Verification of subsequent versions of MeROS by its practical applications led to an iterative reformulation of the following requirements and respective MeROS architecture. 78 | 79 | MeROS requirements are depicted on a~number of dedicated SysML diagrams. The requirements are organised in a~tree-like nesting structure, with additional internal relations, and labelled following this structure. The general requirements are presented in Fig.~\ref{fig:general_req}. 80 | 81 | \begin{figure}[H] 82 | \centering 83 | \begin{center} 84 | {\includegraphics[scale=1.0]{diagrams/general_req.png}} 85 | \end{center} 86 | \caption{General requirements.} 87 | \label{fig:general_req} 88 | \end{figure} 89 | 90 | Grouping of concepts [R1] is a crucial addition to pure ROS metamodel. 91 | MeROS is a SysML-based metamodel and is classified into PSM [R2]. 92 | MeROS aims to cover ROS concepts [R3] and not change their labels as long as possible, to maintain conformity and intuitiveness. To achieve completeness of the metamodel extra concepts are needed [R4]. The ROS system is two-faced. While it is executed [R5], it has a~specific structure and behaviour, but from the developers' point of view, the sources and executables [R6] are the exposed aspect. The model should be compact and straightforward [R7] rather than unnecessarily elaborate and complicated. It is also universal. It does not imply itself the specific procedure of its use [R8]. These procedures are specified outside of the MeROS metamodel. Although the SysML-based MeROS is classified into PSM, it should be compatible with Non-ROS elements [R9]. MeROS metamodel should be valid for ROS~2 [R10]. Finally, embodiment [R11] (e.g. system deployment) should be considered. 93 | 94 | The grouping of concepts requirements are presented in Fig.~\ref{fig:grouping_req}. It has diverse aims. It enables the presentation of the system part in a~general, PIM-like abstract way, on the logical level rather than a~detailed, PSM-like implementation one. The aggregation reduces the number of objects represented on the diagram to highlight the essential aspects and stay compact and consistent in presentation. 95 | 96 | \begin{figure}[H] 97 | \centering 98 | \begin{center} 99 | {\includegraphics[scale=1.0]{diagrams/grouping_req.png}} 100 | \end{center} 101 | \caption{Grouping of concepts requirements.} 102 | \label{fig:grouping_req} 103 | \end{figure} 104 | 105 | A~vital addition to the original ROS concepts is the abstract grouping of: (i) communication methods and (ii) communicating components and ROS packages. It should be noted that several ROS concepts group other concepts in a~particular way, especially to deploy the system. Action aggregates Topics and Services, Component Container aggregates Nodes. 106 | 107 | 108 | The ROS concepts that MeROS models are organised into four major classes (Fig.~\ref{fig:ros_concepts_req}): (i)~Communicating components, (ii) Communication methods, (iii) Sources and executables containers, and (iv) Other. 109 | 110 | 111 | \begin{figure}[H] 112 | \centering 113 | \begin{center} 114 | {\includegraphics[scale=1.0]{diagrams/original_ros_concepts_req.png}} 115 | \end{center} 116 | \caption{ROS concepts requirements.} 117 | \label{fig:ros_concepts_req} 118 | \end{figure} 119 | 120 | \pagebreak 121 | 122 | ROS Node and ROS Command line tools are members of ROS Communicating components [R3.1] (Fig.~\ref{fig:communicating_components_req}). 123 | 124 | \begin{figure}[H] 125 | \centering 126 | \begin{center} 127 | {\includegraphics[scale=1.0]{diagrams/communicating_components_req.png}} 128 | \end{center} 129 | \caption{Communicating components requirements.} 130 | \label{fig:communicating_components_req} 131 | \end{figure} 132 | 133 | Communication methods are depicted in Fig.~\ref{fig:communication_concepts_req}. 134 | Three methods of communication are considered with their inter-component connections and data structures: (i) ROS Topic, its Message and connection, (ii) ROS Service comprising data structure and connection, and finally (iii) ROS Action including data structure and connection. 135 | 136 | \begin{figure}[H] 137 | \centering 138 | \begin{center} 139 | {\includegraphics[scale=1.0]{diagrams/communication_concepts_req.png}} 140 | \end{center} 141 | \caption{Communication concepts requirements.} 142 | \label{fig:communication_concepts_req} 143 | \end{figure} 144 | 145 | ROS Sources and executables containers comprises (Fig.~\ref{fig:sources_executables_req}): (i) ROS Package, (ii) ROS Metapackage, (iii) Group of ROS packages. It also relates to Group of packages and Repository. In practise ROS Metapackage is a~specific, degenerated ROS Package. 146 | 147 | \begin{figure}[H] 148 | \centering 149 | \begin{center} 150 | {\includegraphics[scale=1.0]{diagrams/sources_executables_req.png}} 151 | \end{center} 152 | \caption{ROS Sources and executables containers requirements.} 153 | \label{fig:sources_executables_req} 154 | \end{figure} 155 | 156 | \pagebreak 157 | 158 | Other ROS concepts (Fig.~\ref{fig:other_ros_concepts_req}) include two elements: (i) ROS Parameters, (ii) ROS Namespace reflects the ROS concept to organise nodes and communication connections. 159 | 160 | \begin{figure}[H] 161 | \centering 162 | \begin{center} 163 | {\includegraphics[scale=1.0]{diagrams/other_ros_concepts_req.png}} 164 | \end{center} 165 | \caption{Other ROS concepts requirements.} 166 | \label{fig:other_ros_concepts_req} 167 | \end{figure} 168 | 169 | Extra concepts are depicted in Fig.~\ref{fig:extra_concepts_req}. 170 | 171 | \begin{figure}[H] 172 | \centering 173 | \begin{center} 174 | {\includegraphics[scale=1.0]{diagrams/extra_concepts_req.png}} 175 | \end{center} 176 | \caption{Extra concepts requirements.} 177 | \label{fig:extra_concepts_req} 178 | \end{figure} 179 | 180 | 181 | To achieve intuitiveness, MeROS presents a~Running system structure (Fig.~\ref{fig:running_system_req}) following ROS rqt\_graph pattern. In particular, there are two ways to visualise communication, including and without dedicated communication components. 182 | \begin{figure}[H] 183 | \centering 184 | \begin{center} 185 | {\includegraphics[scale=1.0]{diagrams/running_system_req.png}} 186 | \end{center} 187 | \caption{Running system requirements. } 188 | \label{fig:running_system_req} 189 | \end{figure} 190 | The dedicated components are especially useful in the presentation when many communication components use the same topic both on the publisher and the subscriber side. In opposition, the expression of topic names on arrows connecting communicating components, i.e., without dedicated communication components, let to reduce the number of components needed to depict communication for many topics and a~low number of communicating components. The other advantage of using dedicated communication components is that the particular connection can be split into several diagrams (e.g. ibd (internal block diagram) or sd (sequence diagram)), where the same object represents this connection in every associated diagram. Services and actions should be depicted as an addition to the presentation of the particular topics. It should be noted that rqt\_graph represents actions as a~number of topics and services. In MeROS, the topics and services being part of an action can be aggregated, which reduces the number of depicted connections. System state should be considered in the metamodel. 191 | 192 | The compactness and simplicity and its nesting requirements are presented in Fig.~\ref{fig:compactness_and_simplicity_req}. 193 | 194 | \begin{figure}[H] 195 | \centering 196 | \begin{center} 197 | {\includegraphics[scale=1.0]{diagrams/compactness_and_simplicity_req.png}} 198 | \end{center} 199 | \caption{Compactness and simplicity requirements.} 200 | \label{fig:compactness_and_simplicity_req} 201 | \end{figure} 202 | 203 | A SysML project to develop and represent MeROS metamodel should consist of a~small number of packages, but still the packages should distinguish the major aspects of development process: (i) metamodel requirements formulation, (ii) metamodel itself, and (iii) metamodel realisations/applications. 204 | Dedicated SysML stereotypes [R6.2] are introduced to MeROS to replace the direct block specialization representation on diagrams and improve the legibility and compactness of diagrams. 205 | The number of SysML blocks should be reduced to a~reasonable level. Both [R7.1] and [R7.3] help in the Avoidance of unnecessary mapping of SysML blocks. 206 | 207 | 208 | 209 | \chapter{MeROS architecture} 210 | \label{ch:architecture} 211 | 212 | MeROS architecture is formulated according to the requirements discussed in the previous section. The diagrams comprise selected requirements being allocated to expose the MeROS metamodel development process. 213 | The MeROS diagrams were created in the Visual Paradigm development tool within the SysML project [R8] and organised in two packages [R7.1]: (i) MeROS Requirements related to requirements formulation and analysis, (ii) MeROS Architecture. 214 | 215 | The stereotypes are introduced in MeROS metamodel [R7.2]. 216 | The stereotypes names are created to compromise the descriptiveness and short length. Hence, the ROS phrase is avoided in stereotypes as long as there is only the ROS concept of a~given type. 217 | 218 | The degree of specificity of a~metamodel is a~compromise between its comprehensiveness (and, therefore, more general formulation) and a~more accurate representation of a~particular subclass of specific implementations. The metamodel contains compositions of elements and other primary relationships. Attributes and operations of elements range widely, hence their inclusion would lead to overgrowth and complication of the metamodel [R7]. The MeROS Metamodel is lightweight and general for various system development procedures and non-ROS parts of the whole System. The fundamental decision was to make it compact, so due to the extremely wide range of Non-ROS context variants [R9], they are specific for particular applications and are not specified in the metamodel itself. Hence, models derived from the metamodel can define their stereotypes, operations and new relations specific for a~particular System. 219 | 220 | \pagebreak 221 | 222 | The SysML blocks reflects concepts pointed out in requirements, and their composition is depicted in block definition diagrams (bdd). Sources and Executables Containers (specialised especially by Workspaces) and Running System Components are composed into System (Fig.~\ref{fig:ros_system_bdd}). Hardware block reflects to embodiment. System can aggregate other Systems. System state is represented by the state machine states dedicated for this System. These states have specific stereotypes. 223 | 224 | 225 | \begin{figure}[H] 226 | \centering 227 | \begin{center} 228 | {\includegraphics[scale=.98]{diagrams/system_bdd.png}} 229 | \end{center} 230 | \caption{System general composition.} 231 | \label{fig:ros_system_bdd} 232 | \end{figure} 233 | 234 | 235 | Consequently, some concepts (e.g., Node), a~specialisations of Running System Component, occur in Sources and Executables Containers. It reduces the number of SysML blocks in the metamodel [R7.3] and eliminates the need for unnecessary mapping of SysML blocks [7.4]. In MeROS applications, the System formulation methodology is to create various views on it (in particular its: sources and executables containers, running components, embodiment). They all together depict the complete view on the System. 236 | 237 | In MeROS, ROS Communicating Component (Fig.~\ref{fig:communicating_components_bdd}) forms a~crucial generalisation to represent standardised role regarding communication. The ROS Command Line Tool is introduced as it also can communicate with other ROS Communicating Components after execution of particular ROS-related commands. 238 | 239 | 240 | \begin{figure}[H] 241 | \centering 242 | \begin{center} 243 | {\includegraphics[scale=.98]{diagrams/communicating_component_specialisations_bdd.png}} 244 | \end{center} 245 | \caption{Communicating Component and specialised blocks -- bdd.} 246 | \label{fig:communicating_components_bdd} 247 | \end{figure} 248 | 249 | Relations of ROS Communicating Component are depicted in Fig.~\ref{fig:communicating_component_connections_bdd}. The diagram considers Topics, where the ROS Communicating Component can act as a~publisher or a~subscriber. In the case of Services, the ROS Communicating Component can act as a~server or a~client. Similarly to Services, the ROS Communicating Component can act as a~server or a~client to an Action. 250 | 251 | \begin{figure}[H] 252 | \centering 253 | \begin{center} 254 | {\includegraphics[scale=1.1]{diagrams/communicating_component_connections_bdd.png}} 255 | \end{center} 256 | \caption{ROS Communicating Component connections.} 257 | \label{fig:communicating_component_connections_bdd} 258 | \end{figure} 259 | 260 | 261 | 262 | The ROS Action Connection comprises two Topics and three Services (Fig.~\ref{fig:action_bdd}). 263 | 264 | \begin{figure}[hbt] 265 | \centering 266 | \begin{center} 267 | {\includegraphics[scale=1.1]{diagrams/action_bdd.png}} 268 | \end{center} 269 | \caption{Action.} 270 | \label{fig:action_bdd} 271 | \end{figure} 272 | 273 | \pagebreak 274 | 275 | 276 | The Communication Channel is introduced to specify communication between various Communicating Components (Fig.~\ref{fig:communication_channel_bdd}). 277 | Besides standard ROS communication methods, the Non-ROS can also be included (e.g., http request) to achieve interfaces with Non-ROS parts of the general system. 278 | 279 | 280 | \begin{figure}[H] 281 | \centering 282 | \begin{center} 283 | {\includegraphics[scale=1.1]{diagrams/communication_channel_bdd.png}} 284 | \end{center} 285 | \caption{Communication Channel composition.} 286 | \label{fig:communication_channel_bdd} 287 | \end{figure} 288 | 289 | 290 | The Node (Fig.~\ref{fig:node_bdd}) aggregates ROS Parameters. ROS Component Container aggregates Nodes executed in a~single process. The Micro ROS Node is also considered in the model as the specialisation of the Node. Node lifecycle state\footnote{\url{https://design.ros2.org/articles/node_lifecycle.html}} is represented by the state machine states dedicated for this Node. These states have specific stereotypes. 291 | 292 | 293 | \begin{figure}[H] 294 | \centering 295 | \begin{center} 296 | {\includegraphics[scale=1.1]{diagrams/node_bdd.png}} 297 | \end{center} 298 | \caption{ROS Node composition and specialisation.} 299 | \label{fig:node_bdd} 300 | \end{figure} 301 | 302 | \pagebreak 303 | 304 | The Running System Component (Fig.~\ref{fig:running_system_component_bdd}) is a~generalisation of Communicating Components specializations as well as Connections between them. 305 | 306 | 307 | \begin{figure}[H] 308 | \centering 309 | \begin{center} 310 | {\includegraphics[scale=.92]{diagrams/running_system_component_bdd.png}} 311 | \end{center} 312 | \caption{Running System Component specialisations.} 313 | \label{fig:running_system_component_bdd} 314 | \end{figure} 315 | 316 | 317 | The specializations of ROS connection (Topic connections, Service connections, and Action connections) are depicted in Fig.~\ref{fig:ros_connections_bdd}. For particular connections types the appropriate communication structures are composed. 318 | 319 | 320 | \begin{figure}[H] 321 | \centering 322 | \begin{center} 323 | {\includegraphics[scale=.92]{diagrams/ros_connections_bdd.png}} 324 | \end{center} 325 | \caption{ROS Connections.} 326 | \label{fig:ros_connections_bdd} 327 | \end{figure} 328 | 329 | 330 | The Namespace (Fig.~\ref{fig:namespace_bdd}) aggregates elements of the System, but only ROS related. In opposition to the System, the Namespace does not specialise Communicating Component. Hence, it can not act as Communicating Component. 331 | 332 | 333 | \begin{figure}[H] 334 | \centering 335 | \begin{center} 336 | {\includegraphics[scale=.92]{diagrams/namespace_bdd.png}} 337 | \end{center} 338 | \caption{Namespace composition.} 339 | \label{fig:namespace_bdd} 340 | \end{figure} 341 | 342 | \pagebreak 343 | 344 | The Sources and Executables Container (Fig.~\ref{fig:sources_executables_container_bdd}) has various specialisations such as Group of Packages, ROS Workspace, ROS Package and Repository. It also plays a~role of general container. 345 | The Workspace contains, i.a., Packages that compose the files related to general ROS concepts such as Node source codes, communication structures definitions, etc. As Workspace has a~specific file-system nature with various types of files stored, Group of Packages were introduced as specific aggregation of ROS Packages only. 346 | 347 | 348 | \begin{figure}[H] 349 | \centering 350 | \begin{center} 351 | {\includegraphics[scale=1.1]{diagrams/sources_executables_container_bdd.png}} 352 | \end{center} 353 | \caption{Sources and Executables Container and its specialisations.} 354 | \label{fig:sources_executables_container_bdd} 355 | \end{figure} 356 | 357 | The ROS Package (Fig.~\ref{fig:ros_package_bdd}) composes the files related to general ROS concepts such as Node source codes, communication structures definitions, etc. These components are composed as parts and theirs types are unique for the particular Package. For consistency, while MeROS is applied and two components of the same stereotype and the same type name are added in various Packages, theirs names should include Package name. It should be noted that in case of Actions, specific communication structures definitions are stored in Action Data Structures. ROS Meta Package was introduced as a~specific ROS Package specialisation. 358 | 359 | \begin{figure}[H] 360 | \centering 361 | \begin{center} 362 | {\includegraphics[scale=1.1]{diagrams/ros_package_bdd.png}} 363 | \end{center} 364 | \caption{ROS Package composition.} 365 | \label{fig:ros_package_bdd} 366 | \end{figure} 367 | 368 | \pagebreak 369 | 370 | 371 | The composition of Repository is presented in Fig.~\ref{fig:repository_bdd}. 372 | 373 | \begin{figure}[H] 374 | \centering 375 | \begin{center} 376 | {\includegraphics[scale=1.1]{diagrams/repository_bdd.png}} 377 | \end{center} 378 | \caption{Repository composition.} 379 | \label{fig:repository_bdd} 380 | \end{figure} 381 | 382 | The composition of ROS Workspace is presented in Fig.~\ref{fig:ros_workspace_bdd}. The Workspace can extend other Workspaces by usage of \texttt{source} command. 383 | 384 | \begin{figure}[H] 385 | \centering 386 | \begin{center} 387 | {\includegraphics[scale=1.1]{diagrams/ros_workspace_bdd.png}} 388 | \end{center} 389 | \caption{ROS Workspace composition.} 390 | \label{fig:ros_workspace_bdd} 391 | \end{figure} 392 | 393 | 394 | \AtNextBibliography{\small} 395 | \printbibliography 396 | 397 | \end{document} 398 | -------------------------------------------------------------------------------- /src/metamodel-doc/vp-project/meros-vp-stereotypes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | -------------------------------------------------------------------------------- /src/metamodel-doc/vp-project/meros_metamodel.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/metamodel-doc/vp-project/meros_metamodel.vpp -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/general_scenario_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/general_scenario_sd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/rosgraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/rosgraph.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/running_system_detailed_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/running_system_detailed_bdd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/running_system_detailed_ibd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/running_system_detailed_ibd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/running_system_general_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/running_system_general_bdd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/running_system_general_ibd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/running_system_general_ibd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/system_initilisation_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/system_initilisation_sd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/system_sourexec_composition_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/system_sourexec_composition_bdd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/turtle - stm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/turtle - stm.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/turtle_motion_sd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/turtle_motion_sd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/turtlesim_command_channel_bdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/turtlesim_command_channel_bdd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/diagrams/turtlesim_command_channel_ibd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/diagrams/turtlesim_command_channel_ibd.png -------------------------------------------------------------------------------- /src/turtlesim-doc/img/turtle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/img/turtle1.png -------------------------------------------------------------------------------- /src/turtlesim-doc/img/turtle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/img/turtle2.png -------------------------------------------------------------------------------- /src/turtlesim-doc/img/turtle3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/img/turtle3.png -------------------------------------------------------------------------------- /src/turtlesim-doc/meros-turtlesim-doc.tex: -------------------------------------------------------------------------------- 1 | % !TeX spellcheck = en_GB 2 | % encoding: utf8 3 | % !TEX encoding = utf8 4 | % !TEX program = pdflatex 5 | % !BIB program = biber 6 | 7 | \documentclass[11pt,oneside,a4paper]{report} 8 | 9 | \usepackage[utf8]{inputenc} 10 | \usepackage[T1]{fontenc} 11 | \usepackage[colorlinks]{hyperref} 12 | \usepackage[left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm]{geometry} 13 | \usepackage{float} 14 | \usepackage{subcaption} 15 | \usepackage{mathtools} 16 | \usepackage{color} 17 | \usepackage{listings} 18 | \usepackage{xcolor} 19 | \usepackage[backend=biber,maxnames=10,style=numeric,sorting=nty,abbreviate=false,giveninits=true,language=english]{biblatex} 20 | 21 | \addbibresource{../meros.bib} 22 | 23 | %\newcommand{\twc}[1]{\textcolor{red}{\textbf{TW}: #1}} 24 | \newcommand{\Fig}[1]{Fig.~\ref{#1}} 25 | 26 | \definecolor{amber}{rgb}{1.0, 0.49, 0.0} 27 | \newcommand{\twci}[1]{ 28 | \textcolor{amber}{TW: #1}} 29 | 30 | \input{../meros-stereotypes} 31 | 32 | \lstdefinestyle{terminal}{ 33 | backgroundcolor=\color{darkgray}, 34 | basicstyle=\ttfamily\color{green}\scriptsize, 35 | frame=single, 36 | breaklines=true, 37 | rulecolor=\color{gray}, 38 | } 39 | 40 | 41 | \begin{document} 42 | 43 | \title{MeROS 4.0.0: basics of metamodel usage with turtlesim} 44 | \author{MeROS developers group - https://github.com/twiniars/MeROS \\ tomasz.winiarski@pw.edu.pl} 45 | \date{\today} 46 | \maketitle 47 | 48 | 49 | \chapter*{Important citation notice} 50 | 51 | \textbf{If you are to use MeROS in your papers, please first cite the IEEE ACCESS article~\cite{meros-access}, where the initial version of the MeROS is presented. You can also refer to MeROS project page \cite{meros-www} and mention the actual MeROS version you are using.} 52 | 53 | \chapter{Introduction} 54 | \label{ch:introduction} 55 | 56 | This document is to present basics of MeROS metamodel usage (its application). It bases on popular turtlesim ROS2 tutorial \url{https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools.html} and has an introspection, reverse engineering nature. The more elaborated procedure of the ROS-based systems development with V-model and MerROS is presented in \cite{winiarski2025-v-model}. We advice to read it after this documentation as the article adds a lot of valuable examples of MeROS related diagrams creation. It is convenient to create the dedicated package in Visual Paradigm (VP) project (VP project package, not ROS or MeROS \stPackage{}) and place the diagrams and other elements inside this package. 57 | 58 | \chapter{MeROS application} 59 | \label{ch:application} 60 | 61 | The general scenario of application execution is presented in Fig.~\ref{fig:general_scenario_sd}. The scenario is subdivided into two fragments that will be presented further on in the detailed way considering the system realisation. The \textsf{Turtle} \stSystem{} is initially in \textsf{Turtle::initial} \stSystemState{} and transits to \textsf{Turtle::operational} \stSystemState{} after execution of all of the \stNode{}s. As all of the \stSystemState{}s are defined for the particular \stSystem{} it is a good practice to take it into account, and define \stSystemState{}s with the associated \stSystem{} name at the beginning followed by the double colon. The \stSystemState{}s in VP are defined on the dedicated \texttt{stm} subdiagram of the \stSystem{}. 62 | 63 | 64 | \begin{figure}[H] 65 | \centering 66 | \begin{center} 67 | {\includegraphics[scale=1.0]{diagrams/general_scenario_sd.png}} 68 | \end{center} 69 | \caption{General scenario sd} 70 | \label{fig:general_scenario_sd} 71 | \end{figure} 72 | 73 | 74 | The decision is to build the \stSystem{} comprising two \stNode{}s that are executed. The first is \textsf{turtlesim\_node} \stNode{} from \textsf{turtlesim} \stPackage{}. It should be noted that before \stNode{}s execution in operating system, tourtlesim ROS package should be installed as well as source command should be executed properly in each system terminal (List.~\ref{lst:ros2_run_turtlesim_turtlesim_node}). 75 | 76 | \begin{lstlisting}[style=terminal,label={lst:ros2_run_turtlesim_turtlesim_node},caption={ros2 run turtlesim turtlesim\_node}] 77 | $ ros2 run turtlesim turtlesim_node 78 | [INFO] [1751724881.187110472] [turtlesim]: Starting turtlesim with node name /turtlesim 79 | [INFO] [1751724881.196178869] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000] 80 | \end{lstlisting} 81 | 82 | The second \stNode{} to be executed, \textsf{turtle\_teleop\_key}, also origins from the \textsf{turtlesim} \stPackage{}. It should be noted that typically new system terminal is needed to execute extra \stNode{} with \textsf{ros2 run} \stCLTool{} (List.~\ref{lst:ros2_run_turtle_teleop_key}). 83 | 84 | \begin{lstlisting}[style=terminal,label={lst:ros2_run_turtle_teleop_key},caption={ros2 run turtlesim turtle\_teleop\_key}] 85 | $ ros2 run turtlesim turtle_teleop_key 86 | Reading from keyboard 87 | --------------------------- 88 | Use arrow keys to move the turtle. 89 | Use g|b|v|c|d|e|r|t keys to rotate to absolute orientations. 'f' to cancel a rotation. 90 | 'q' to quit. 91 | \end{lstlisting} 92 | 93 | It is time to draw \stSystem{} structure with \textsf{rqt\_graph} \stCLTool{} (in new system terminal) (List.~\ref{lst:rqt_graph}). In rqt\_graph all of the extra elements should be hided, to concentrate on the scenario relevant \stSystem{} components, that are also considered in the following diagrams. 94 | 95 | \begin{lstlisting}[style=terminal,label={lst:rqt_graph},caption={rqt\_graph}] 96 | $ rqt_graph 97 | \end{lstlisting} 98 | 99 | The resultant rosgraph diagram is presented in Fig.~\ref{fig:rqt_graph}. There are two \stNode{}s visible as well as three \stTopic{}s between them. Two of them belong to an \stAction{}. 100 | 101 | \begin{figure}[H] 102 | \centering 103 | \begin{center} 104 | {\includegraphics[scale=.5]{diagrams/rosgraph.png}} 105 | \end{center} 106 | \caption{System structure by rqt\_graph} 107 | \label{fig:rqt_graph} 108 | \end{figure} 109 | 110 | The MeROS \stSystem{} structure presentation is composed by different views on it. In this example we start with Sources and Executables composition into the \stSystem{}. There are two scenario relevant \stNode{}s to be considered in the in \textsf{Turtle} \stSystem{}. They were run from \textsf{turtlesim} \stPackage{} that can be validated by the \textsf{ros2 pkg} \stCLTool{} (List.~\ref{lst:ros2_pkg_executables_turtlesim}). 111 | 112 | \begin{lstlisting}[style=terminal,label={lst:ros2_pkg_executables_turtlesim},caption={ros2 pkg executables turtlesim}] 113 | $ ros2 pkg executables turtlesim 114 | turtlesim draw_square 115 | turtlesim mimic 116 | turtlesim turtle_teleop_key 117 | turtlesim turtlesim_node 118 | \end{lstlisting} 119 | 120 | The two extra executables from this \stPackage{} are not considered further on. It is also needed to find the \stPackage{}s containing \stRosConnection{}s used in our example. One of the ways is two find all of the connections for the particular \stNode{} with \textsf{ros2 node} \stCLTool{} (List.~\ref{lst:ros2_node_info_turtlesim}). 121 | 122 | 123 | \begin{lstlisting}[style=terminal,label={lst:ros2_node_info_turtlesim},caption={ros2 node info /turtlesim}] 124 | $ ros2 node info /turtlesim 125 | /turtlesim 126 | Subscribers: 127 | /parameter_events: rcl_interfaces/msg/ParameterEvent 128 | /turtle1/cmd_vel: geometry_msgs/msg/Twist 129 | Publishers: 130 | /parameter_events: rcl_interfaces/msg/ParameterEvent 131 | /rosout: rcl_interfaces/msg/Log 132 | /turtle1/color_sensor: turtlesim/msg/Color 133 | /turtle1/pose: turtlesim/msg/Pose 134 | Service Servers: 135 | /clear: std_srvs/srv/Empty 136 | /kill: turtlesim/srv/Kill 137 | /reset: std_srvs/srv/Empty 138 | /spawn: turtlesim/srv/Spawn 139 | /turtle1/set_pen: turtlesim/srv/SetPen 140 | /turtle1/teleport_absolute: turtlesim/srv/TeleportAbsolute 141 | /turtle1/teleport_relative: turtlesim/srv/TeleportRelative 142 | /turtlesim/describe_parameters: rcl_interfaces/srv/DescribeParameters 143 | /turtlesim/get_parameter_types: rcl_interfaces/srv/GetParameterTypes 144 | /turtlesim/get_parameters: rcl_interfaces/srv/GetParameters 145 | /turtlesim/get_type_description: type_description_interfaces/srv/GetTypeDescription 146 | /turtlesim/list_parameters: rcl_interfaces/srv/ListParameters 147 | /turtlesim/set_parameters: rcl_interfaces/srv/SetParameters 148 | /turtlesim/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically 149 | Service Clients: 150 | 151 | Action Servers: 152 | /turtle1/rotate_absolute: turtlesim/action/RotateAbsolute 153 | Action Clients: 154 | \end{lstlisting} 155 | 156 | By taking into account \stRosConnection{}s from Fig.~\ref{fig:rqt_graph} listed in List.~\ref{lst:ros2_node_info_turtlesim} the \stPackage{}s containing theirs sources can be found as well as 157 | instances names, used in, e.g. ibd. Finally, taking into account the data presented above, the bdd with \textsf{turtlesim} \stSystem{} sources and containers can be prepared (Fig.~\ref{fig:system_sourexec_composition_bdd}). For that purpose the ROS 2 \stWorkspace{} localisation is needed, but it easy to find out, especially the initial \textsf{source} command needs that localisation. It is \textsf{/opt/ros/jazzy} in case of the ROS version used in the time of the creation of this documentation. Here, additionally the communication structures are presented. 158 | 159 | \begin{figure}[H] 160 | \centering 161 | \begin{center} 162 | {\includegraphics[scale=1.0]{diagrams/system_sourexec_composition_bdd.png}} 163 | \end{center} 164 | \caption{System sources and executables composition} 165 | \label{fig:system_sourexec_composition_bdd} 166 | \end{figure} 167 | 168 | As all of the sources and executables are defined for the particular \stPackage{} it is a good practice to take it into account, and define the names of the \stPackage{} parts with the \stPackage{} name at the beginning followed by the double colon. Similarly, communication structures are defined for the particular \stPackage{}. 169 | \pagebreak 170 | 171 | Another view on \stSystem{} depicts the running system architecture. It can be depicted in general way. It is needed to first create bdd with all of the elements considered in this view (Fig.~\ref{fig:running_system_general_bdd}). 172 | 173 | \begin{figure}[H] 174 | \centering 175 | \begin{center} 176 | {\includegraphics[scale=1.0]{diagrams/running_system_general_bdd.png}} 177 | \end{center} 178 | \caption{Running System general view bdd} 179 | \label{fig:running_system_general_bdd} 180 | \end{figure} 181 | 182 | 183 | 184 | Then, the ibd can be created (Fig.~\ref{fig:running_system_general_ibd}). 185 | 186 | \begin{figure}[H] 187 | \centering 188 | \begin{center} 189 | {\includegraphics[scale=1.0]{diagrams/running_system_general_ibd.png}} 190 | \end{center} 191 | \caption{Running System general view ibd} 192 | \label{fig:running_system_general_ibd} 193 | \end{figure} 194 | 195 | \textsf{turtlesim\_command command} \stCommChannel{} is depicted in detailed way in Fig.~\ref{fig:turtlesim_command_channel_bdd} and Fig.~\ref{fig:turtlesim_command_channel_ibd}. It should be noted that connector direction denote the publisher to subscriber data flow in case of \stTopic{}s or client to server in case of \stService{}s or \stAction{}s. 196 | 197 | 198 | \begin{figure}[H] 199 | \centering 200 | \begin{center} 201 | {\includegraphics[scale=1.0]{diagrams/turtlesim_command_channel_bdd.png}} 202 | \end{center} 203 | \caption{turtlesim\_command command channel bdd} 204 | \label{fig:turtlesim_command_channel_bdd} 205 | \end{figure} 206 | 207 | \begin{figure}[H] 208 | \centering 209 | \begin{center} 210 | {\includegraphics[scale=1.0]{diagrams/turtlesim_command_channel_ibd.png}} 211 | \end{center} 212 | \caption{turtlesim\_command command channel ibd} 213 | \label{fig:turtlesim_command_channel_ibd} 214 | \end{figure} 215 | 216 | 217 | The running system architecture can be also depicted in detailed way at once in Fig.~\ref{fig:running_system_detailed_bdd} and Fig.~\ref{fig:running_system_detailed_ibd}. 218 | 219 | \begin{figure}[H] 220 | \centering 221 | \begin{center} 222 | {\includegraphics[scale=1.0]{diagrams/running_system_detailed_bdd.png}} 223 | \end{center} 224 | \caption{Running System detailed view bdd} 225 | \label{fig:running_system_detailed_bdd} 226 | \end{figure} 227 | 228 | \begin{figure}[H] 229 | \centering 230 | \begin{center} 231 | {\includegraphics[scale=1.0]{diagrams/running_system_detailed_ibd.png}} 232 | \end{center} 233 | \caption{Running System detailed view ibd} 234 | \label{fig:running_system_detailed_ibd} 235 | \end{figure} 236 | 237 | \pagebreak 238 | 239 | Now the detailed validation scenario can be presented (Fig.~ \ref{fig:system_initilisation_sd}). It should be noted that \stAction{} call is depicted in one of the sequences that can occur during \stSystem{} execution. 240 | 241 | \begin{figure}[H] 242 | \centering 243 | \begin{center} 244 | {\includegraphics[scale=1.0]{diagrams/system_initilisation_sd.png}} 245 | \end{center} 246 | \caption{Detailed system initialisation scenario scenario sd} 247 | \label{fig:system_initilisation_sd} 248 | \end{figure} 249 | 250 | \begin{figure}[H] 251 | \centering 252 | \begin{center} 253 | {\includegraphics[scale=1.0]{diagrams/turtle_motion_sd.png}} 254 | \end{center} 255 | \caption{Detailed turtle motion scenario sd} 256 | \label{fig:turtle_motion_sd} 257 | \end{figure} 258 | 259 | \AtNextBibliography{\small} 260 | \printbibliography 261 | 262 | \end{document} 263 | -------------------------------------------------------------------------------- /src/turtlesim-doc/vp-project/meros-turtlesim.vpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twiniars/MeROS/973d45fefc97098cdabd533d6850e60b0c96d013/src/turtlesim-doc/vp-project/meros-turtlesim.vpp --------------------------------------------------------------------------------