Service Robotics Research Center
at Ulm University of Applied Sciences

User Tools

Site Tools


Creating your Own Real-World Deployment

In tutorial Developing Your First Software Component you had learned how to develop your own component. In tutorial Developing Your First System: Composing Software Components you had learned how to use your component in system composition. In tutorial Deploying the Flexible Navigation Stack in Real World you learned to deploy the system SystemP3dxNavigationRealWorld on real world. In this tutorial, we will use the component developed by you in the real world deployment.

Basic Information

Level Beginner
Role System builder, but also other roles while browsing through the system's building blocks
Assumptions Having completed the tutorial Deploying the Flexible Navigation Stack in Real World
System Requirements Virtual Machine Image Installed, see ready-to-go virtual machine
You will learn How to reuse ComponentLaserObstacleAvoid without any modification
How to deploy the components on a real robot via the toolchain
How to start the components on a real robot


System Composition

Step 1: Create a new → System Project

Step 2: Name it SystemLaserObstacleAvoidRealWorld

Step 3: Open SystemArchitectureViewPoint It has a System Tools palette for Tools. Drag and drop Import Components and then import following components in to the system.

  • ComponentLaserObstacleAvoidNew
  • SmartLaserLMS200Server
  • SmartPioneerBaserServer

Step 4: From System Tools, drag and drop Component Instance on the viewpoint and add all 3 above mentioned components on the viewpoint.

Step 5: Add RequiredService(s) in ComponentLaserObstacleAvoidNew and select both the services (Input Port LaserServiceIn and Output Port NavigationVelocityServiceOut)

Step 6: Add ProvidedService(s) in SmartLaserLMS200Server and select Output Port LaserScanOut

Step 7: Add ProvidedService(s) in SmartPioneerBaseServer and select Input Port NavVelIn

Step 8: Connect the services using Connection

Step 9: Drag and drop ParameterStructInstance in SmartLaserLMS200Server and double click on it to open the code page, and copy paste following code inside and save it:

ComponentParameterInstance SmartLaserLMS200Server refinesParamStruct SmartLaserLMS200ServerParams 
  ParameterRefinement Laser 
     device = "/dev/ttyUSB0"

Overall SystemArchitectureViewPoint Should look like this:

Target Platform Configuration

Step 1: Open TargetPlatformViewpoint

Note : We will use the Platform Tools Palette for adding tools in the Viewpoint.

Step 2: Drag and drop TargetPlatform on the viewpoint and Name it : C26_11_robotA

Step 3: Drag and drop LoginAccount and configure as following:

  • Name : student
  • Fullname : student
  • Email :

Step 4: Drag ACE_SmartSoft inside the TargetMiddlewares.

Step 5: Drag and Drop NetworkInterface and configure as following:

  • Kind: WLan
  • Name: Wlp3s0
  • PortNr: 22

The overall TargetPlatformViewpoint should like this:

Deployment Configuration

Step 1: Open the DeploymentViewpoint

Note1: We will use the tools from DeploymentTools palette.

Step 2: Drag and Drop TargetPlatformReference select TargetPlatfrom configured in TargetPlatformViewpoint (C26-11-robotA)

Step 3: Drag and Drop LoginAccount into TargetPlatformReference and select LoginAccount configured in TargetPlatformViewpoint

Step 4: Drag and drop UploadDirectory into TargetPlatformReference

Step 5: Drag and drop NetworkInterface into TargetPlatformReference and select NetworkInterface configured in TargetPlatformViewpoint

Step 6: Drag and drop ComponentArtefact outside TargetPlatformReference and select ComponentLaserObstacleAvoidNew

Step 7: Drag and drop ComponentArtefact outside TargetPlatformReference and select SmartLaserLMS200Server

Step 8: Drag and drop ComponentArtefact outside TargetPlatformReference and select SmartPioneerBaseServer

Step 9: Drag and drop NamingService outside TargetPlatformReference

Step 10: Use the Deployment link and for all 3 components and for Namingservice, connect the arrow to TargetPlatfrom C26-11-robotA.

Finally the DeploymentViewpoint should look like this :

Deployment and Execution

Step 1: Deploy the System, but do not start the execution by answering No to the MessageBox.

Step 2: Open a terminal and start vncviewer by following command

  • xtightvncviewer C26-11-robota

Step 3: Login into vncview by student id and password (student).

Step 4: Open a terminal inside vncviewer.

Step 5: Follow the procedure below to start the execution

  • cd /tmp
  • cd SystemLaserObstacleAvoidRealWorld.deployment
  • sh start-C26_11_robota .sh menu

Step 6: Select Menu-start start scenario

Now you should be able to see robot moving.

What do do next?

Now you can proceed with exercise for better hands on experience with SmartMDSD toolchain. Please continue with exercise Exercises: Navigate through a Simple Scenario in Simulation


tutorials/real-world-deployment/start.txt · Last modified: 2020/01/20 17:16 by Gautam Dange