SDV-Map-Viewer

Sdv-Map-Viewer is a single page application designed for control and visualization of multiple mobile robots in ExFabLab. This application was builded in Angular, a complete framework intended to make complex web applications that reuses the code in blocks called components.

SDVUNx robots

The SDVUN mobile robots are in ExFacLab (Experimental Factory Laboratory) from the National University of Colombia. They are small autonomous vehicles with obstacle avoidance capabilities. Every one (there are three) has a Lidar, that is, a infrared laser that scans the environment and calculates the distance to any obstacle inside its range. Generated values are processed by the Navigation Stack, a set of applications that runs on ROS framework, and then obtains an approximated pose of the robot inside the laboratory. Next, an album will show you a collection of pictures of these robots.

Ways to operate the robots

To operate any of the SDVUN mobile robots, there are many alternatives:

To determinate the advantages and disadvantages of an alternative, different characteristics are evaluated: some of these characteristics arise from the need to do remote task (due to the physical access restrictions, product of the pandemic). The next list shows these evaluation aspects:

Now, the next table shows a comparative of every operation alternative:

Charac. Terminal RViz PRIA
Remote operation NO NO YES
Feedback NO YES NO
Multi platform YES NO YES
Show routes NO YES NO

None of the showed alternatives meet all the evaluated aspects. For this reason, the development of SDV-Map-Viewer was started.

Web application: sdv-map-viewer

The proposed solution seeks to fulfill the next objectives:

A single web application is proposed because this solution can accomplish the objectives and also:

To develop this application, the Angular platform is selected. This platform uses Typescript an allows to build Single Web Applications with some useful features like code reusability and modularity. Angular has a long support of its developers and users: this guarantees that developed software will be durable, scalable and upgradable.

Visual appearance of SDV-Map-Viewer.

The application consists of a laboratory map and a set of icons that represents every SDVUN mobile robot with a unique color. The picture below shows the different icons for a single mobile robot with these meanings:

  1. Current pose: the tip of the arrow shows the robot orientation.
  2. Objective: when a click on the map occurs, this icon appears. Its orientation can be modified rotating the mouse cursor over the clicked point.
  3. Current objective: if the mobile robot is currently moving, this icon shows that objective.
  4. Path: current route that the mobile robot is following.
  5. Label: this text shows the name of the robot and its useful to differentiate every one.

Icons used in SDV-Map-Viewer web application.

The application can be configured with user preferences: in the top-right side a button is placed and can be used to unfold the lateral panel with more functions. This panel contains the next options:

GUI with side menu unfolded.

sdv-nav-service (backend)

The service for obtaining data from robots and the sending of feedback data to the client is called sdv-nav-service. This service is developed in Nodejs runtime, also using Typescript language. sdv-nav-service connects to every robot automatically, using a bridge between ROS and Typescript and the user only needs to energize the robots and run ROS scripts.

sdv-nav-service deliver interest data to the clients that uses Sdv-Map-Viewer, using a WebSocket connection for transferring data quickly and efficiently. This connection can be reestablished automatically, avoiding that the user reloads the page if a communication issue occurs.

The picture below shows the communication scheme between the Web Application Sdv-Map-Viewer and the sdv-nav-service backend. Note that the server is in the same network of the robots, meanwhile the client can be in any point of internet.

Communication scheme between client and server.

Sample video

The next video shows a test with three SDVUN mobile robots inside the ExFacLab. With the GUI its possible to control, view and stop every mobile robot in a independent and way.