1. Introduction
With the rapid development of artificial intelligence and robotics technology in recent years, the use of mobile robots in people’s daily life and industrial applications has grown significantly [
1,
2,
3]. The outbreak of the COVID-19 pandemic globally from early 2020 has brought significant threats to people’s lives and health [
4]. Many countries across the world have reported coronavirus contamination for the cold-chain food in the warehouse environment. Hospital, shopping malls, and airports are other types of environments facing serious virus contamination. However, most scenarios employ manual viral sterilization, which is inefficient at providing enough disinfection [
5]. The mobile robot can replace manual disinfection activities, avoid contact between personnel and the virus, lower the risk of spread among people, and improve disinfection efficiency. Surface contact, in addition to airborne transmission, is a mode of transmission for COVID-19 [
6]. Objects or goods placed in those environments may contain a significant amount of coronavirus on the surface. Therefore, developing a disinfection robot which can automatically and efficiently sterilize all the surfaces potentially exposed to the virus is highly desired.
UVC ultraviolet light has a wavelength range of 200–280 nm and can kill microorganisms by destroying DNA (deoxyribonucleic acid) or RNA (ribonucleic acid) in their cells. UVC irradiation has been proven to suppress live COVID-19 in studies, including on different objects requiring varying UV radiation levels [
7,
8]. UVC disinfection equipment emits light into the surrounding space, killing bacteria/viruses in the air or on the surfaces of objects. As a result, UVC light disinfection is an effective approach for sterilizing items in indoor scenarios, has environmental and energy-saving benefits [
9,
10,
11], and plays an essential role in the management and prevention of the COVID-19 pandemic [
12,
13]. Our collaborative project with Bingbing Sun’s group in Dalian University of Technology conducted research on 254 nm wavelength UVC light inactivation on SARS-CoV-2 to break the transmission. The relationship of UVC radiation dose with inactivation rate has been established from a scientific experiment by a qualified third-party testing agency. The result shows that in the range of 16 cm with a nominal radiation intensity of 14 mJ/cm
2, 99.99% of the SARS-CoV-2 virus could be inactivated and the transmission chain could be broken [
14]. This gave us the idea that COVID-19 virus could be precisely inactivated by managing the distance between UVC light (disinfection robot) and the contaminated surface.
Figure 1a,b present the microscope views of MHV-A59 coronavirus samples without UVC radiation and with a UVC dose of 14.0 mJ/cm
2, respectively. The virus titers in
Figure 1a are 10
9.625/mL. Results indicates that 99.99% of the virus could be inactivated with enough UVC dose. Furthermore, the empirical relationship of the distance from the robot to the target surface and disinfection time has been used to guide the robot for an effective disinfection in
Figure 1c. UVC radiation dose could be calculated by multiplying radiation intensity and time, as in Equation (1). The distance and radiation could be described as a polynomial-fitting curve in Equation (2) to fit the data, where
x is the distance in centimeter, and
W is the radiation intensity in mW/cm
2. We noted that some reports may use quite complicated equations to describe the relationship, while we use simple math to give an acceptable result in a straightforward way. By understanding this principle, we can control the disinfection time properly with respect to distance, which corresponds to the UVC radiation dose constraint to inactivate the COVID virus on surfaces.
As illustrated in
Figure 2, the UVC disinfection robot in this work consists of an intelligent control unit, a UVC disinfection unit, and the scheduling unit. To plan the robot’s running trajectory and manage the disinfection work process, the intelligent control unit measures the distance information around the robot. The UVC disinfection unit radiates the object surfaces after receiving the execution instructions and disinfection mode from the intelligent control module. The scheduling unit communicates with the UVC disinfection unit via cloud protocol and performs remote control. Therefore, the robot has the capability of adjusting UVC irradiation time based on the distance information.
Coverage Path Planning (CPP) is the task of finding a path that passes over all points of an area or places of interest while avoiding obstacles. Different from classic CPP, the goal of disinfection path-planning is for every point on an object surface to be visible on the robot trajectory, and every point in an object surface must receive a certain amount of irradiance exposure. This scenario induces a joint problem of robot trajectory planning and disinfection time assignment. Since the problem is a complex non-convex optimization problem and NP-hard, there is some interesting work to explore the optimized coverage path. Feng has reported the sensor coverage optimization targeting 2D surfaces embedded in 3D workspace [
15]. Marques proposed a two-stage scheme to approximate the solution of the induced NP-hard optimization for irradiance efficiency, and results show that it can achieve more coverage for the same exposure time as strategies for existing UV robots, although this method needs a high-performance GPU unit to calculate radiation dose and is difficult to deploy for a practical environment [
16]. In this work, we propose an intuitive way to generate optimal trajectories from 2D SLAM maps to cover all accessible points. All points are extracted from a 2D map contour with “effective distance D” to keep UVC dosing constraints, and the sequence of disinfection points are treated as a traveling salesman problem (TSP).
Figure 3 shows a diagram to illustrate how the radiation power is estimated while the robot is moving at the speed of V. With effective distance D to the disinfection point A, the UVC radiation power can be obtained as
where radiation power
E could be obtained as the integral of radiation intensity
with travel time
t, and
l is the distance from robot to disinfection point. Here, we define the effective time zone that the robot is traveling with the constant speed
from the moment from
t1 to
t3.
can be determined from fitting the curve in
Figure 1c. To meet the UVC dose constraint of 14.0 mJ/cm
2, the effective distance
can be determined from the geometry rule in
Figure 3. Bear in mind that
will be used to generate disinfection point clusters away from the map contour later in this work. Thus far, by setting the effective disinfection distance to all surfaces, we have turned the UVC radiation dose-control problem into a path-planning problem.
The A * algorithm is usually used to improve the path-planning system based on the heuristic search. The heuristic function is used to lead the node search towards the target node, which improves the efficiency of finding the ideal path and has high portability and adaptability [
17,
18,
19,
20,
21]. The classic A * algorithm, on the other hand, has some drawbacks, as expected. The path-finding efficiency is relatively low due to the node search problem, and the planned path contains numerous intricate turning points with low smoothness. As a result, several researchers have conducted research on the improved A * algorithm. Bo Zhang et al. proposed a hierarchical path-planning approach for a wheeled robot to move in a partially known uneven terrain. This method combined the classical A * algorithm and Q-learning method, which offered pleasing approaches that avoid locally recognized impediments and impassable areas in a partially known uneven terrain [
22]. The A * algorithm was improved in two ways by B. Fu and L. Chen et al. One option is to plan a local path between the current node and the target node in the current node’s search area if not colliding. The first attempt is to use the local path; the second is to apply optimization to the estimated path in order to shorten it and improve its smoothness [
23]. M. Lin and K. Yuan et al. improved the real-time performance of the A * algorithm by including the parent node of the current node in the heuristic function, implementing a heuristic function that matches the optimal weight, and adding the parent node of the current node to the heuristic function [
24]. H.M. Zhang and M.L. Li et al. improved the A * algorithm’s evaluation function while maintaining a reasonable level of security. A path evaluation method is also employed to smooth the path, significantly improving the robot’s movement safety in the complicated terrain as well as the path’s smoothness [
25,
26,
27]. This research addresses the drawbacks of the classic A * algorithm from two aspects. First, to increase the path-finding efficiency, a dynamically weighted heuristic function is utilized. Second, to improve the efficiency of the global search and the path smoothness, the path turning angles have been reduced by screening on redundant turning points.
On the basis of the UVC disinfection mechanism and novel path-planning from the map presentation, the design of the UVC disinfection robot using the low-computational path optimization has been proposed and demonstrated. The closed-loop path is generated to cover all the accessible surfaces in the map. In particular, the discrete disinfection points are extracted from the map with effective disinfection distance. The points are sorted by the nearest-neighbor (NN) search and improved A * algorithm to obtain an efficient coverage path to reach out all surfaces. The purpose of the improved A * algorithm with NN used here is not to find the optimal solution but to optimize one with low computing power. Both simulation and experimental results have demonstrated that the proposed algorithm improves the path-finding efficiency and path smoothness significantly by reducing the path turning angles with low power. The paper shows the full design workflow of disinfection robot which can be applied to a low-cost robot platform.
2. The Proposed Method
In this section, the proposed method is elaborated as follows. First, the map needs to be obtained in the presence of the binary image. Then, a point-generation algorithm is applied to extract a group of the discrete disinfection points from the contour of the objects, such as shelfs, checkboxes, chairs, and boundaries, from the map. Meanwhile, the discrete disinfection points are associated with the defined disinfection distance along the vertical direction according to the object’s surface. The disinfection spots are sorted using the nearest-neighbor (NN) sorting algorithm to provide a list of disinfection points consequentially. Finally, by traversing the sorted disinfection points and using the improved A * algorithm, the disinfection point sequence is taken as sub-starting points and sub-target points to form a closed-loop sterilization path to cover all possible boundaries.
2.1. Discrete Disinfection Points Generation Algorithm
Creating a reasonable amount of distinct disinfection points from the map is the first step toward achieving an effective global disinfection path. By calling the discrete disinfection points generation algorithm, the object’s contour is extracted and fitted back to the map image, and the disinfection points that meet the distance requirements are generated in the effective vertical direction of the object’s surface according to the contour direction for the subsequent global disinfection path planning.
(1) Map image preprocessing: OpenCV library is utilized to preprocess the map image in order to accurately extract the contours of the disinfection regions and objects in the map and then generate efficient disinfection spots that fulfill the distance requirements along the vertical direction of the surface.
By performing SLAM mapping on the disinfection area, the occupation grid map has been created [
28,
29]. In such a map, a pixel is equal to each grid in the grid map. The coordinate position of the spot where the laser beam impacts is determined during the lidar scanning procedure. Where there is reflection, the pixel value corresponds to a gray value; where there is no reflection, the pixel corresponds to a non-gray value. At the same time, each grid has just two states, implying that the grid’s position may not be occupied by the objects at all or may be illuminated multiple times. When a grid is illuminated several times, it implies that the grid has been occupied, which means there is an obstruction in the grid’s path. As a result, the occupancy grid map uses the image’s gray value to represent the chance of occupancy and the occupancy probability to express the possibility that the grid’s location is an obstacle.
The morphological modification of the occupied raster map image is acquired by first executing an erosion operation and then expanding the image to obtain a grayscale image, which effectively removes some small, closed sections in the image. The picture magnification is configured in the algorithm for various sized maps in order to set disinfection points properly. A global threshold can be specified, and the original map picture can be scaled according to the magnification. To achieve binarization of the image, the threshold is set to 220 to create the gray (unknown) and black areas (obstacle), which are considered inaccessible areas; the accessible area gray value is set to 255, while the inaccessible area gray value is set to 0. To reliably generate accessible disinfection spots, the object edge is searched first on the binary picture, then the contour detection of the obstacle is conducted. Polygon fitting is applied to the contour points obtained in the previous phase, as well as to the contour points of the image, using polyline continuous smooth curves, and a series of fitted contour points is processed using polygon approximation.
(2) The principle of generating discrete disinfection points: The image, after edge detection and a sequence of object outline points after polygon fitting, can be derived from the previous section’s preprocessing of the map image. Sterilization point generation is based on connecting two nearby object points on a map. In the vertical direction of the line, disinfection points that meet the distance requirements are generated. Because the object edge’s line on the map includes two vertical directions, it is necessary to first determine the effective vertical direction between the object contour points before generating effective disinfection spots that fulfill the accessible area’s distance and angle requirements. The disinfection distance threshold is specified in the algorithm to ensure that the disinfection robot can radiate the surface sufficiently and keeps a safe distance at the same time. As a result, the distance between the disinfection points and the items equals the sum of the disinfection distance threshold and the robot’s radius; furthermore, if the disinfection distance threshold is set larger, the disinfection time of the disinfection robot will be longer so as to ensure effective disinfection on the surfaces. The algorithm also establishes a threshold for the spacing between disinfection points in order to adapt to varied maps and create disinfection points flexibly according to actual disinfection tasks. Disinfection points can be formed at the distance along the edge of the objects adjacent to the objects. Depending on the requirements of actual disinfection duties, the disinfection points generated in the map could be denser or scattered when the interval threshold is set to be smaller or larger. In order to make the coverage high with high search efficiency of the disinfection path-planning, it is necessary to accurately set the disinfection point interval threshold according to the actual disinfection task and map. Assuming that the boundaries in a house are the objects, the disinfection points generated by the disinfection point generation algorithm in the map is shown as the red line in
Figure 4.
We find the set of adjacent fitted contour points
whose distance is larger than the threshold of the distance between disinfection points by traversing the set of fitted contour points for obstructions (assuming that there are
n points in the set of adjacent contour points that meet the distance requirements). In the vertical direction of the line linking nearby contour points, disinfection spots that match the distance requirements are created using geometric principles.
Figure 5 depicts the generation concept.
Assuming that the first two fitted contour points in the set
are
and
, the point
is placed on the connecting line between
and
at a certain distance from point
, a normal line of line
is drawn through point
, and the distance from point
is the disinfection distance threshold point
.
is the first initial disinfection point. The pixel coordinates of point
are
, and the pixel coordinates of point
are
, the distance between points
and
is
, the disinfection distance threshold is
, where
, and the geometric principle can be obtained as:
Thus, the pixel coordinates
of the first disinfection point
are:
The orientation angle of the line is: .
The steps to generate discrete disinfection points are as follows:
- (1)
Perform preprocessing operations such as morphological changes, image binarization, image edge detection, and contour detection on the map image and extract the shelf edge contour point set after polygon fitting.
- (2)
Detect and filter out whether the distance between adjacent contour points in the contour point set is greater than the distance threshold between the disinfection points.
- (3)
On the basis of the outline of the object in the map, determine the effective vertical direction between the lines connecting adjacent contour points, generate disinfection points in the effective vertical direction between the lines connecting adjacent contour points, and generate along the contour direction based on the distance threshold between the disinfection points.
- (4)
Verify whether the disinfection points created in the previous step match the distance and angle requirements.
(3) Nearest-neighbor (NN) sorting of disinfection points: To avoid producing too many paths by forming a closed path based on discrete disinfection sites, the disinfection robot’s disinfection effectiveness must be improved by sorting the created initial disinfection points using the closest-neighbor sorting method.
To perform the disinfection task, the disinfection points are filtered out for the closest point to the origin of the pixel coordinate system in the map from the disinfection points listed as the first disinfection point
. Record this disinfection point as the current disinfection point
, and delete
from the disinfection point list; then, traverse the disinfection point list to find the disinfection point closest to the current disinfection point from the remaining disinfection points as the second disinfection point
to perform the disinfection task. Record
as the current disinfection point
and remove
from the disinfection point list, and so on. The NN disinfection point list is generated after all of the disinfection points in the disinfection point list have been sorted.
Figure 6 depicts the disinfection point NN sorting procedures.
2.2. A Global Disinfection Path-Planning Algorithm Based on Improved A *
The pixel coordinate system of the map image is used to plan the global path in this work. The disinfection point global path-planning algorithm obtains the global path’s pixel coordinates, which are then transformed into two-dimensional physical coordinates under the map so that the disinfection robot can execute it. As a result, before doing global path-planning, the original map image should be converted to a grayscale image, which should then be converted to a binary image with only grayscale values of 255 and 0. The pixels with a grayscale value of 255 are among them. The navigable area is represented by the area, while the obstacle area is represented by the pixel area with the gray value of 0. Then, the two-dimensional physical coordinates of the disinfection points in the NN disinfection point list are converted into pixel coordinates, and the improved A * algorithm treats these disinfection points as sub-starting points and target points for path-planning to form a closed global disinfection path. The disinfection path information is stored in the global disinfection path executor function package.
The improved A * algorithm can make an optimal path from the starting point to the end point. The first disinfection point in the NN disinfection point list is selected as the first sub-starting point of the improved A * path-planning. The second disinfection point in the point list is used as the first sub-goal point of the improved A * path-planning. When the path-finding is successful, the first sub-target point is set as the second sub-starting point, and the third disinfection point in the NN disinfection point list is used as the second target point for improving A * path-planning, and so on. Until the path-planning between all disinfection points in the NN disinfection point list is completed, a closed-loop disinfection path from the first disinfection point to the last disinfection point in the list is formed.
(1) Conversion between ROS map coordinate system and pixel coordinate system: As shown in
Figure 7, the origin
of the pixel coordinate system is in the upper left corner, while the origin
in the map coordinate system in the ROS system is in the lower left corner; therefore, the conversion relationship between the pixel coordinate
of the disinfection point and the coordinate
of the disinfection point in the ROS map is:
where
is the resolution of the map in ROS,
the initial position coordinates of the robot when building the map, and
is the number of rows of pixels in the map image.
(2) Optimization evaluation function of the improved A * algorithm: Although the classic A * algorithm can find a shorter path, due to its evaluation function, its path search efficiency has to be improved, as there are many redundant turning points in the planned path, resulting in a large path turning angle and low path smoothness. This research improves the classic A * algorithm by focusing on these two issues, and the flowchart of the improved A * algorithm is shown in
Figure 8.
The evaluation function
of the classic A * algorithm is shown in Formula (6), where
is the current node in the path planning process, and
is the target node, so that
are the coordinates of the current node in the grid map, and
are the coordinates of the target point in the grid map. The heuristic function
plays a guiding role in the evaluation function to search for nodes in the direction of the target point for path-planning.
The search efficiency and flexibility can be improved by modifying the heuristic function. When the path search is in the initial stages, there are more optional nodes such that a quick search towards the target point will clearly be preferable. When the node is close to the vicinity of the target point, obtaining the shortest path toward the target direction will dominate. Therefore, a dynamic-weighted heuristic function is proposed to optimize the evaluation function, which will set up the weight coefficient and the size of the coefficient of
. The distance threshold is set as below:
where
is the starting point coordinate,
is a constant greater than zero, and
. When the distance to the target point is greater than the threshold, the weight of the heuristic function can be increased to improve the search efficiency of the algorithm. In other words, the coefficient of
should increase with
. At this time, the algorithm will be guided to search in the direction of the target point to improve the search efficiency. When the distance to the target point is less than the threshold, such as in the case when the path search is approaching the target point,
and the coefficient of
are small and the heuristic function should remain unchanged to improve the cost function. The proportion of
in the evaluation function represents the potential of finding the shortest path. The optimized heuristic function can be written as:
The improved evaluation function is thus:
where
is the cost from the current node to the starting point.
(3) Path-smoothing strategy of the improved A * algorithm: Because the turning angle of the path obtained by the classic A * algorithm is randomly generated and sometimes too large or not smooth enough, which is undesired for the robot, a path-smoothing approach is given in this work to eliminate redundant turning spots. By traversing the path nodes in the grid map, the starting node of a sub-path is set as
, the intermediate node as
, and the successor node of
as
. If three continuous path nodes are linear, Formula (7) is met and the linear nodes are reserved. If not,
is regarded as a redundant turning point. If there is no obstacle between
a to
c, node
is deleted and the smooth path is
. Through this strategy, all original waypoints are processed to obtain a smoother path.
2.3. Disinfection Path Executor
(1) The mechanism of the disinfection path executor: The move_base package offers the configuration, operation, and interaction interface for ROS navigation to fulfill the robot navigation task. The move_base primarily consists of the global and local planners associated with the cost_map, respectively. The navigation task will invoke the global planner and the local planner to execute global path-planning and local obstacle avoidance. The actionlib function package in ROS can implement the communication with a feedback mechanism. Action is a type of Request-and-Answer communication mechanism similar to Service. The difference is that Action has a feedback mechanism, which can continually feedback on the task progress in “real-time” and can abort the operation in the runtime.
The disinfection path executor and the move_base package communicate through the Action communication mechanism to control the disinfection robot to execute the global disinfection path. In essence, the move_base package is set to be the Action server in communication, and the disinfection path executor is set as the Action client. The communication between the disinfection path executor and move_base is shown in
Figure 9.
The code structure of the disinfection path executor is a basic state machine. For this reason, it is easy to add complex behaviors controlled by defined transitions in the Python scripts. State transitions in the program occur in the order GET_PATH, FOLLOW_PATH, and PATH_COMPLETE. The disinfection path executor uses the global disinfection path point generated by the disinfection path planning algorithm to send the move_base_msgs/MoveBaseAction in the form of a series of target points using actionlib data to the move_base server. After receiving this action, the disinfection robot starts to execute each disinfection path point in the sequence, and continuously feedbacks on the current movement state during the execution. If the robot successfully reaches the global disinfection waypoints, the Action returns a “task completion” flag.
By publishing the waypoints topic, the disinfection path executor publishes the waypoint data in the current queue in the geometry_msgs/PoseArray data format, and this waypoints information can be displayed in Rviz in real-time. At the same time, the disinfection path executor subscribes to the std_msgs/Empty message in the path-ready topic to initialize the path point, and after executing a path point in the queue, clears the waypoint sequence by subscribing to the std_msgs/Empty message in the path_reset topic.
(2) Path-smoothing strategy for disinfection path executor: The disinfection path executor aids in the work of handling several waypoints and publishes log information output, relying on the fundamental navigation scheme. The disinfection path executor will automatically publish each path point’s coordinates and adjust the acceleration/deceleration distance as needed. The disinfection path executor uses a path-smoothing approach to lessen the robot’s acceleration or deceleration during path point execution and lets the disinfection robot walk more smoothly along the disinfection path. If the current execution path point sequence is a straight path or the disinfection robot is close enough to the current path target point, the next path target point will be released in advance to replace the current path target point. Thus, the disinfection robot will not experience the deceleration for the current target point, ensuring the smooth transition if, along the curve path, the path adjustment strategy is not to release the target point in advance. In other words, when the disinfection robot reaches the current target point, it will decelerate to 0 and then go to the next target point to achieve the maximum degree of path fit. At the same time, the disinfection path executor will publish the path execution log, which will record the disinfection path point’s execution status, such as whether the path was reached, as well as the path’s fit. To behave more efficiently, if the robot fails to reach the goal point ten times in a row or if the program decides that the robot is stuck, the disinfection path executor will terminate the execution automatically.
In an example of how the smooth threshold works in the disinfection path executor, three path points A, B, and C are chosen to be in a straight line. The disinfection path executor issues a task to C when the disinfection robot arrives at A and is within a certain distance to B. When the smoothing threshold is 0, the disinfection robot will decelerate in advance before reaching point B, stop at point B, and then release the task to point C. The larger the threshold, the better it can avoid the problem of deceleration. However, if it is too large, it may cause a path-not-fit issue, which is undesirable for robot control.