SRRC Wiki

Service Robotics Research Center
at Ulm University of Applied Sciences

User Tools

Site Tools


tutorials:smartdg-dependency-graphs:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
tutorials:smartdg-dependency-graphs:start [2020/11/24 17:24]
Vineet Nagrath
tutorials:smartdg-dependency-graphs:start [2020/11/24 17:27] (current)
Vineet Nagrath
Line 1: Line 1:
 +====== SmartDG : Adding SmartDG Dependency Graphs to SmartMDSD Systems ======
 +
 +This tutorial adds SmartDG Dependency Graphs to an existing SmartMDSD system project.
 +
 +===== Basic Information =====
 +
 +^ Level                | Advanced ​                                                                                                                                                                     |
 +^ Role                 | System Builder ​                                                                                                                                                               |
 +^ Assumptions ​         | This tutorial assumes you know how to compose components in a system (see [[tutorials:​develop-your-first-system:​start]]),​ and that you have a basic understanding of OPC UA.  |
 +^ System Requirements ​ | Virtual Machine Image Installed, see [[tutorials:​vm-welcome|ready-to-go virtual machine]] ​                                                                                    |
 +^ You will learn       | How to add SmartDG Dependency Graphs to existing SmartMDSD system projects ​                                                                                                   |
 +
 +
 +
 +
 +===== Description =====
 +
 +Dependency Graphs are networks of dependencies that emerge from the flow of system-level characteristics,​ controlled by evidence and business logic. This tutorial adds SmartDG Dependency Graphs to an existing SmartMDSD system project.\\ This tutorial is also available as **[[https://​youtu.be/​tXEsvgSH9bU?​t=432|video tutorial]]**.\\
 +
 +
 +===== Adding SmartDG Dependency Graph Model to SmartMDSD System Projects =====
 +
 +> In an existing SmartMDSD system project.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A1.png|}}
 +
 +> Component instances that are of components with the existing SmartDG component models.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A2.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A3.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A4.png|}}
 +
 +> Add a new SmartDG model to the system project "​SurveillanceSystem"​.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A5.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A6.png|}}
 +
 +> The "​dg"​ (Dependency Graph) and "​de"​ (Tier-3 dependency environment) models will be generated. The "​de"​ model is empty by default.
 +
 +The "​dg"​ default model will import the Tier-2 Dependency base environment from SMART_ROOT_ACE and make a Tier-3 User Environment model at HOME after it is built. SmartDG source code and the corresponding executable is generated at the HOME location. It is possible to replace HOME with a user-defined file path in the model. ​
 +
 +> "​Unnamed"​ connectors and random placements for components in GUI are generated by the default "​dg"​ model.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A7.png|}}
 +
 +> Connectors (CS05, DF etc.) from the Tier-2 Environment model can be specified for specific Dependency connections.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A8.png|}}
 +
 +> Specifying the placement of components in the GUI is essential for a clean SmartDG execution GUI.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A9.png|}}
 +
 +> SmartDG models (source code and executables) are regenerated after every change in the model files.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A10.png|}}
 +
 +> Interlinked windows are generated for "​Component Views" and "​Dependency Object"​ views.
 +
 +> SmartDG Component View "​Cam1"​ : An instance of Component "​ZeroCamera"​ from Tier-3 User Environment. This uses generic transfer functions.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A11.png|}}
 +
 +> SmartDG Component View "​Cam2"​ : A second instance of Component "​ZeroCamera"​ from Tier-3 User Environment. This too uses generic transfer functions.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A12.png|}}
 +
 +> SmartDG Component View "​Mapper": ​ An instance of Component "​TwoMapMaker"​ from Tier-3 User Environment. This Transfer Functions provided by a Tier-2 Environment model.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A13.png|}}
 +
 +> SmartDG Component View "​Louie"​ : An instance of Component "​OneUser"​ from Tier-3 User Environment. This uses generic transfer functions.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A14.png|}}
 +
 +> SmartDG Component View "​Huey"​ and "​Dewey"​ : Another two instances of Component "​OneUser"​ from Tier-3 User Environment. Both of these uses generic functions as well.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A15.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A16.png|}}
 +
 +> SmartDG Dependency Object View "​DGSecurity"​ : Presents editable linked instances of Dependency Object "​DGSecurity"​ across the complete system "​SurveillanceSystem"​.
 +
 +> The Dependency Object "​DGSecurity"​ is defined in the Tier-2 Environment model.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A17.png|}}
 +
 +> SmartDG Dependency Object View "​DGPrivacy"​ : Presents editable linked instances of Dependency Object "​DGPrivacy"​ across the complete system "​SurveillanceSystem"​.
 +
 +> The Dependency Object "​DGPrivacy"​ is defined in the Tier-2 Environment model.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A18.png|}}
 +
 +> "​Component Views" are specific to a component'​s activity while the "​Dependency Object"​ represents the system-wide activity of a particular Dependency Object.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A19.png|}}
 +
 +> Changes in dependency objects across views are available for standalone (detached) or synced (attached) observation modes.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A20.png|}}
 +
 +> The additional Download and Upload options give the user control over when to display the results of the most recent inward or outward Sync.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A21.png|}}
 +
 +> Value of Dependency Object instance "​DGPrivacy"​ in Output Port "​RGBImage"​ of Component "​Cam1"​ is changed by the most recent inward (Download) Sync.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A22.png|}}
 +
 +> Solver and Transfer Function activity can be checked on the console.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A23.png|}}
 +
 +> SmartDG source code and the corresponding executable is generated at the HOME location.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Adding_DG_Model_to_System_Project_SmartMDSD_A24.png|}}
 +
 +☎ Watch video [[https://​github.com/​Servicerobotics-Ulm/​SmartDG-Tutorials/​blob/​main/​03_04_Adding_DG_Model_to_System_Project_SmartMDSD/​Adding_DG_Model_to_System_Project_SmartMDSD_A25.mp4|Adding SmartDG Dependency Graph Model to SmartMDSD System Projects]]
 +
 +===== SmartDG Dependency Graph Model using SmartDGlite =====
 +
 +> In addition to the SmartDG General Component and Dependency Object views, an additional system-wide multi-view representation (SmartDG Lite Mode) is generated by SmartDG.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A1.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A2.png|}}
 +
 +> At present, the web-browser-based "​SmartDG Lite Mode" is only available to observe (and not edit) the dependency object associations. This mode will be more functional in future releases.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A3.png|}}
 +
 +> A SmartDG execution for a system model generates a folder named "​SmartDGlite"​ in the directory of the executable file.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A4.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A5.png|}}
 +
 +> To use the "​SmartDG Lite Mode", Execute the "​LaunchServer.sh"​ script from another terminal window. This is to launch the data-sync server.
 +
 +> Note that this step is NOT REQUIRED to run the SmartDG system execution model in "​General Mode". The user can avoid the steps given hereafter if "​SmartDG Lite Mode" is not required.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A6.png|}}
 +
 +> The Data-sync server launch is confirmed by the automatic launch of the browser window.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A7.png|}}
 +
 +> The "​SmartDG Lite Mode" can be launched by opening the "​DGlite.html"​ file in any browser.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A8.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A9.png|}}
 +
 +> An animated "​Live"​ dot indicates that the "​SmartDG Lite Mode" is synced with the General SmartDG system execution model.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A10.png|}}
 +
 +> "​SmartDG Lite Mode" provides greater functionality in terms of handling and observing the components and individual dependency links.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A11.png|}}
 +
 +> Changes made in any of the General SmartDG component or dependency object views are reflected immediately in "​SmartDG Lite Mode".
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A12.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A13.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A14.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A15.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A16.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A17.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A18.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A19.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A20.png|}}
 +
 +> "​SmartDG Lite Mode" is in the experimental stage. Plans to make this the principal GUI are in the pipeline.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A21.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A22.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A23.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A24.png|}}
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A25.png|}}
 +
 +> Functionality to add/delete dependencies and change the values of dependency object instances in "​SmartDG Lite Mode" is imagined as a future possibility.
 +
 +{{:​tutorials:​smartdg-dependency-graphs:​Tutorial_03_04_Using_Litemode_A26.png|}}
 +
 +☎ Watch video [[https://​github.com/​Servicerobotics-Ulm/​SmartDG-Tutorials/​blob/​main/​03_05_Tutorial_03_04_Using_Litemode/​Tutorial_03_04_Using_Litemode_A27.mp4|SmartDG Dependency Graph Model using SmartDGlite]]
 +
 +===== What do do next? =====
 +* [[tutorials:​smartdg:​]]\\
 +* Go through SmartDG Library Tutorials linked above and make your first Dependency Graph executable model.\\
 +===== Acknowledgements =====
 +{{ :​acknowledgements-seronet.png |}}
 +{{ :​acknowledgements-robmosys.png |}}
  
tutorials/smartdg-dependency-graphs/start.txt · Last modified: 2020/11/24 17:27 by Vineet Nagrath