GUI3DXBot, Software Tool for Guiding Service using Mobile Robots
GUI3DXBot is a server-client application, where the server side runs into the mobile robot on board computer, and the client side runs into a 10-inch Android based tablet. The GUI3DXBot server side is in charge of performing the perception, localization, mapping, and path planning tasks. These tasks use as a main sensor the LMS200 laser range finder, and they were implemented on the ROS framework. The GUI3DXBot client side implements the human-robot interface in order to bring a friendly, and interactive user interface. Actually, GUI3DXBot is a registered software legally recognized by the Interior Ministry of Colombia. This document can be downloaded here.
The user interface implementation of the navigation activity is shown in the Figure at left. It is divided in four parts namely: goals list (number 1), the environment map (number 2), the robot avatar (number 3), and the controllers bar (number 4).
The scroll-able goals list contains all the places where the mobile robot can guide people. Here, the user just selects the goal location and the process of guiding starts. The environment map is continuously received from the GUI3DXBot server side, and it also shows the mobile robot trajectory, the current robot location, and the goals location.
Using the controllers bar, users are able to start a guidance service (“Enviar” button), users can cancel a guidance service at any moment (“Cancelar” button), users can read how the guidance service works (“Ayuda” button), and users can change the environment map view to global or local at any moment of the trajectory.
The Menu options are placed at the right top of the GUI3DXBot GUI. The Menu allows to start the tele-operation activity (Figure at right). This Android activity is composed by 3 parts namely: the tele-operation controls (number 1), the robot avatar (number 2), and the back button (number 3). The tele-operation controls allow users to command the motions of the mobile robot.
The robot avatar displays and issues sound alerts while the users is commanding the robot motion. And, the back button returns to the navigation activity. It is worth noting that the tele-operation activity is executed in case of emergency, when the mobile robot needs human assistance.
The GUI3DXBot user interface implements the front end of the HRI. The Figure at left shows the different type of messages interchanged between the GUI3DXBot server side (Action server), and the GUI3DXBot user interface (Action client).
GUI3DXBot server side needs to know the requested user goal, or the user cancellation order to start with the planning and navigation process.
The GUI3DXBot server side is in charge of the localization, local and global navigation tasks, as well as communicating with the HRI. In order to offer the people guiding services using a mobile platform, a previous mandatory step is mapping the environment. The Figure at right shows the computational graph which represents the mapping process. This process was performed using the GMapping package, which requires the odometry information provided by the mobile robot through the RosAria package, the range data provided by the laser sensor, and the transformation between the laser sensor, and the mobile robot platform.
The people guidance service which implements the GUI3DXBot software tool is constantly localizing the robot in the map, planning the path to the goal requested by users, and avoiding obstacles. The Figure at right shows the computational graph in charge of this task. As can be observed in this Figure, the move_base node is an important part of the robot navigation software, it requires the odometry readings provided by the RosAria package, the map data, the current sensor readings, and the current robot position. The move_base node is in charge of robot navigation, which includes local and global path planning, however, these features are useless without the robot current position
Once the user’s goal is known, this information as well as the current robot positon are introduced to the Navfn package to compute the global path. The global path is computed in the Navfn package using the Dijstra algorithm. An example of this global path is shown in the Figure at left.
People guidance service is commonly deployed in public spaces, and obstacle avoidance is essential to guarantee a safe route to the user’s goal. Then, the global path planning could be modified locally when the mobile robot faces the obstacles. To implement this feature, the move_base node has another important package called costmap_2d which implements the trajectory rollout algorithm in order to compute the local robot trajectory considering the obstacles in the environment.
The following video shows how GUI3DXBot is operated and offer the guidance service:
This software was developed for industrial and service use. If you like to perform a field test, please contact me:
Prof. Bladimir Bacca Cortes Ph.D.
Address: Cra. 100, Street 13, Universidad del Valle, Melendez, Building 354, Office 2006.
Tel: +5723212100 Ext. 7656