Deploy the flexible navigation stack onto a physical robot (Robotino or Pioneer P3DX).
|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
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
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
then you can proceed with the next steps in this tutorial.
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
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).
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).
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.
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.
Step 6: Installation of the vncviewer in your PC for accessing 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.
Step 11: You can use the same shell script to stop the system (use stop instead of start as argument)
Now you can proceed with tutorial Creating your Own Real-World Deployment