Fleet Management System for Mobile Robots in Healthcare Environments

Purpose: The purpose of this paper is to describe the implementation of a Fleet Management System (FMS) that plans and controls the execution of logistics tasks by a set of mobile robots in a real-world hospital environment. The FMS is developed upon an architecture that hosts a routing engine, a task scheduler, an Endorse Broker, a controller and a backend Application Programming Interface (API). The routing engine handles the geo-referenced data and the calculation of routes; the task scheduler implements algorithms to solve the task allocation problem and the trolley loading problem using Integer Linear Programming (ILP) model and a Genetic Algorithm (GA) depending on the problem size. The Endorse Broker provides a messaging system to exchange information with the robotic fleet, while the controller implements the control rules to ensure the execution of the work plan. Finally, the Backend API exposes some FMS to external systems. Design/methodology/approach: The first part of the paper, focuses on the dynamic path planning problem of a set of mobile robots in indoor spaces such as hospitals, laboratories, and shopping centres. A review of algorithms developed in the literature, to address dynamic path planning, is carried out; and an analysis of the applications of such algorithms in mobile robots that operate in real in-door spaces is performed. The second part of the paper focuses on the description of the FMS, which consists of five integrated tools to support the multi-robot dynamic path planning and the fleet management. Findings: The literature review, carried out in the context of path planning problem of multiple mobile robots in in-door spaces, has posed great challenges due to the environment characteristics in which robots move. The developed FMS for mobile robots in healthcare environments has resulted on a tool that enables to: (i) interpret of geo-referenced data; (ii) calculate and recalculate dynamic path plans and task execution plans, through the implementation of advanced algorithms that take into account dynamic events; (iii) track the tasks execution; (iv) fleet traffic control; and (v) to communicate with one another external systems. Practical implications: The proposed FMS has been developed under the scope of ENDORSE project that seeks to develop safe, efficient, and integrated indoor robotic fleets for logistic applications in healthcare and commercial spaces. Moreover, a computational analysis is performed using a virtual hospital floor-plant. Originality/value: This work proposes a novel FMS, which consists of integrated tools to support the mobile multi-robot dynamic path planning in a real-world hospital environment. These tools include: a routing engine that handles the geo-referenced data and the calculation of routes. A task scheduler that includes a mathematical model to solve the path planning problem, when a low number of robots is


Introduction
Over the last years, healthcare centres have become concerned to increase the service quality not only to the patients, but also their workers. In this regard, mobility of medical staff within the hospital has been considered a key aspect to improve their productivity. The reduction of time in which medical staff spends with tasks that do not provide value is crucial. These mobility tasks include the transfer of medicines, medical equipment, biological samples, bedding, pharmaceuticals, postal packages or medical waste, amongst others. Bardram and Bossen (2005) estimates that in one day shift medical staff can walk an average of 6.1 km for 7.9 hours, while nurses and doctors on call walk an average of 6.1 km for 18.9 hours. This study was conducted in the haematology department located in a three-story building with 46 patients hospitalized at the same time. In this regard Huang, Cao and Zhu (2019) state that mobility activities in indoor spaces would improve with the deployment of mobile robots, highlighting the advantages that such mobile robots would have in hospital environments.
Facilitating the deployment of mobile robots in health centres is one of the objectives of the ENDORSE project (A Safe, Efficient and Integrated Indoor Robotic Fleet for Logistic Applications in Healthcare and Commercial Spaces) (Vartholomaios, Ramdani, Christophorou, Georgiadis, Guilcher, Blouin et al., 2019). ENDORSE project looks for the design and development of integrated logistic robotic systems to enable efficient, cost-effective and safe indoor logistic services for hospital spaces (Ramdani, Panayides, Karamousadakis, Mellado, Lopez, Christophorou et al., 2019). Currently, there are limited applications of mobile robots in hospitals, this is because they must meet several functional and non-functional requirements that are more difficult to meet than those arising in industrial spaces. The main difference between industrial and public indoor spaces (hospitals, nursing centres, hotels, museums, malls) is the environment since robots in public spaces face a significantly more dynamic environment, surrounded by people and objects, and with architectural limitations, while in industrial and storage spaces are characterized by a structured and defined environment where robots move along predefined paths and the interaction of people with mobile robots is easier to avoid . In indoor spaces the robots must be able to adhere to a space that has not been created specifically for its deployment and to adapt to small spaces that cannot be modified, they must also be less expensive and more efficient than a team of human workers who perform the same task. Therefore, it is necessary to take into account the impact of such requirements on the design of the robot.
The objective of the paper is to describe the implementation of the Fleet Management System (FMS) that plans and controls the execution of logistic tasks by a set of mobile robots in a real-world hospital environment. To reach this aim, we began a review of the algorithms developed in the literature to address dynamic path planning problem of a set of mobile robots in indoor spaces is carried out. Furthermore, we present the design and implementation of a routing engine, a task scheduler, an Endorse Broker, a controller and a backend API at the core of the FMS. The FMS has been implemented and benchmarked using a virtual hospital floor-plant. The implementation also encompasses the FMS integration with mobile robots, equipped with a diagnostic support module mounted on the robot chassis.
In order to deal with the objective, the paper is organised as follows: section 2 presents a literature review on algorithms used to solve dynamic path planning problems in indoor spaces. Section 3 defines the problem to be solved. Section 4 describes the Fleet Management System (FMS) architecture, which consists of a routing engine tool, a task scheduler, an Endorse broker, a backend API, and a controller. Section 5 depicts the computational experiments carried out to validate two proposals used in the task scheduler, ILP and GA. Finally, conclusions and future research lines are outlined in Section 6.

