Explore and run a more complex system in simulation: the flexible navigation stack that that is in use with real-world service robots.
|Role||System builder, but also other roles while browsing through the system's building blocks|
|Assumptions||Having completed tutorial Simple System: Laser Obstacle Avoid|
|System Requirements||Virtual Machine Image Installed, see ready-to-go virtual machine|
|You will learn|| How you can use a complex and prebuilt system
How components interact with each other based on services and how these are wired
This Tutorial is an example of a more complex project which involves more than two components in system composition. These components include a path planner, a map building, obstacle avoid and motor control Component. The system features the flexible navigation stack which in use in real-world service robots.
The following sections will guide you through all necessary steps to run a system project. We will browse the different levels of the system (system component architecture model, target platform model, deployment model) and explore the involved components.
To open the system project, double click on the project SystemP3dxNavigationPlayerStageSimulator.
To explore the system composition of this project, you have two different options. Double-click one of the items highlighted in the figure to open the system component architecture:
The system component architecture models instances of software components and the connection of their provided or required services. In this example, different components are composed in a system, the description of the components are as follows:
The figure below shows the target platform model of the system. This model configures the runtime environment and hardware details.
The Deployment model shows the mapping of software artefacts to the hardware platform. I.e. it models which artefact will be “deployed”/transferred to and run on which platform. In our example, we will deploy to the local system. In real-world examples, we can deploy to remote targets and distribute a system to multiple targets.
As shown in the snapshot below, right click on the project and select SmartMDSD Build Tools → Deploy. This will collect and copy the software artifacts and transfer them to the target/robot.
After the deployment is finished, you can start the scenario. Click “yes” in the dialogue that pops up. It will launch the scenario control menu as shown in below figure:
Select Menu-start start scenario and press Enter to start the execution of the project. It will launch the few more consoles to support the selection of user choices. In the console, select 0 for Hospital World simulation as shown in snapshot below.
It will launch multiple consoles again, as for each component in the system it has it's own console.
Look for the terminal which contains the robot console, a very simple variant of a “Sequencer”.
choose “99 - Demos” (type 99 and hit enter) to get the list of the demos and choose “2 Demo 2 Planner-CDL GOTO”
Now you can enter coordinates. The coordinates are specified in millimeters. The initial position of the robot is (x:0 y:0). E.g. entering “(1000)(0)” moves the robot to the position x:1m / y:0m The robot now drives to the entered position as you can see in the simulator
To move the robot to another goal, answer “Enter Goal? (y/n):” with “y“ and enter the coordinates, e.g. “(0)(0)” to move to the initial position
If you displace the robot, it starts moving again to the last commanded position the demo stops by entering “n” if you are asked whether you want to enter a goal.
The next tutorial is Developing Your First Software Component , which will guide you for creating your first own Component step by step.
Optional: A realistic setting of the very same navigation stack that was presented here is demonstrated by the RobMoSys Gazebo/TIAGo/SmartSoft Scenario using the PAL Robotics TIAGo service robot. Find it at the RobMoSys Wiki. You may also want to explore it!