SRRC Wiki

Service Robotics Research Center
at Ulm University of Applied Sciences

User Tools

Site Tools


tutorials: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:start [2020/11/24 19:39]
Vineet Nagrath
tutorials:start [2020/11/24 19:41] (current)
Vineet Nagrath
Line 1: Line 1:
 +====== Tutorials ======
 +
 +We provide **tutorials to learn** applying and using the [[smartmdsd-toolchain:​start|SmartMDSD Toolchain]]. We recommend to go through the material in the listed order. In case you get into trouble, see [[:​contact|]]. Some of the tutorials are also available as video tutorial in a [[https://​www.youtube.com/​playlist?​list=PLJxdA4EZjZiXMxu2FcdqDTCFxWF5H--dX|YouTube Playlist]]
 +
 +In addition, **[[how-tos:​start|note our list of HowTo'​s]]** that provide **very precise and short descriptions of a specific task** in the SmartMDSD Toolchain.
 +
 +
 +===== Experience Levels =====
 +
 +If you only want to try things out but do not want to touch your system, please use the [[:​virtual-machine|Virtual Machine setup]]. Even though you can follow all tutorials with the virtual machine, we recommend to [[installer:​start|setup an own enviroment]] for tutorial levels „advanced“ and „experienced“.
 +
 +^ beginner ​    | For people **just getting in touch** with our tools. Basic robotics knowledge is a plus.                                                     |
 +^ advanced ​    | For full **fledged users who want to apply** all parts of the SmartSoft World. ​                                                              |
 +^ experienced ​ | For the full user and **robotics experts who want to understand**,​ deeply apply, exploit, and eventually contribute to the SmartSoft World. ​ |
 +
 +
 +
 +
 +
 +<WRAP clear/>
 +
 +===== Lesson 1: Looking at an existing system and running it =====
 +{{ :​tutorials:​lesson1.png|}}
 +
 +This lesson guides you through the SmartMDSD Toolchain and software development environment to get an overview and comfortable entry. The effort to follow these tutorials is fairly low since we provide a virtual machine image (virtual machine appliance) with everything set-up and ready-to-go.
 +
 +
 +  * [[tutorials:​launching-vm-and-toolchain:​]]\\ How to download the virtual machine, how set it into operation, and where to look around.
 +
 +  * [[tutorials:​laser-obstacle-avoid-scenario:​]]\\ Explore and run a simple obstacle avoidance robot in simulation.
 +
 +  * [[tutorials:​flexible-navigation-task:​]]\\ Explore and run a more complex system in simulation: the flexible navigation stack that that is in use with real-world service robots.
 +
 +<WRAP clear/>
 +
 +
 +
 +===== Lesson 2: Working with the SmartMDSD Toolchain, Develop your own component and System for Simulation =====
 +{{ :​smartmdsd-toolchain:​system.png?​265}}
 +
 +  * [[tutorials:​develop-your-first-component:​]]\\ How to develop a simple Laser Obstacle Avoidance component.\\ Also available as **[[https://​youtu.be/​BRI_HKMilNw|video tutorial]]**.
 +
 +  * [[tutorials:​develop-your-first-system:​]]\\ Compose a simple laser obstacle avoid system with the Pioneer P3dx robot and the Player/​Stage simulator.\\ Also available as **[[https://​youtu.be/​3LNhatjWb_c|video tutorial]]**.
 +
 +  * [[tutorials:​develop-your-first-domain-model:​]]\\ Complete the picture of component modeling and become able to fully develop your component with custom services: understand how to model a service definition and communication object.
 +
 +<WRAP clear/>
 +
 +
 +===== Lesson 3: Real-World Deployment =====
 +{{ :​tutorials:​p3dx-robots.jpg?​265}}
 +
 +This lesson describes how to deploy software components to real-world robots. In the examples, we use a Pioneer P3DX robot.
 +
 +  * [[tutorials:​flexible-navigation-task-rw-deployment:​|Deploying the Flexible Navigation Stack]]\\ We use the previously developed system (Pioneer P3DX navigation) to deploy it on a real robot.
 +
 +  * [[:​tutorials:​real-world-deployment:​|Creating your Own Real-World Deployment]]\\ We extend the system that was developed in [[tutorials:​develop-your-first-system:​]] to make it work on real robot. We focus on the differences between deployment for simulator and deployment for real-world.
 +
 +<WRAP clear/>
 +
 +
 +===== Lesson 4: OPC Unified Architecture (OPC UA) =====
 +{{ :​tutorials:​opcua-component.png?​265|}}
 +
 +This lesson describes how to use the SmartMDSD Toolchain with the OPC Unified Architecture (OPC UA). More specifically,​ the lesson describes how to model and use a Mixed-Port Component for OPC UA.
 +
 +  * [[tutorials:​opcua-client:​]]\\ This tutorial describes how component supplier models a mixed port software component with a plain OPC-UA port to communicate with a OPC UA enabled devices.\\ Also available as **[[https://​youtu.be/​uPZ07_Gi3YE|video tutorial]]** //[Outdated Video: Refer text tutorial]//​.
 +
 +  * [[tutorials:​opcua-client-system:​]]\\ This tutorial composes the mixed-port component together with other software components to a system.\\ Also available as **[[https://​youtu.be/​udQiwRdzCVw|video tutorial]]**.
 +
 +  * [[tutorials:​opcua-server:​]]\\ This tutorial shows how to develop a mixed-port component with an Plain OPC UA Server Port (ReadServer).\\ Also available as **[[https://​youtu.be/​Ho7Fr2KefKQ|video tutorial]]**
 +
 +<WRAP clear/>
 +
 +
 +
 +===== Lesson 5: Interfacing with ROS Subsystems =====
 +{{ :​tutorials:​system-with-ros.png?​265|}}
 +
 +This expert-level lesson describes how to access ROS nodes from the SmartMDSD Toolchain, i.e. how to use an existing ROS subsystem with the SmartMDSD Toolchain. More specifically,​ the lesson describes how to model and use a Mixed-Port Component for ROS.
 +
 +  * [[tutorials:​ros:​mixed-port-component-ros]]\\ This tutorial describes how to model a Mixed-Port Component for ROS in order to access ROS nodes from software components in the SmartMDSD Toolchain.
 +
 +<WRAP clear/>
 +
 +
 +
 +===== Lesson 6: Raspberry Pi =====
 +{{ :​tutorials:​raspberrypi.png|}}
 +
 +This expert-level lesson describes everything you need to get started with the SmartMDSD Toolchain and Raspberry Pi. We will use the example of a LED-powered traffic light.
 +
 +  * [[tutorials:​pi:​installation]]\\ This tutorial provides Raspberry Pi specific installation instructions and general remarks to work with the SmartMDSD Toolchain and the Raspberry Pi.
 +
 +  * [[tutorials:​pi:​components-gpio]]\\ This tutorial describes how to develop software components using the SmartMDSD Toolchain. We use the [[http://​wiringpi.com/​|WiringPi library]] to access the GPIO pins.
 +
 +  * [[tutorials:​pi:​system]]\\ This tutorial describes how to compose a system that runs components on the RaspberryPi and your development computer.
 +
 +<WRAP clear/>
 +
 +
 +===== Lesson 7: GoPiGo Robot and Webots Simulator =====
 +
 +This advanced lesson describes how to use the SmartMDSD Toolchain with the GoPiGo Robot from Dexter Industries. The lesson covers a tutorial for getting started in pure software using simulation and how to operate the hardware robot. A video demonstration of the GoPiGo and Webots simulator is available at [[https://​youtu.be/​fEBv-Lc6FlM]]
 +
 +  * [[tutorials:​gopigo:​simulator]]\\ How to get started with the webots robot simulator.
 +
 +  * [[tutorials:​gopigo:​getting-started]]\\ How to work with the hardware robot.
 +
 +===== Lesson 8: Dependency-Graph extensions for SmartMDSD Toolchain (SmartDG) =====
 +{{ :​tutorials:​SmartDG.png?​265|}}
 +
 +__Dependency Graphs__ are networks of dependencies that emerge from the flow of system-level characteristics,​ controlled by evidence and business logic. __Dependency Objects__ are entities that encapsulate a distinct system characteristic of the system that is relevant to and are altered by components and connectors that compose the system.
 +
 +This lesson describes how to use the __SmartMDSD Toolchain__ with **SmartDG: The Dependency-Graph extensions for SmartMDSD Toolchain**. More specifically,​ these lessons give a detailed account of how to add Dependency Graph Elements to existing SmartMDSD components and system projects. This tutorial is also available as **[[https://​youtu.be/​tXEsvgSH9bU|video tutorial]]**.
 +
 +  * [[tutorials:​smartdg-environments:​]]\\ A Tier-2 SmartDG Environment allows declaration of domain-specific Dependency Objects, Software Components, and approved Transfer Functions for Components provided by their manufacturers. This tutorial describes how to import and use a Tier-2 domain-specific SmartDG Environment model. This tutorial further describes how to import any SmartDG Service model in the workspace.\\ This tutorial is also available as **[[https://​youtu.be/​tXEsvgSH9bU?​t=5|video tutorial]]**.\\
 +
 +  * [[tutorials:​smartdg-dependency-objects:​]]\\ Dependency Objects are entities that encapsulate a distinct system characteristic of the system that is relevant to and are altered by components and connectors that compose the system. This tutorial adds SmartDG Dependency Objects to an existing SmartMDSD component project.\\ This tutorial is also available as **[[https://​youtu.be/​tXEsvgSH9bU?​t=142|video tutorial]]**.\\
 +
 +  * [[tutorials:​smartdg-dependency-graphs:​]]\\ 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]]**.\\
 +  ​
 +  * [[tutorials:​smartdg:​]]\\ Lists and links to SmartDG Tutorials and Repositories.\\
 +
 +:!: **To use the SmartDG feature, wait for SmartMDSD Eclipse Toolchain and Virtual Machine (To be released very soon)** :!:
 +
 +<WRAP clear/>
 +===== Miscellaneous =====
 +
 +  * [[tutorials:​webots:​]]\\ This advanced tutorial describes how to use the SmartMDSD Toolchain together with the Webots simulator.
 +
 +
 +
 +===== Additional material =====
 +{{ :​tutorials:​exercises:​2.png?​265|}}
 +
 +  * [[tutorials:​exercises:​]]\\ This is a supplement to the [[tutorials:​laser-obstacle-avoid-scenario:​start|Laser Obstacle Avoid]] and [[tutorials:​develop-your-first-component:​start|First Software Component]] Tutorials. It describes a set of additional worlds/​environments for the Player/​Stage simulator to test obstacle avoidance algorithms.
 +
 +<WRAP clear/>
 +
 +
 +
 +
 +
 +
 +===== Upcoming Tutorials =====
 +
 +  * Deploying additional files
 +  * Component Mode Definition and usage + life-cycle
 +  * Skill modeling
 +  * [[template|Tutorial Template]]
 +
 +
 +
 +===== Former and Outdated Material =====
 +
 +  * See video tutorials of the **v2-generation** of the SmartMDSD Toolchain at [[https://​www.youtube.com/​playlist?​list=PLJxdA4EZjZiWSlC4R_ChwH_UIcWXWJ8Te|YouTube]].
 +  * You can also find screencasts of the SmartMDSD Toolchain'​s [[https://​web2.servicerobotik-ulm.de/​files/​SmartMDSD_Toolchain/​0.0_first-generation-screencasts/​|first generation]] ​ as of 2009 (outdated).
 +
 +
 +
 +
 +
 +
  
tutorials/start.txt · Last modified: 2020/11/24 19:41 by Vineet Nagrath