Literature Review
The first task to develop in terms of routing and path planning algorithms was to perform a thorough review of current state of the art of algorithms used to solve dynamic robot path planning problems in the context of indoor spaces. Initially, the applications of mobile robots in healthcare environments are studied, and subsequently the applications in other interior spaces with dynamic obstacles. For a better understanding, Table 1 describes the most relevant concepts treated in this paper as regards mobile robot planning, navigation system, localization, mapping, path planning in a variety of scenarios.

Concept
Definition and characteristics Author

Mobile Robot
Robots that have the ability to move from one place to another autonomously, without the help of external human operators.

Robot Planning
Describes how a mobile robot must operate to get from one place to another place (path planning, motion planning) and how to perform a required task (task planning. Robot planning is a key element of autonomous robot systems.

Navigation System
The process of guiding a mobile robot between different positions by using sensors to detect the environmental conditions around it. Navigation system requirements for transport tasks involve mapping; localization; and path planning.

Mapping
The process of learning the environment. A mobile robot requires a map of its environment in order to locate itself in a space and move from one point to another. It means that the mobile robot must follow the map of a known environment to identify addresses and locations. Localization Determines the detailed position information of the mobile robot; o in other words, localization determines the robot's position in the environment, allowing to use that information to calibrate movement. Localization system for mobile robots uses encoders, gyroscopes, sensors, cameras, ultrasound sensors, laser rangefinder, and radio-frequency identification (RFID).

Path Planning
Consists of finding an optimal collision-free path from a starting point to a target in a given environment. The environment can be static (start and destination positions are fixed, and the obstacles do not change with time) or dynamic (unexpected changes in a planned route due to the arrival of new moving obstacles or changes in the target). Based on the knowledge of the robot environment, path planning may be: (i) local, when the robot is in an uncertain environment and, while in motion, builds an estimated map, this means that the robot generates a new route in response to changes in the environment in real-time; or (ii) global, when it is performed in a static environment, the robot has complete knowledge of the path that it must follow before its movement begin.

Applications of Mobile Robots in Healthcare
The environment in healthcare public spaces is characterized by being dynamic, due to human presence and spontaneous arrivals of new service demands during a service. Table 2 characterises the algorithms proposed to deal with the dynamic path planning problem of mobile robots in healthcare.
The algorithms are classified according to the taxonomy proposed by (Andres, Sanchis & Poler, 2016). It comprises Optimizer algorithms (OA) technique that guarantees to find the optimum solution, in problems with large instances are usually slower, Heuristic algorithm (AH) this technique does not ensure to find optimal solutions, but it can reach near-optimal solutions and Metaheuristic algorithm (AM) these techniques can obtain good or almost optimal solutions, this technique uses random search strategies that require a stopping rule.
The column related with the simulation determines if the tests were performed in a simulated environment, in which a robot obtains information from an algorithm. Commonly, in these simulations are sought to analyse the performance of robots with different types of routes and obstacles randomly generated. The objective of simulation in dynamic environments is to analyse how the robots reach the goals and the goodness of the proposed algorithms for re-planning routes when robots encounter obstacles. Moreover, the software in which experiments are developed is identified. Finally, the algorithms application in a single or multi-robot environment is determined. Multi-Robot Path Planning (MRPP) addresses the problem of how autonomous teams of mobile robots are able to navigate collaboratively and share a common workspace and avoid interference between them (to ensure that two robots do not collide when following their respective paths) (Koubaa et al., 2018).

Real Application Simulation
Experiments software

Applications of Mobile Robots in Other Sectors
There exist several types of mobile robots that have been tested and installed in spaces different from healthcare. Gross, Boehme, Schroeter, Mueller, Koenig, Einhorn et al. (2009) introduce TOOMAS, an assistive shopping mobile robot. Proposing a robust autonomous navigation, and a path planning that uses A* algorithm, and a movement control to avoid collisions. Amanatiadis, Henschel, Birkicht, Andel, Charalampous, Kostavelis et al. (2015) present an autonomous vehicle extraction and transportation (AVERT) based on the "a-robot-for-a-wheel" concept. AVERT mobile robot is able to extract vehicles from confined spaces, swiftly and in any direction. AVERT uses a D* Lite algorithm for computing path planning and for position changes. Yuan, Twardon and Hanheide (2010) present to BIRON II, a mobile robot designed for an interactive scenario called home-tour. When BIRON II enters in real-world apartment, it shows the apartment in an autonomous way to new users. This mobile robot uses a combination of human-aware path planning, dynamic re-planning abilities, and dynamic obstacle avoidance. It uses A* algorithm to estimate the path. Liu, Stoll, Junginger and Thurow (2012) and Liu, Stoll, Junginger and Thurow (20132) calculate the shortest path for tasks through a hybrid algorithm considering the Floyd algorithm and genetic algorithm, in order to manage transport tasks on a single floor, sending available robots to planned routes and informing about real-time transport. Abdulla, Liu, Stoll and Thurow (2017) present a mobile route planning application to move robots within laboratories distributed on different floors. Designing a hybrid Backbone-Floyd algorithm to calculate dynamic path planning.

Dynamic Path Planning of Mobile Robots in Indoor Spaces: Study Cases
The interest of researchers in the dynamic path planning of mobile robots is acquiring great relevance, due to new technological developments in mobile robots. Furthermore, path planning for mobile robots is one of the most important aspects of robot navigation (Miao & Tian, 2013).  Dynamic path planning problems for mobile robots in indoor spaces are generally presented as NP-Hard (Nazarahari, Khanmirza & Doostie, 2019) due to computational complexity. Researchers have always looked for efficient techniques or methods to solve these problems. In the literature, we find different types of techniques, including heuristic or metaheuristic algorithms. The algorithms in route planning generally look for the mobile robot to reach its objectives, consuming a minimum time, traveling a minimum distance with the least energy consumption and finding a free route in an environment full of objects (dynamic and static) that includes more robots. Table 3 presents a compilation of these techniques. In this table, it is indicated that the most used algorithms are the Genetic algorithms followed by the A* and D* algorithms.

Problem Description
In the problem, there are different types of robots, conforming a robotic fleet that can execute a variety of tasks, either logistic tasks, which imply the transport of goods (medicines, medical equipment, biological samples, bedding, pharmaceuticals, postal packages or medical wastes, amongst others) through the hospital floor plant(s) or other auxiliar sanitary tasks (measure blood-pressure, or perform a COVID-19 test) performed via specialized e-health modules.
To perform the logistic tasks, mobile robots pick trolleys of specific characteristics that are loaded with a set of objects to be transported possibly to different locations. The trolley imposes limits on the dimension and weight of the loads (see Figure 1.). Each logistic task can be divided into a set of low-level instructions or commands that need to be executed by the robot. Examples of low-level commands involved in logistics tasks are GOTO (move to a specific location), PICK (pick a trolley to carry a set of objects), or PLACE (place the trolley in the current location).
From an operational point of view, the Fleet Management System needs to determine the load of each trolley, the optimal routes between different locations and the optimal allocation of tasks to robots. Depending on the task, the load can have different properties, like size, weight, and type (food, sanitary equipment, medicines). There might be additional constraints other than the capacity constraints of trolleys (size and weight of load) related to the type of objects to transport. In general, it is not recommended to transport in the same trolley two different types of objects, but depending on the destination, there might be additional regulatory or sanitary constraints (e.g. it might not be recommended to transport in the same trolley medicines for specific types of patients or food containing specific allergens).
The strategy is to separate the trolley loading problem, the robot routing problem, and the task allocation problem: First calculate optimal paths between locations, then decide the optimal allocation of tasks to robots and finally determine the load of each trolley, each problem subject to its specific constraints. Determine the shortest path is computationally inexpensive and can be calculated for every pair of locations at low computational cost. Once the distances are known, the task allocation problem can be seen as an instance of the Multiple Travelling Salesman Problem (mTSP), where the goal is to minimise an objective function proportional to the total distance, subject to a set of constraints (e.g. payload, battery). Finally, the solution to the mTSP problem determines the optimal load of trolleys which is a trivial assignment problem.
Robots on the other hand have dynamic properties that are relevant in the context of MRPP. Each robot may be at a different position when the MRPP is solved and clearly, it is important to take this aspect into account. Another important parameter to take into consideration is the battery level. Robots have built-in functions to navigate back to the charging station when the battery decreases below a certain level. The MRPP also needs to take this design aspect into account.
Additionally, the number of tasks is also dynamic. Users may plan a set of logistic tasks to be performed at a given periodicity (each shift, every day, once a week, etc), but the robotic fleet must be able to perform tasks on demand. Users can define a new task to be executed now by any robot which is available or if no robots are available, as soon as possible. The navigation path is also dynamic. Aisles might be blocked for robots due to different reasons (cleaning, congestion, or any situation that requires that there are no robots in a given installation). Therefore, the FMS must have the ability to manage the planning of task in a time horizon and also re-scheduling the plan whenever this is required.
Based on these requirements, the objective is to provide the optimal allocation of tasks to robots according to a set of constraints and optimization criteria. In this sense, the primary goal, as mentioned above, is to finalize the set of tasks as quickly as possible, by minimising the total distance. Robots on the other hand need to solve local navigation problems, avoiding collision with other robots or humans, thus dodging static and dynamic obstacles. Therefore, in the design, it is also important to take into account the possible interactions between the global navigation optimisation features of the FMS and the local navigation features of robots. Other important objectives are for instance, achieve a human friendly navigation, avoiding crowded aisles or routing robots through narrow aisles. The following section describes the main design considerations taken to solve the MRPP and implement the FMS. Figure 1 depicts a prototype of the trolley mobile robot used to test the virtual hospital environment.

Fleet Management System
The FMS consists of two integrated tools to support the multi-robot dynamic path planning. The architecture of the FMS is depicted in Figure 2. On the one hand, the routing engine handles the geo-referenced data and the calculation of routes. On the other hand, the task scheduler implements algorithms to solve the task allocation problem and the trolley loading problem using different techniques depending on the problem size. The Endorse Broker provides a messaging system to exchange information with the robotic fleet (model the environment and send commands), while the controller implements the control rules to ensure the execution of the work plan. Finally, the Backend (Application Programming Interface (API) exposes some FMS to external systems. The frontend consumes these services and implements a user interface to manage the robotic fleet. The following sections describe to some level of detail the different building blocks of the FMS architecture.

. Environmental Modelling
The routing engine handles the first step to plan the optimal execution of tasks, though creating a model of the environment that collects all possible routes in the floor-plant. This environment, in which the robots move, is modelled with a graph traversal problem where nodes V in the graph G (V, E) represent locations in the floor-plant, and edges E represent possible routes between locations. This model is consistent with the local navigation model used by the robots. In the model of the routing engine, each node V is characterised with a tuple of values in a 3-dimensional coordinate system (x, y, z), and a type. The z coordinate represents the floor-plant number and the x, y coordinates represent Cartesian coordinates in each floor-plant. The type is used to learn the coordinates of some nodes that need to be treated differently by the routing engine, particularly elevators. This model is consistent with the local navigation model used by the robots as described below.
There are different methods devised to obtain such network model. The first one is used before the robot fleet is deployed and is based on CAD files. Through this method, CAD files containing the blueprint of the floor plant are converted to the GEOJSON format used in the database (MongoDB) of the routing engine. This allows the routing engine to efficiently query geo-reference data using geospatial queries, e.g. to fetch only parts of the graph to re-sequence a subset of tasks when there is a problem at a specific location. In the current version, the user can edit the navigation graph and the location of the destination nodes (rooms, pharmacy, elevators) in separate layers within the same CAD file which is later imported into the routing engine and converted to GEOJSON shapes. The GEOJSON file is later processed to calculate the distances and generate the graph. Euclidean distances determine the weight of the edges between adjacent nodes in the same floor plant. Elevators, on the other hand, join the sub-graphs of the different floor-plants. In the second method, there is a master robot builds the graph based on its navigation history using a specific ROS module (http://wiki.ros.org/voronoi_planner). The master robot shares the generated graph with the FMS and the other robots using the Endorse protocol.
To validate the environmental modelling and benchmark the different candidate algorithms used in the FMS, the authors have used different virtual floor-plants with combed and central courtyard layouts found in the targeted scenarios. Figure 3. shows one of the floor-plants used. As explained in the next section, the graph created by the user will be used to calculate optimal paths to complete the missions and to implement traffic control. This way, robots are routed through the graph and the edges created by the user act as 'virtual lanes' that restricts the traffic of the robot. This navigation strategy is beneficial in crowded environments, or in certain situations, like emergencies, where a predictable behaviour of the robots facilitates the work of human agents.

Cost Function
The routing engine uses the graph G(V, E) to implement the cost function of the optimisation algorithms. First, the current locations of the robots and the destinations of the logistic tasks are added to the graph, adjacent to the closest nodes using the same distance function used to construct the graph in the first place. Edges (eij) have a distance attribute that represents the distance between vertex i and vertex j and a weight attribute that indicates the cost of travelling from vertex i to vertex j. The FMS can use different data sources and apply different functions to compute the cost based on the distance. Through the endorse protocol, robots are able to indicate that a path is blocked, and the FMS can use this information to weight the edges accordingly so that they are not included in the shortest paths. It is possible to calculate the weight based on historic navigation data (e.g. to avoid crowded paths at specific times of the day).
Once the weights are calculated, the Dijkstra algorithm is used to calculate the minimum cost path between nodes in the graph. The routing engine stores the edge sequence (v1, v2, v3, vn) of each path and the cost in a matrix that represents the minimum cost paths between every robot and every destination. The cost values are later used by the task scheduler to find the optimal (minimum cost) allocation of tasks to robots. Basically, the task scheduler uses indexes in this matrix to indicate the optimal allocation of tasks to robots. With this information, the fleet management system is able to control the routing of robots through optimal paths, taking into account distances and other factors that determine the costs of the different paths, as well as the objectives and constraints specified in the task allocation problem.
Based on the shortest paths, the task scheduler implements two different techniques to solve the task assignment problem, a mathematical programming model used when the size of the problem is small and a genetic algorithm to compute the solution for large problems.

Task Scheduler 4.2.1. Robot Path Planning Using an Integer Linear Programming (ILP) Model
An integer linear programming formulation is used for the multiple traveling salesmen problem (mTSP) problem. In the FMS task scheduler we adapt the ILP developed by (Kara & Bektas, 2006) to deal with the robot path planning problem. In this regard, (Kara & Bektas, 2006) determines a graph G = (V, A), where V is the set of n nodes (rooms), A is the set of arcs, and C = (cij) is the distance matrix that associates each arc (i, j) belonging to A. There are m robots at the base where they receive the load. Kara and Bektas (2006) propose two ILP models: the single depot and multiple depot mTSP. We employ the single mTSP depot model that consists of finding routes for m robots in such a way that all of them start and end in the same depot. Each of the nodes (rooms) are exactly on a route, the number of nodes visited by a robot is predetermined within an interval, and the total cost of visiting all nodes is minimized. The restrictions described in this model ensure that exactly m robots leave and return to the warehouse, in addition, the maximum and minimum number of nodes visited by each robot is limited, which prohibits a robot from visiting only one node and restricting the formation of subtours between nodes. The ILP model is described next, considering the nomenclature (Table 4) and the mathematical notation (Kara & Bektas, 2006).  Table 4. ILP nomenclature for the multiple traveling salesmen problem (mTSP) (Kara & Bektas, 2006) Minimize

Sets and Index
∑ j=2 n x j 1 =m, x 1i + x i 1 ≤1, i=2, ... ,n , According to (Kara & Bektas, 2006) the ILP model formulation is valid when 2 ≤ K ≤ [(n -1)/m] and L ≥ K. When K ≥ 4, constraints (6) and (7) do not allow the situation x 1i = x i1 = 1, i.e., constraint (8) becomes redundant when K ≥ 4. Thus, we need constraint (8) only for the cases K=3 or K=2. In this formulation, constraints (2) and (3) ensure that exactly m robots leave from and return to the depot. Constraints (4) and (5) are the degree constraints, the inequalities given in (6) and (7) serve as upper and lower bound constraints on the number of nodes visited by each robot, and initialize the value of u i to 1 if and only if i is the first node on the tour for any robot. Inequality (8) forbids a robot from visiting only a single node. The inequalities given in (9) ensure that u j = u i + 1 if and only if x ij = 1. Thus, they prohibit the formation of any subtour between nodes in V\{1}, so they are the subtour elimination constraints (SECs) of the formulation.

Genetic Algorithm
The problem to be solved in the mTSP considers that m robots must visit n points, which are not initially assigned to any particular robot. When the calculation time of the exact method (ILP model) is computationally inefficient, due to the high number of destinations and robots, a genetic algorithm (GA) is proposed. The proposed GA, based on Valero-Gomez et al. (2011) with some modifications, is built under the following characteristics:

Individuals notation:
• m: robot index ∈ [0, m-1] • n: target points index ∈ [m, m+n-1] Chromosome: The chromosome has the following characteristics • The chromosome individuals can refer to a robot index or a target point index • Individuals cannot be repeated in the chromosome • The sequence of points assigned to each robot starts on the target points beginning after robots' index and finishes when the next robot index is found (when the end of the chromosome is reached, the sequence corresponding to the last robot continues with the first individual of the chromosome).

Initial Population:
A random population is generated guaranteeing the non-repetition of chromosomes.
Crossover: A order crossover is used. two parents are selected, and from one of them the crossover operator selects a succession of individuals (the number of individuals to select is randomly generated). The child chromosome is produced by copying the selected succession of individuals (substring) into the same location as it was in the first parent chromosome. Then the crossover operator fills the empty individuals of the child chromosome starting from the first non-used individual of the second parent chromosome.
Selection: a selection procedure is considering a probabilistic function used as a fitness function equation based on the proposal of (Valero-Gomez et al., 2011): where, R i is the total length of the route assigned to robot i. This function seeks to minimize the total length but also to maximize the length of the shortest individual path and to minimize the longest individual path, therefore all robots will be assigned a path of similar length.
Mutation: Individuals to mutate are chosen randomly among the whole offspring with a uniform probability. The mutation probability is set to 1.
Insertion: Both, the normal child chromosome and the mutated one are candidates to be inserted in the population. A previous check is done in order to avoid the insertion of an already existing chromosome in the population. Each new member of the population is inserted by replacing the worst one.
Termination rule: GA calculation ends when there is not improvement in the best fitness of the population after a number of generations.

Endorse Broker
The Endorse Broker provides a message bus to exchange information between the robotic fleet and the FMS in a secure way. The Endorse Broker is a Message Queuing Telemetry Transport (MQTT) (Banks & Gupta, 2014) broker used to exchange messages defined according to a proprietary message protocol (Endorse Protocol).
The Endorse Protocol defines a messaging pattern where the robots and modules can receive commands (e.g. to tell a robot to start or cancel a mission) from the FMS, provide feedback information on their environment (e.g. update the navigation map, the battery status and current position), as well as to report errors.
Robots and modules publish messages in the message broker and subscribe to the topics they are interested in. Therefore, all communications are initiated in the field level of the robotic fleet. This facilitates network management and security, because all the robots and modules can be grouped into separate network segments behind a firewall with no incoming communications.

Backend API
The backend API provides a REST interface to manage the master data of the FMS, to calculate an optimal assignment of a set of tasks to a group of robots to be executed on a specific date and time, and to add a new task to be executed in the current shift.
Master data includes user information (user roles), robotic fleet master data (e.g. types of robots, robot groups and robot members), navigation information (navigation map, location markers, etc), and task information (types of task, task command execution plans, etc). Backend API consumers (i.e. users via the frontend interface or other systems or applications integrated with the FMS) can apply CRUD (Create Request Update or Delete) to manage master data.
The REST backend API provides an endpoint to calculate a new work plan. A work plan consists of a set of tasks to be executed by a group of robots during a shift at a specific date. To process calls to this endpoint, the FMS solves the planning problem as described above and returns the results: Task allocated to each robot and estimated completion time. Consumers can edit and validate the work plan so that it is later processed by the Controller.
The REST backend API also provides an endpoint to add a new task to the current plan. When a consumer uses this endpoint, the FMS first solves again the planning problem adding the new task to the list of pending tasks.

Controller
The Controller implements the rules to ensure the execution of the work plan, that is, ensure that the robots execute the tasks that have been assigned by the task scheduler. The controller implements a control loop between the task scheduler and the robotic fleet via the message broker. First, the controller loads the current plan that has been validated by the user and builds a model of the execution of the work plan by robots. The controller sends the commands to start the work plan to the robotic fleet via the message bus. Periodically, the robots report their respective status (current location, current command, percentage of completion of current command, current battery level). Upon reception of the reports, the controller uses the backend to calculate a new work plan with updated status information, compares the result to the previous setup and if need be, sends the (delta) commands to the robots to re-schedule the tasks. This control loop somewhat resembles a Model Predictive Control (MPC) (Kim, Necsulescu & Sasiadek, 2007) control loop using the path planning solution as optimizer.
Note that in this process the task scheduler, the FMS controller, and the robot control work at different levels of granularity. The task scheduler manages tasks for the entire robotic fleet. The controller processes low level commands that together compose a task. For instance, moving a robot through the map may imply several GOTO commands to ensure that the robot follows the optimal path according to the cost function. Robots on the other hand are able to take local decisions to avoid obstacles and avoid blocking situations. Robots are better at taking local decisions, but they can also benefit from the global perspective and coordination capabilities of the FMS. Clearly, there is a trade-off between both and therefore the level of granularity used at the controller to control the robot path planning can be configured to achieve optimal results. It is important however to bound the time consumed by the task scheduler to generate the optimal plan, because it determines the control loop cycle time and in consequence, the level of granularity of the FMS controller. Next sections present the results of some computational experiments to better manage this trade-off.

Computational Experiments
In order to validate the proposed algorithm, a set of experiments have been carried out obtaining a numerical comparison between the IPL (Kara & Bektas, 2006) and the GA (Valero-Gomez et al., 2011). We perform a set of experiments with different values were the number of robots m = {5, 10, 15, 20} and the number of destination locations n = {20, 40, 60, 80}. The parameters of the genetic algorithm were: termination condition was to reach a Gap less than 1% in regard to the objective function value obtained from the ILP model, and the population size for all tests was 50. The variables measured were the cost of the solution (calculated with equation 11), the path length of each robot, the number of generations to find the solution, and CPU time. The algorithm was implemented in Python 3.8.2 and the ILP model was tested using Gurobi 9.0, running on a PC equipped with an Intel (R) Core (TM) I5-8500 @ 3.00 GHz Processor and 8 GB RAM.
The results presented in Table 5 depict the CPU time and the gap considering different instances that are characterised by the number of robots and the number of target points. The gap (in %) between the ILP and the GA solutions is calculated using the following formula: For small instances (5 robots and 20 locations), the GA required a CPU time of fewer than 10 seconds with a GAP of less than 1%, but the ILP model computation time is better and reach an optimal result, however, for large cases consisting of 15 robots and 60 locations, or 20 robots and 80 locations, the ILP consumed the defined set time of 7,200 seconds. The genetic algorithm in these cases reached almost optimal solutions in less time (188 and 354 seconds respectively), which shows that it is useful for real cases. Figure 4 shows the speed of the GA model and the ILP model. It can be observed that the ILP model achieve optimal results for small and medium instances but, for large instances, the computation time is not efficient. As in real applications, such as hospital spaces or dynamic environments, the computation time is a significantly important parameter, the GA can be used to obtain near-optimal or good solutions with less computation efforts.

Conclusions
This paper outlines the state of the art performed within the topic under review, the mobile robot path planning problem in interior spaces. A taxonomy of algorithms is used to classify the solution approaches proposed to address the aforementioned problem. From the review we can conclude that there are several algorithms that address the dynamic path planning problem of mobile robots in healthcare environments. The most used is the A * algorithm, providing good solutions in short calculation times. The review was carried out considering the real applications not only in the healthcare environment but also in other interesting contexts, due to its potential to adapt to healthcare environment. In this regard, choosing an algorithm for route planning will allow the planner to design routing policies that can be useful and flexible in a dynamic environment, like hospitals, in which people or objects that are constantly moving and changing positions.
In addition, this paper describes the implementation of a Fleet Management System (FMS) that plans and controls the execution of logistic tasks by a set of mobile robots, as a result of the work carried out in ENDORSE project. ENDORSE focuses on mobile robots in healthcare and commercial spaces environments. As a result of the FMS, five tools have been developed: the routing engine and the task scheduler, the FMS Endorse broker, the backend API and the controller.
The routing engine integrates the environment modelling, though the interpretation of geo-referenced data. Moreover, it computes the costs of moving from one point to another in the floor-plants. With regards the routing engine, the main drawback of the current approach is that the user needs to edit the map manually using a CAD tool, which might be time consuming and not very user friendly. In next releases, the routing engine will be integrated with a navigation system (Anyplace) (Zeinalipour-Yazti & Laoudias, 2017) which is also part of the solution. With this integration, users will be able to create the map using a mobile phone application that allows to tag locations just using the phone.
The task executor contains a mTSP ILP that minimizes largest routes. Moreover, the task executor also has a genetic algorithm to deal with mTSP when a greater number of robots and locations is given, making the problem computationally efficient. In the scope of the task executor, two future research lines are identified. Firstly, future work should be aimed at proposing algorithms to address the problem of path planning with multiple robots in dynamic environments, paying special attention to the simulation and application in real cases in healthcare sector. Second research line leds to balance the routes considering a minimum and maximum of places to visit for each robot, minimizing the longest routes.

Declaration of Conflicting Interests
The authors declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.

Funding
This work has received funding from the European Union's Horizon 2020 re-search and innovation programme under the Marie Skłodowska-Curie grant agreement No 823887. The authors would like to acknowledge the