diff --git a/README.md b/README.md index 1f9769a7f..87f44d0d0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Ros Model +# RosTooling [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![ros-model CI](https://github.com/ipa320/ros-model/actions/workflows/build.yml/badge.svg)](https://github.com/ipa320/ros-model/actions/workflows/build.yml) @@ -11,13 +11,10 @@ The models have associated tools, the following are some examples: - Code geneators to automatically generate code, documentation, helper scripts... - (ToBeDone) Graphical editor - Technical Maintainer: [**ipa-nhg**](https://github.com/ipa-nhg/) (**Nadia Hammoudeh Garcia**, **Fraunhofer IPA**) - **nadia.hammoudeh.garcia@ipa.fraunhofer.de** ## Projects/Links related to this repository: -- Eclipse Tooling update site: Tbd - Related repositories: - ROS2 embedded code generator: [rossdl](https://github.com/CoreSenseEU/rossdl) - Python parsers (packed as a ROS package) for the ROS and ROSsystem models: [ros_model_parser](https://github.com/ipa320/ros_model_parser) @@ -25,11 +22,7 @@ Related repositories: - Runtime monitoring pipelines: - ROS1: [rosgraph_monitor](https://github.com/ipa320/rosgraph_monitor) - ROS2: [ros2mode](https://github.com/ipa-cmh/ros2model/) - -OLD: -- Language server for the RosModels (web-based models editor): [theia-ros-model](https://github.com/ipa-nhg/theia-ros-model) -- Web interface to automatically extract models from public source code: [model extractor](http://ros-model.seronet-project.de/) -- Source code for the web interface (extract models for non-public available ROS packages): [ros-model-cloud](https://github.com/ipa320/ros-model-cloud) +- Eclipse update site: [RosTooling-update-site](https://github.com/ipa320/RosTooling-update-site) Publications: - Paper: Bootstrapping MDE Development from ROS Manual Code - Part 1: Metamodeling [IRC19 paper](https://ieeexplore.ieee.org/document/8675668) @@ -39,18 +32,17 @@ Publications: --------------------------------------------------------- -# ROS TOOLING MANUAL +# RosTooling Manual ## Installation -Tbd -- [As VS Code plugin](tbd) +- [Eclipse feature](docu/Installation.md#option-1-using-the-release-version-recommended) - [(Only for tooling developers) From Source code in eclipse](docu/Installation.md#option-2-using-the-eclipse-installer---source-installation-ros-tooling-developers) +- VS Code plugin(tbd) - WIP [vscode-RosTooling](https://github.com/ipa320/vscode-RosTooling) ## Tutorials - Create component models: - - (Prerequisite) [Add communication objects](docu/NewCommunicationObjects.md) - [Create a ROS model from your source code(static code analyzer)](docu/NewRosModel.md) - [Create a ROS model from a deployed robot using our introspection at runtime tool](docu/IntrospectionNode.md) @@ -58,13 +50,22 @@ Tbd - [Generation of code from models](docu/CodeGeneration.md) - Combine components to form a ROS System - - [Create manually a new RosSystem description](docu/RosSystemModelDescription.md) - - [Create a ROS system model from your source code (static code analyzer)](docu/NewRosSystemModel.md) - - [System Model extraction using introspection at runtime](docu/IntrospectionSystem.md) + +- Examples: + - [Simple publisher-subscriber](docu/Example_PubSub.md) + - [Turtlesim](docu/Example_Turtlesim.md) - [Update Release versions (only for administrators)](docu/Release.md) ## Model examples The repository [ros-model-examples](https://github.com/ipa-nhg/ros-model-examples) contains a set components and system examples. + +--------------------------------------------------------- +# OLD (out-of-date) + +Links to related repositories: +- Language server for the RosModels (web-based models editor): [theia-ros-model](https://github.com/ipa-nhg/theia-ros-model) +- Web interface to automatically extract models from public source code: [model extractor](http://ros-model.seronet-project.de/) +- Source code for the web interface (extract models for non-public available ROS packages): [ros-model-cloud](https://github.com/ipa320/ros-model-cloud) diff --git a/docu/Installation.md b/docu/Installation.md index d83a10bf4..500eb2a9b 100644 --- a/docu/Installation.md +++ b/docu/Installation.md @@ -2,43 +2,42 @@ ### Option 1: Using the Release version (Recommended) -In Eclipse, go to *Help* > *Install New Software...*. To install the latest version of the ROS tooling, add the update site URL [http://ros-model.seronet-project.de/updatesite/latest/](http://ros-model.seronet-project.de/updatesite/latest/)(*) in the *Work with* section. If you wish to install an earlier version instead, go to the [the update site](http://ros-model.seronet-project.de/updatesite/), choose the desired version and copy its URL. +The first step is to install eclipse. Please download the installer from the official eclipse [website](https://www.eclipse.org/downloads/packages/installer). Once you start the installer, select the package "Eclipse Modeling Tools". -![alt text](images/install_updatesite.png) - -If none package is listed, please uncheck the option *Group items by category*. The category *ROS Model* appears in the *Name* area. Check the box in front of *ROS model* and click *Next* to review the list of items to be installed. Click *Next* again to read and accept the terms of the license agreements and afterwards click *Finish*. Eclipse will then start to install the ROS tooling and its dependencies. If you get a security warning about the authenticity, click OK. Finally, when asked, restart Eclipse to complete the installation process. +![alt text](images/install_eclipse_modeling.png) +Press next, and then pick the java version 19 and the folder where you would like to install eclipse. -(*) Apart of the latest stable release of the tooling, some pre-releases for new feautures are available. See the following list of current pre-releases: +![alt text](images/install_eclipse_jdk_version.png) -| Name | Code version | Update Site Link | Description | -|---|---|---|---| -|TestComponentStack|https://github.com/ipa320/ros-model/tree/1.4.0_TestComponentStacks|http://ros-model.seronet-project.de/updatesite/TestComponentStacks/latest/| Added to the RosSystem metamodel the option to group components forming components stacks. This pre-release is backward compatible for the models, but the validators and generators are **not** updated. If Xtext report errors, please ignore them. | -| v1.5 | https://github.com/ipa320/ros-model/tree/1.5.0_pre-release |http://ros-model.seronet-project.de/updatesite/pre-release/latest/| Long term version of the grammar (simplified for the 1.4 release). **This version is not backwards compatible with 1.3 and earlier releases**| +Continue the installation, acepting the license, as usual. +Once the installation is completed, go to *Help* > *Install New Software...*. To install the latest version of the ROS tooling, add the update site URL [https://raw.githubusercontent.com/ipa320/RosTooling-update-site/main](https://raw.githubusercontent.com/ipa320/RosTooling-update-site/main)(*) in the *Work with* section. +![alt text](images/install_updatesite.png) +If none package is listed, please uncheck the option *Group items by category*. The category *ROS Model* appears in the *Name* area. Check the box in front of *ROS model* and click *Next* to review the list of items to be installed. Click *Next* again to read and accept the terms of the license agreements and afterwards click *Finish*. Eclipse will then start to install the ROS tooling and its dependencies. If you get a security warning about the authenticity, click OK. Finally, when asked, restart Eclipse to complete the installation process. To start using the ROS tooling continue with the [step 1](#1-switch-to-the-ros-developer-perspective) ### Option 2: Using the Eclipse Installer - Source installation (ROS tooling developers) -First the java environment have to be setup, for eclipse it is recomended the installation of the version 8 (i.e. X=8) for Ubuntu 16.04 and 11 (i.e. X=11) for the 18.04 and 20.04: +First the java environment have to be setup: ``` -sudo apt-get install openjdk-11-jre +sudo apt-get install openjdk-19-jre ``` -Download the official [Eclipse Installer](https://www.eclipse.org/downloads/packages/installer) for your preferred operating system. Execute the installer and choose the advanced mode (menu on the right-up corner). Select the Product *Eclipse Modeling tools* package, for the version it is recommended *2021-12*. +Download the official [Eclipse Installer](https://www.eclipse.org/downloads/packages/installer) for your preferred operating system. Execute the installer and choose the advanced mode (menu on the right-up corner). Select the Product *Eclipse Modeling tools* package. And then pick the java version 19. ![alt text](images/eclipse_installer1.png) Press *Next* and add a new *User project* pressing the green button *+*: ``` Catalog: Github Projects -Resource URIs: https://raw.githubusercontent.com/ipa320/ros-model/master/EclipseInstaller/ROSModel.setup +Resource URIs: https://raw.githubusercontent.com/ipa320/RosTooling/main/EclipseInstaller/ROSModel.setup ``` Sometimes eclipse is not able to find the file, for those cases we recommend to download the file to the local memory of the machine and import it: ``` -wget https://raw.githubusercontent.com/ipa320/ros-model/master/EclipseInstaller/ROSModel.setup +wget https://raw.githubusercontent.com/ipa320/RosTooling/main/EclipseInstaller/ROSModel.setup ``` ![alt text](images/eclipse_installer2.png) diff --git a/docu/Introspection.md b/docu/IntrospectionNode.md similarity index 100% rename from docu/Introspection.md rename to docu/IntrospectionNode.md diff --git a/docu/RosModelDescription.md b/docu/RosModelDescription.md new file mode 100644 index 000000000..c1f6417b2 --- /dev/null +++ b/docu/RosModelDescription.md @@ -0,0 +1 @@ +## TBD diff --git a/docu/RosSystemModelDescription.md b/docu/RosSystemModelDescription.md new file mode 100644 index 000000000..c1f6417b2 --- /dev/null +++ b/docu/RosSystemModelDescription.md @@ -0,0 +1 @@ +## TBD diff --git a/docu/images/install_eclipse_jdk_version.png b/docu/images/install_eclipse_jdk_version.png new file mode 100644 index 000000000..62331b5d3 Binary files /dev/null and b/docu/images/install_eclipse_jdk_version.png differ diff --git a/docu/images/install_eclipse_modeling.png b/docu/images/install_eclipse_modeling.png new file mode 100644 index 000000000..a21d3b43c Binary files /dev/null and b/docu/images/install_eclipse_modeling.png differ diff --git a/docu/introspection.rosinstall b/docu/introspection.rosinstall deleted file mode 100644 index 6a559db02..000000000 --- a/docu/introspection.rosinstall +++ /dev/null @@ -1,8 +0,0 @@ -- git: - local-name: ros_model_parser - uri: https://github.com/ipa-nhg/ros_model_parser.git - version: fix-value -- git: - local-name: rosgraph_monitor - uri: https://github.com/ipa-nhg/rosgraph_monitor.git - version: rossystem_snapshot diff --git a/docu/CompareSpec.md b/docu/old/CompareSpec.md similarity index 83% rename from docu/CompareSpec.md rename to docu/old/CompareSpec.md index ba82ee5e4..40953c9ee 100644 --- a/docu/CompareSpec.md +++ b/docu/old/CompareSpec.md @@ -4,14 +4,14 @@ If you want to check that the model of your node is following a concrete specifi Press the button of ROS model checker: -![alt text](images/compare_icon.png) +![alt text](../images/compare_icon.png) Select as input your model file and as specification the model that defines the standard you want to follow (some specifications are available under **de.fraunhofer.ipa.ros.communication.objects/BasicSpecs**). -![alt text](images/compare_select.png) +![alt text](../images/compare_select.png) To use this feature you have to locate your model file in your eclipse workspace by importing the project that contains it. By pressing *Finish* a dialog will give you a summary of your analysis: -![alt text](images/compare_result.png) +![alt text](../images/compare_result.png) diff --git a/docu/ModelCombine.md b/docu/old/ModelCombine.md similarity index 97% rename from docu/ModelCombine.md rename to docu/old/ModelCombine.md index 9d1c56d94..c03046404 100644 --- a/docu/ModelCombine.md +++ b/docu/old/ModelCombine.md @@ -6,11 +6,11 @@ This feature allows the merge of two different ROS system models. To combine t -![CombineModels](images/CombineModels_1.png) +![CombineModels](../images/CombineModels_1.png) A pop-up menu will ask you for the two models to combine (have to be on imported project of your workspace) and the path where to save the resulted file (that will be called *result.rossystem*. Finally the user can check the box "Combine to the minimal model (restrictive strategy)" to switch the strategy. -![CombineModels](images/CombineModels_2.png) +![CombineModels](../images/CombineModels_2.png) diff --git a/docu/NewComponent.md b/docu/old/NewComponent.md similarity index 90% rename from docu/NewComponent.md rename to docu/old/NewComponent.md index 3db611ef8..a3e9bac65 100644 --- a/docu/NewComponent.md +++ b/docu/old/NewComponent.md @@ -4,7 +4,7 @@ Please be sure that the tool is installed and your workspace setup, see the [ins To create a new component you have to press the button "Add new Component from Ros node" -![alt text](images/add_new_component.png) +![alt text](../images/add_new_component.png) A dialog will be open and ask you to select a folder to contain your new model (we recommend the "components" one) and to give a name to your component. @@ -12,4 +12,4 @@ The next menu will ask you to give to your component a name and a namespace (opt Your component will be automatically created, in case you want to modify the default remaps of the interfaces you can edit the file using the EMF editor -![](images/modify_component.png) +![](../images/modify_component.png) diff --git a/docu/NewProject.md b/docu/old/NewProject.md similarity index 90% rename from docu/NewProject.md rename to docu/old/NewProject.md index 6b12e25e3..c61ff883d 100644 --- a/docu/NewProject.md +++ b/docu/old/NewProject.md @@ -4,16 +4,16 @@ Please be sure that the tool is installed and your workspace setup, see the [ins To create a new project you have to press the button "Add new Ros Project" -![alt text](images/new_project.png) +![alt text](../images/new_project.png) A pop-up dialog will ask you to define the name of the project. Once you press finish a new folder will be created with a collection of common messages and services and a predefined ROS model. To describe easily the model you can use a Sirius representation. +![](../images/new_artifact_representation.png)--> A new window will be opened where you can choose and add elements by selecting them on the side toolbar. Using the properties view you can modify and describe the properties of each element. -![](images/node_representation.png) +![](../images/node_representation.png) Once you finish you can open the file under the folder "rosnodes" that describes your model and check that all the information is correct. This editor has an autocomplete function (by pressing Ctrl+Space) and will report any error made by editing. diff --git a/docu/NewSystem.md b/docu/old/NewSystem.md similarity index 93% rename from docu/NewSystem.md rename to docu/old/NewSystem.md index e5eac36c7..053ea4547 100644 --- a/docu/NewSystem.md +++ b/docu/old/NewSystem.md @@ -10,21 +10,21 @@ scan_system_demo To create a new system you have to press the button "Add new Ros System" -![alt text](images/add_new_system.gif) +![alt text](../images/add_new_system.gif) A dialog will be open and ask you to select a folder to contain your new model, you can just select the "scan_system_demo" folder. Give a name to your new system and press "Next > ", the new dialog window will ask you for a Ros Components, this step is not required, you can just press "Finish". To modify easily the model you can use a Sirius representation. Open the file representation.aird with the Aird editor and in the menu representations choose the "RosSystem" option and press "New.." then choose the Ros System entity of your "*.rossystem" model and press finish. -![alt text](images/RosSystem_entity.gif) +![alt text](../images/RosSystem_entity.gif) A new window will appear where you can choose and add elements by selecting them on the side toolbar and the properties view. With the toolbar you can add a new component. Press the option "New component", a window will be opened and ask for a new name for you component: -![alt text](images/add_new_component_name.gif) +![alt text](../images/add_new_component_name.gif) Give a name and (optionally) a namespace to a new component, for example: -![alt text](images/new_component1.gif) +![alt text](../images/new_component1.gif) Press the button "Browse.." and select the model "sick_s300.ros" of the rosnode folder. Repeat the previous process for the creation of other tree components: @@ -48,7 +48,7 @@ RosModel: rosnodes/scan_unifier.ros Now that the components are created you can define the desired connections between the components using the tool "Topic Connection", the only imposed rule to create connections is that the information object (message or service type) is the same on both sides. For our example the natural connection to be created are the shown on the following figure: -![alt text](images/rossystem_withconnections.png) +![alt text](../images/rossystem_withconnections.png) If the modifications are correct and after save the changes, two files will be automatically generated 1) a componentinterface file of your full system in the folder "components" and 2) a launch file to start the selected ROS nodes in the correct predefined Namespace (in a new folder "src-gen"). @@ -75,7 +75,7 @@ The resulted launch file contains the defined namespaces and remap the topics of We can also try removing the namespace of the diagnostics topics for the scanners. Choose the different diagnostics publisher and modify using the properties view its names to for example: -![alt text](images/diagnostics_names.gif) +![alt text](../images/diagnostics_names.gif) These changes should change the roslaunch file to: @@ -106,13 +106,13 @@ The next part of this tutorial shows the creation of a new System by the composi To create a new system you have to press the button "Add new Ros System" and a dialog will be open and ask you to select a folder to contain your new model, you can just select the "scan_system_demo" folder. Give a name to your new system and press "Next > ", the new dialog window will ask you for a Ros Components press "Browse.." and select the componentinterface autogenerated by the previous example (i.e. scan_system_demo/components/scan_composition.componentinterface). -![alt text](images/composition_subsystem.gif) +![alt text](../images/composition_subsystem.gif) To modify easily the model you can use a Sirius representation. Open the file representation.aird with the Aird editor and in the menu representations choose the "RosSystem" option and press "New.." then choose the Ros System entity of your "*.rossystem" model and press finish. A new window will appear where you can choose and add elements by selecting them on the side toolbar and the properties view. -![alt text](images/diagnostics_system.gif) +![alt text](../images/diagnostics_system.gif) The new system already contains the previous system model as a single block and can be composed by adding new components, for example you can create a new component with the following configuration: @@ -123,7 +123,7 @@ RosModel: rosnodes/diagnostic_aggregator.ros ``` And join the diagnostics interfaces with a connection. The resulted launch file will include the previous generated launch file and the new imported node. -![alt text](images/diagnostics_system_complete.gif) +![alt text](../images/diagnostics_system_complete.gif) ``` diff --git a/docu/Parameters.md b/docu/old/Parameters.md similarity index 98% rename from docu/Parameters.md rename to docu/old/Parameters.md index cdd33fcbf..c093553ad 100644 --- a/docu/Parameters.md +++ b/docu/old/Parameters.md @@ -15,7 +15,7 @@ and their description is allowed at ROS and ROSSystem model level. The definition of a parameter at ROS model level means that the ROS original node get or set a new parameter, this case is partially supported by the graphical editor, which allows only the definition of parameters of primitive types: String, Double, Integer and Boolean without a default value. -![alt text](images/parameter_set.gif) +![alt text](../images/parameter_set.gif) For the complete definition of parameters the user has to open the ROS model editor, where the language format is the following: diff --git a/docu/ROSSeRoNet.md b/docu/old/ROSSeRoNet.md similarity index 91% rename from docu/ROSSeRoNet.md rename to docu/old/ROSSeRoNet.md index 140affe2a..bb4e546bc 100644 --- a/docu/ROSSeRoNet.md +++ b/docu/old/ROSSeRoNet.md @@ -28,15 +28,15 @@ Go to Menu Window -> Perspective -> Open Perspective -> Other... -> ROS develope This example requires the common ROS interfaces, by clicking the button *Import Common ROS Objects* you will get the latest version from GitHub and import them automatically to your workspace, this function button is only available for the ROS developer perspective: menu *Window* => *Perspective* => *Open Perspective* => *ROS developer*. -![alt text](images/01-ImportCommnObjects.png) +![alt text](../images/01-ImportCommnObjects.png) And you can import now the project to be transformed, for example [cob_light](https://github.com/ipa-nhg/ros-model-examples/tree/master/RosComponents/cob_light) from the ros-model-examples repository (previously cloned). -![alt text](images/ROSSeRoNet_import_cob_light.gif) +![alt text](../images/ROSSeRoNet_import_cob_light.gif) By openning the representation file you can see the following model visualization: -![alt text](images/ROSSeRoNet_cob_light_representation.gif) +![alt text](../images/ROSSeRoNet_cob_light_representation.gif) Or you can create a [new project from an empty model](https://github.com/ipa320/ros-model/blob/master/docu/NewProject.md). In case you have an existing ROS package that contains the C++ code of your component we recommend to use the [extractor](https://github.com/ipa320/ros-model/blob/master/docu/NewRosModel.md) instead of start from scratch the model definition. @@ -46,21 +46,21 @@ NOTE: all the msgs, srvs or actions used by your node (package dependencies) hav By default the tooling will automatically autogenerate the corresponding component interface (a generic model of a component) of all the nodes on your ROS project. The autogenerated components are always located under a new folder called *components/*. This model is the bridge from ROS to other frameworks. For the case of SeRoNet the tooling includes a special function that can be activated by a right click on the file an choosing the option *Generate ROS-SeRoNet Mixed Port*. -![alt text](images/ROSSeRoNet_cob_lightComponentToSeRoNet.gif) +![alt text](../images/ROSSeRoNet_cob_lightComponentToSeRoNet.gif) The result of this call is a rospoolinterface file. Start point of the following tutorial: https://wiki.servicerobotik-ulm.de/tutorials:ros:mixed-port-component-ros. Complementarily and to make easier the relay of interfaces we incorporated an extra help function that automatically relays one of the ROS interfaces. The previous function through its pop-up dialog guides the user to generates not only the rospoolinterface model but also a suggestion of a SeRoNet component with a ROS mixed Port. The resulted files will be generated under the folder *src-gen/SeRoNetComponent* -![alt text](images/ROSSeRoNet_generatedFilesSeRoNet.gif) +![alt text](../images/ROSSeRoNet_generatedFilesSeRoNet.gif) These two files can be used to create a [new SeRoNet component](https://wiki.servicerobotik-ulm.de/tutorials:develop-your-first-component:start). First the presperctive have to be changed to the "Component Supplier" one. This perspective will add the option to create a new Component Project by giving a name and a localization. The previosly generated SeRoNetComponent files can simply be copied to the model folder of the new project. -![alt text](images/ROSSeRoNet_SeRoNetComponent.gif) +![alt text](../images/ROSSeRoNet_SeRoNetComponent.gif) For this example the corresponding SeRoNet component with a ROS Mixed Port (by creating a [new SeRoNet component](https://wiki.servicerobotik-ulm.de/tutorials:develop-your-first-component:start) and including the autogenerated files) will shows: -![alt text](images/result.png) +![alt text](../images/result.png) For further information please check: [Automatic transformation of ROS Components to SeRoNet mixed Ports](https://github.com/seronet-project/SeRoNet-Tooling-ROS-Mixed-Port/tree/master/de.seronet_projekt.ros.componentGateway.generator#automatic-transformation-of-ros-components-to-seronet-mixed-ports) @@ -71,11 +71,11 @@ For some cases like the cob_light driver, the ROS node definition requires some This will generate the file services and the file types under the folder *src-gen*. -![alt text](images/cob_light_obtects_to_SeRoNet.gif) +![alt text](../images/cob_light_obtects_to_SeRoNet.gif) -![alt text](images/cob_light_obtects_to_SeRoNet2.gif) +![alt text](../images/cob_light_obtects_to_SeRoNet2.gif) -![alt text](images/cob_light_obtects_to_SeRoNet3.gif) +![alt text](../images/cob_light_obtects_to_SeRoNet3.gif) For further information please see: https://github.com/ipa-nhg/SeRoNet-Tooling-ROS-Mixed-Port/tree/M2MCommunicationObjectsReadme/de.seronet_projekt.ros.componentGateway.generator#automatic-transformation-of-communication-objects @@ -83,7 +83,7 @@ These files are the input for a SeRoNet Domain Model. By creating a [new Domain Probably after create the new Domain Models project and add the types and services files you will get an error because some dependencies are missed. -![alt text](images/domainModelsError.gif) +![alt text](../images/domainModelsError.gif) For the most common ROS objects the project dependencies are already available. We suggest to import *always* by default the following projects from the GitHub repositories previously cloned: @@ -93,4 +93,4 @@ For the most common ROS objects the project dependencies are already available. Then open the Domain Expert perspective (Go to Menu Window -> Perspective -> Open Perspective -> Other... -> Domain Expert) and for the created Domain Models expert that holds your communcaition object add the import dependencies (Right click on *imports* folder). -![alt text](images/ImportSolve.png) +![alt text](../images/ImportSolve.png) diff --git a/docu/deployment.md b/docu/old/deployment.md similarity index 89% rename from docu/deployment.md rename to docu/old/deployment.md index fcbef5bca..73ca6e0a0 100644 --- a/docu/deployment.md +++ b/docu/old/deployment.md @@ -30,11 +30,11 @@ A dialog will be open and ask you to select a ROS Distro. In this case, the ross This process is as shown blow. -![alt text](images/rostooling_deployment.gif) +![alt text](../images/rostooling_deployment.gif) Then deployment artifacts will automatically created, as you can find under "src-gen" folder -![alt text](images/pub_sub_ros2_deployment_gen.png) +![alt text](../images/pub_sub_ros2_deployment_gen.png) #### Rossystem with parameters @@ -49,11 +49,11 @@ A dialog will be open and ask you to select a ROS Distro. In this case, the ross This process is as shown blow. -![alt text](images/rostooling_deployment_jackal.gif) +![alt text](../images/rostooling_deployment_jackal.gif) Then deployment artifacts will automatically created. -![alt text](images/jackal_deployment_gen.png) +![alt text](../images/jackal_deployment_gen.png) ### Use github action to generate docker images @@ -67,16 +67,16 @@ You also need a dockerhub account. Once you have dockerhub account, you need to The result should looks like below. -![alt text](images/github_secrets.png) +![alt text](../images/github_secrets.png) In this repository, you need to create a folder ".github/workflows". Then you need to put a file with suffix "_workflow.yml" from a generated folder to this folder. For example, you can put "communication_foxy_workflow.yml" or "agriculture_robot_sprint3_noetic_workflow.yml" under ".github/workflows" folder, as shown below. -![alt text](images/github_workflows_folder.png) +![alt text](../images/github_workflows_folder.png) Then you need to put the generated folder in this repository. For example, we put "communication_ros2" and "agriculture_robot_sprint3" in the repository. The locations of these two folder as shown below. -![alt text](images/rossystem_deployment_repo.png) +![alt text](../images/rossystem_deployment_repo.png) You can push them to github. Github action will build docker image and push images in dockerhub. @@ -85,7 +85,7 @@ You can push them to github. Github action will build docker image and push imag Before starting the system, you need to modify "docker-compose" file. You need to add your docker account as prefix before a docker image name. For example, we add "kogrob2" (docker hub account name) in front of "communication_foxy:latest", as shown below. -![alt text](images/docker-compose.png) +![alt text](../images/docker-compose.png) Then you can use the command below to start the system. ``` diff --git a/docu/simulateRuntime.md b/docu/old/simulateRuntime.md similarity index 87% rename from docu/simulateRuntime.md rename to docu/old/simulateRuntime.md index fe4afbf4a..8c28dd153 100644 --- a/docu/simulateRuntime.md +++ b/docu/old/simulateRuntime.md @@ -4,16 +4,16 @@ In ROS, when executing a launch file that defines several nodes, the connections This function can be called from the system graphical editor. The definition of ROS systems is covered in this tutorial: [Define a ROS system as a composition of components](NewSystem.md). -![alt text](images/system_instrospection.png) +![alt text](../images/system_instrospection.png) The menu can be opened by right-clicking on the system background. It offers 3 options: * Simulate Runtime connections: this option will create all connections that are automatically built at runtime (interfaces with same name and same message (communication object) type). In the example diagram these are the "diagnostics" topics: -![alt text](images/system_introspection_simulate_runtime.png) +![alt text](../images/system_introspection_simulate_runtime.png) * Auto Connect open ports: this option will suggest likely connections, i.e. it will join interfaces with the same message (communication object) type and will remap consequently the names of the ports. For the example diagram the result will be: -![alt text](images/system_introspection_autoconnect.png) +![alt text](../images/system_introspection_autoconnect.png) * Remove all connections: to clear the connections of the model