Service Robotics Research Center
at Ulm University of Applied Sciences

User Tools

Site Tools



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,

  • HowTo's provide very precise and short descriptions of how to do a specific task in the SmartMDSD Toolchain
  • Student Exercises collects lab work exercises for student courses

Download and Starting

  • In case you already downloaded and installed everything, just skip this part and proceed with the below tutorials.
  • In case someone else did the installation for you, please talk to that person to know about how to access the installation.

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.

  • Simple System: Laser Obstacle Avoid
    Explore and run a simple obstacle avoidance robot in simulation
    (Pioneer P3DX and Robotino in Webots).
    • features a simple reactive and collision-free motion of a robot with a laser ranger
    • example is simple by purpose and you get hands-on experience with the toolchain

  • A More Complex System using the Flexible Navigation Stack
    Explore and run a more complex system in simulation (Pioneer P3DX, Robotino, TIAGo, RMP50, Webots). The flexible navigation stack is a full Navigation Stack (mapping, path planning, collision avoidance, localization, etc.). The example is based on a composition of off-the-shelf software components as they are used in physical robots.
    • features a full navigation stack
    • example uses simulation for easy use of different robots in different environments
    • Also available as video tutorial.

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

  • Develop Your First Domain Model (to be updated)
    Complete the picture of component modeling and become able to add custom services to your component: understand how to model a service definition and how to model a communication object. Important hint: service definitions as well as communication objects are pre-specified for component developers via the domain models and component developers use them as is. They are not introduced by component developers but are agreed upon by domain experts. Nevertheless, component developers can come up with suggestions to domain experts. This tutorial closes the loop for understanding services and communication objects.

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.

  • Deploy a Simple System onto a Pioneer P3DX (or a Robotino)
    We guide you through the steps of deploying a readily configured system onto a real-world P3DX robot. We use the now already well-known example of reactive navigation (a mobile robot with a laser scanner and an obstacle avoidance algorithm). It is pre-configured for the P3DX robots in the Service Robotics Research Lab of Technische Hochschule Ulm. However, as reactive navigation is independent of specific maps and coordinate system references, you can run it in your environemnt as well. You learn where you find the settings that you need to adjust to your physical robot.


  • Deploy the Flexible Navigation Stack onto a Robotino (or a Pioneer P3DX)
    We guide you through the steps of deploying the flexible navigation stack onto a real-world P3DX robot. The flexible navigation stack requires a map of the environment for localization and symbolic names for regions. These are pre-configured for the Service Robotics Research Lab of Technische Hochschule Ulm.

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.

  • Example: Behavior Developer - Realizing Tasks
    This tutorial explains how a behavior developer models task plots. Task plots are independent from a particular robot and they can be executed with any robot that possesses the required skills. The tutorial explains the role of the behavior developer by the example of box transportation by a mobile robot.
  • «more under preparation»

Using Industry 4.0 Asset Administration Shells

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

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.

  • SmartDG : Import and Use Tier-2 Environments and Service models
    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 video tutorial.

:!: To use the SmartDG feature, wait for SmartMDSD Eclipse Toolchain and Virtual Machine (To be released very soon) :!:

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

  • See video tutorials of the v2-generation of the SmartMDSD Toolchain at YouTube.
  • You can also find screencasts of the SmartMDSD Toolchain's first generation as of 2009 (outdated).
tutorials/start.txt · Last modified: 2022/12/23 11:06 by

DokuWiki Appliance - Powered by TurnKey Linux