Table of Contents

Tutorials

We provide tutorials to learn applying and using the SmartMDSD Toolchain. Tutorials are grouped thematically into lessons. Please check the full list in order to find those best addressing your interests. In case you get into trouble, see Contact and Support. Some of the tutorials are also available as video tutorial YouTube Videos.

The effort to follow these tutorials is fairly low since we provide a virtual machine image (virtual appliance) with everything set-up and ready-to-go.

In addition,

Download and Starting

Experience Levels

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.

Easy Start and Fast Success

Lesson 1: Look at an Existing System and Run it

This lesson guides you through the SmartMDSD Toolchain and software development environment to get an overview and a comfortable start. We do this by running different robots in simulation. You get an immediate impression of the power of the SmartMDSD Toolchain and its development tools. We provide all the hints of where to find more information, documentation, reusable components etc. We will accomplish all the tasks of this tutorial and the next tutorials by using a Virtual Machine.

Lesson 2: Develop Your First Component, Compose Your First System, Run it in Simulation

Lesson 3: Real-World Deployment

ASCII���Matthias Lutz

This lesson describes how to deploy software components to real-world robots. In the examples, we use a Pioneer P3DX robot and a Robotino robot.

lesson3b.jpg

Lesson 4: Flexible Navigation Stack - New Environments, Skills, and more

Configure the Flexible Navigation Stack for New Environments

Skills used in Systems with the Flexible Navigation Stack

Tier 3: Role-Specific Views and Activities

Skills and Tasks - Component Developer, Behavior Developer, System Builder

This lesson describes how tasks and skills are used by tier-3 roles. The component developer makes the capabilities of his/her component(s) accessible via skills. The behavior developer models task plots. The system builder finally composes components and task plots to systems that can perform jobs.

Using Industry 4.0 Asset Administration Shells

Basics of the AAS and the Industry 4.0 Platform

Adding AAS to Components and Systems

The Purpose of an AAS Server and how to use it

Interacting with the AAS

Interacting with other Technologies

Lesson 5: OPC Unified Architecture (OPC UA)

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.

Lesson 6: Interfacing with ROS Subsystems

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.

Lesson 7: Raspberry Pi

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.

Lesson 8: 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

Dependency Graphs

Lesson 9: Dependency-Graph extensions for SmartMDSD Toolchain (SmartDG)

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 video tutorial.

Variability Management based on Dependency Variability Graphs

Lesson: Modeling, Composing and Resolving Multi-Dimensional Variability Spaces

This is a proof of concept implementation of a general method for variability management in service robotics. It allows to model, compose and resolve variability of software building blocks. It takes into account the principles of separation of roles and composition.

The model-driven implementation in Eclipse allows users to describe via DSLs:

  1. Building blocks at different levels of abstraction, their variability entities and the decomposition relationships between building blocks.
  2. Dependency Variability Graphs: The graph-based dependency relationships between variability entities (including their values by applying function composition).

A code generator is then able to generate a solver of such models that determines requirements-related and environmental-contextual variant bindings of building blocks. Requirements specified by the endusers of these building blocks can be constraints for specific properties of the model (a property is a special subtype of a variability entity) and/or preference specifications for modeled conflict of objectives between properties.

Tier 2: Domain-Experts

Lesson 10: Tier-2 Domain Models by Domain Experts

This lesson is intended for domain experts working at Tier 2. You learn how to introduce domain specific models.

Advanced Tutorials

Helpful Tools

In this section, we list a set of lessons which explain to you helpful tools.

Upcoming Tutorials

Former and Outdated Material

DokuWiki Appliance - Powered by TurnKey Linux