SRRC Wiki

Service Robotics Research Center
at Ulm University of Applied Sciences

User Tools

Site Tools


tutorials:flexible-navigation-task-rw-deployment:start

Deploying the Flexible Navigation Stack in Real World

Deploy the flexible navigation stack onto a physical robot (Robotino or Pioneer P3DX).

Basic Information

Level Beginner
Role System builder, but also other roles while browsing through the system's building blocks
Assumptions having completed A More Complex System using the Flexible Navigation Stack
System Requirements access to a physical
- Robotino mobile robot with a SICK LMS100 laser ranger
- or to a Pioneer P3DX mobile robot with a SICK LMS200 laser ranger
Virtual Machine Image Installed, see ready-to-go virtual machine
You will learn - how to deploy the flexible navigation stack to a physical robot
- how to start the deployed system, run the physical robot, and stop the system
Options - SystemRobotinoNavigationRealWorld
- SystemP3dxNavigationRealWorld

Description

This tutorial guides you through the steps of deploying a readily configured system onto a physical Robotino mobile robot (SystemRobotinoNavigationRealWorld) or onto a physical Pioneer P3DX mobile robot (SystemP3dxNavigationRealWorld).

We use the now already well-known flexible navigation stack (see A More Complex System using the Flexible Navigation Stack). Instead of using the Webots simulator and instead of deploying the system to our PC, we now deploy the components onto a physical robot. For this, we replaced in our system the simulator components (ComponentWebots, ComponentWebotsMobileRobot, ComponentWebots2DLidar) by the components for the physical robot

  • Robotino: ComponentRobotinoBaseServer, ComponentLaserLMS1xx
  • Pioneer P3DX: SmartPioneerBaseServer, SmartLaserLMS200Server

As the flexible navigation stack depends on a map of the environment and of coordinate system references and as those are pre-configured for the Service Robotics Research Lab of Technische Hochschule Ulm (SRRC THU), you can run this configuration “as is” only in the SRRC THU. Please see flexible-navigation-stack-new-environment to learn how you can adapt the system to your environment.

So, if you

  • have access to either a Robotino robot with a SICK LMS100 laser ranger or a Pioneer P3DX robot with a SICK LMS200 laser ranger
  • installed Ubuntu 20.04 LTS 64 bit on the computer on-board the robot
  • have access to the SRRC THU (or adapt to your environment as described in flexible-navigation-stack-new-environment)

then you can proceed with the next steps in this tutorial.

The System with the Flexible Navigation Stack

System Architecture View

Instead of using the Webots simulator and instead of deploying the system to your PC, we now deploy the components onto a physical robot. For this, we replaced in our system the simulator components (ComponentWebots, ComponentWebotsMobileRobot, ComponentWebots2DLidar) by the components for the physical robot

  • Robotino: ComponentRobotinoBaseServer, ComponentLaserLMS1xx
  • Pioneer P3DX: SmartPioneerBaseServer, SmartLaserLMS200Server

Step 1: Open the project SystemRobotinoNavigationRealWorld and you can see the components for the physical robot and the components of the flexible navigation stack. The components of the flexible navigation stack are not changed at all (even the binaries are the same as in A More Complex System using the Flexible Navigation Stack). The services of the components of the flexible navigation stack are now just connected to services of components for physical devices (ComponentRobotinoBaseServer & ComponentLaserLMS1xx or SmartPioneerBaseServer & SmartLaserLMS200Server) instead to services of components for simulated devices (ComponentWebotsMobileRobot, ComponentWebots2DLidar).

Target Platform View

The figure below shows the target platform configuration. As we are deploying the components onto the real robot, details of the computer on-board the physical robot need to be specified (you might want to check the target platform view in A More Complex System using the Flexible Navigation Stack for explanations).

Details of the Network Interface

Step 2: We need to provide the network interface in order to be able to reach this target platform. Host address (IP address of the robot) and the name of the network interface are used, type and port number are optional.

Deployment View

The figure below shows all the components to be deployed onto the robot system, ie. C26-11-robotA.

Deployment

Step 3: Deploy the system.

Step 4: You are now prompted for a password. We configured the system to use the login Student. for which the passwort is student. Just enter the password and the deployment gets completed.

Step 5: Now a message box appears and asks whether you want to start execution. Answer No.

Start, Run and Stop the System

Check for VNC installation in your system

Step 6: Installation of the vncviewer in your PC for accessing the robot:

  • sudo apt-get install xtightvncviewer
  • of course, you can also use any other suitable tool

Start the Deployed System and Run the Robot

Step 7: Place the robot as shown below. This is the initial pose configured in the deployment and used as starting pose by the localization component. Thus, it is important to start with the configured pose as otherwise a mismatch between perceived laserscans and the reference map occurs and the robot cannot operate.

Step 8: Start vncviewer using robot ip address as shown. Login to the robot using the account student with password student and then navigate to the specified deployment folder. The default folder is /tmp. In there you find a folder with the name of the system project. In this tutorial, we use SystemRobotinoNavigationRealWorld.

Step 9: Now you can start the system as shown below using the indicated shell script.

Step 10: Look for the terminal which contains the ComponentTCLSequencer.

In the menu, select “5 - Approach location” and enter one of the offered names for locations.

Now, the robot navigates to this destination and stops there.

Stop the System

Step 11: You can use the same shell script to stop the system (use stop instead of start as argument)

What to do next?

Now you can proceed with tutorial Creating your Own Real-World Deployment

Acknowledgements

tutorials/flexible-navigation-task-rw-deployment/start.txt · Last modified: 2021/03/25 16:17 by Christian Schlegel