Next Article in Journal
Decision Support Model for Allocating Maintenance Budgets for Bridges
Previous Article in Journal
Factory Simulation of Optimization Techniques Based on Deep Reinforcement Learning for Storage Devices
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Path-Following and Collision-Avoidance Controls of a Robot in a Large Building with One or More Elevators

System Engineering Department, Sejong University, Seoul 05006, Republic of Korea
Appl. Sci. 2023, 13(17), 9691; https://doi.org/10.3390/app13179691
Submission received: 15 August 2023 / Revised: 24 August 2023 / Accepted: 25 August 2023 / Published: 27 August 2023

Abstract

:
For planning a robot’s path inside a large building with one or more elevators, we develop a topological map, called the building Voronoi graph. Using the building Voronoi graph, the robot finds the shortest path to the goal and follows the path. In the case where the robot detects an object with arbitrary shapes (e.g., human) while following the path, the robot avoids the object utilizing reactive control laws. The proposed reactive collision-avoidance control is unique in considering collision avoidance with map environments as well as (moving or static) objects having arbitrary shapes. As far as we know, our paper is novel in addressing how to make the robot follow the building Voronoi graph, while avoiding collision with map environments as well as objects with arbitrary shapes.

1. Introduction

This article addresses the path planing and control of a robot in a large building with one or more elevators. Suppose that the robot is ordered to visit another place (goal) in a large building. Once a goal point in the building is set, then the robot needs to move until it reaches the goal point. This scenario is important for the operation of many indoor robots, such as home robots [1,2], service robots [3,4] or nursing robots [5,6].
There may be a case where the goal is at a floor which is different from the floor where the robot is located. In order to handle this case, the robot needs to take an elevator. Humans effortlessly take an elevator, since elevators are designed for easy use by human operators. However, programming a robot to accomplish this task is surprisingly challenging [7].
Many papers [7,8,9] have addressed how to make a robot use an elevator. It is assumed that the robot can utilize elevators to move from one floor to another floor using the vision-based manipulating approach in [7,8]. How to make the robot operate the elevator buttons is not within the scope of our paper.
This paper considers the case where the robot moves in a known building environment. Therefore, the robot can locate itself using Monte–Carlo localization [10] or RFID tags [11,12]. By deploying multiple RFID tags in the building, one can localize the robot with an RFID antenna and RFID reader [12]. The references [11,12] showed that localization systems using RFID tags can achieve high estimation accuracy in real indoor scenarios. How to localize the robot in a known building is not within the scope of our paper.
In [13], the authors addressed how to produce a graph-based indoor network including floor-level and non-level paths from Industry Foundation Classes (IFC)-based building models. Ref. [13] required only the geometric information of IFC data models to automatically identify indoor space boundaries as well as to produce six categories of indoor paths. However, Ref. [13] did not address tracking controls of a robot based on the graph-based indoor network.
A Voronoi graph has been widely used in robotics [14,15,16,17,18,19,20]. A 2D Voronoi graph is a partition of the plane into regions close to each of a given set of sites. In the Voronoi graph, a Voronoi edge is the set of points which are equidistant from the two closest obstacles. According to this definition, a Voronoi graph provides a connected curve, which is safe and suitable for a robot path. In our paper, our robot uses a Voronoi graph as its path, since the graph provides the safest path which is the farthest from all obstacles.
For planning the robot’s path inside a large building with one or more elevators, this article addresses a topological map, called the building Voronoi graph. The building Voronoi graph consists of Voronoi vertices and Voronoi edges. The building Voronoi graph is generated as a contraction of a large building map, which is assumed to be known a priori.
In the building Voronoi graph, each floor is modeled utilizing the 2D Voronoi graph, and utilizing elevators is modeled as edges connecting distinct 2D Voronoi graphs. One sets the weight of an edge in the graph, based on the travel time inside an elevator and the traversal time of a passage. Using the building Voronoi graph, the robot can obtain a safe path to the goal.
Since the building Voronoi graph is a contraction of the entire building map (e.g, grid map), one can reduce the map size required for building exploration. Using the building Voronoi graph, one only needs to calculate the shortest path along the Voronoi graph, instead of the entire grid map. Therefore, one can improve the path-finding efficiency considerably, compared to the case where one searches for the shortest path utilizing all grid cells in the grid map.
In practice, the robot needs to use an elevator while moving to reach the goal. Moreover, the robot needs to spend some time while staying inside an elevator. One thus sets the weight of a Voronoi edge based on the travel time in an elevator and the traversal time of a passage. Using the weighted Voronoi graph, the robot finds the shortest path to the goal and follows the path.
This paper considers a scenario where the robot detects and identifies an object utilizing on-board sensors. For instance, the robot can detect a nearby object utilizing its camera or Lidar. For object identification in the camera image, one can utilize real-time object identification methods, such as you only look once (YOLO) [21,22,23] or Fast R-CNN [24]. For real-time object identification using Lidar, one can apply classification approaches in [25,26]. The classifier in [25,26] classifies objects into car or pedestrian. How to identify objects using on-board sensors is not within the scope of our paper. If the robot detects an object (e.g., a human) while following a Voronoi edge, then it avoids the object utilizing reactive control laws.
There are many papers on collision-avoidance control laws in 2D environments [27,28,29]. The authors of [27] addressed the dynamic window approach for collision avoidance. collision-avoidance controls in [27,28,29] did not consider the velocity of a moving object. In other words, collision-avoidance controls in [27,28,29] designed the robot’s path assuming that all obstacles are static. Hence, collision-avoidance controls in [27,28,29] may not be suitable for avoiding a fast moving object. In our paper, we develop a reactive collision-avoidance control considering the velocity of a moving object explicitly. This distinguishes our paper from other papers which did not consider moving obstacles.
For collision avoidance in the literature, obstacles were simplified as spheres or bounding boxes in [30,31,32,33]. However, simplifying an object shape is not desirable, especially in the case where an object has arbitrary shapes. Our article develops reactive collision-avoidance controls which do not simplify an object shape. As far as we know, our paper is novel in addressing reactive collision-avoidance controls, which can avoid objects with arbitrary shapes.
To the best of our knowledge, no paper in the literature handled how to make a robot follow the Voronoi graph while avoiding collision with other objects. Our paper integrates the proposed reactive collision-avoidance control with a path-tracking control, so that the robot can follow the Voronoi graph while avoiding collision with static map environments or (moving or static) objects with arbitrary shapes.
To the best of our knowledge, the novelties of our paper can be summarized as follows:
  • This paper addresses how to make the robot follow the building Voronoi graph, while avoiding collision with map environments as well as (moving or static) objects with arbitrary shapes.
  • This paper proposes a reactive collision-avoidance control, which achieves collision avoidance with map environments as well as (moving or static) objects with arbitrary shapes.
We verify the effectiveness of the proposed approaches utilizing MATLAB simulations.
This paper is organized as follows. Section 2 reviews the literature on robot path planning. Section 3 presents definitions and assumptions in this paper. Section 4 presents the path planner utilizing the building Voronoi graph. Section 5 introduces the reactive control for collision avoidance. Section 6 discusses how to make the robot follow the Voronoi path while avoiding collision. Section 7 provides MATLAB simulations to verify the effectiveness of the proposed approaches. Section 8 provides conclusions.

2. Literature Review on Robot Path Planning

Various papers exist on the path planning of robots. 3D path planning was introduced in [34], so that a robot can arrive at its goal as fast as possible, while not colliding with 3D obstacles in the environments. Many path-planning planning algorithms, such as RRT-star or RRT-star-smart [35,36,37], used random sampling to generate a path in environments without grid cells. Three-dimensional path planning is distinct from path planning in a building structure with elevators, which is handled in our paper.
In the literature on robotics, the A-star algorithm, Theta-star algorithm, Dijkstra algorithm, and Voronoi graph were widely used for path planning of various robots [38,39,40,41]. The A-star algorithm shows better performance than the Dijkstra algorithm by utilizing heuristics to guide its search towards its goal. The Theta-star algorithm in [38,42] is a variant of the A-star algorithm, propagating information along grid edges without constraining the paths to the grid edges. A-star, Theta-star, or Djkstra algorithms [39,40,41] require that the workspace is composed of multiple grid cells. In order to generate a Voronoi graph in grid maps, one can apply brushfire algorithms [43], which build the distance map at each grid cell.
However, as the workspace size increases, the number of grid cells required increases. As the building size increases, the required grid map size increases as well. Therefore, computing a path utilizing A-star, Theta-star, and brushfire algorithms, or Djkstra algorithms in a large building with many floors, may not be feasible due to the large computational load. Therefore, we argue that grid maps are not desirable in the case where one needs to build a path in a large building with many floors.
This inspired us to build a Voronoi graph for representing a large building with many floors. In Robotics, a Voronoi graph has been used as a topological map of a workspace [14,15,16,17,18,19,20]. In [44], multiple robots generate a Voronoi graph as a topological map of the environment, while dropping indexed markers at Voronoi vertices. The references [45,46,47] presented robot localization solutions as a robot explores a 2D environment by moving along Voronoi edges. In [45,46,47], a Voronoi graph is generated by a robot, which moves along Voronoi edges based on range sensor measurements. However, due to sensing errors or obstacles in the environment, the robot with range sensors may have difficulty in generating an accurate Voronoi graph of the environment.
In our paper, the building Voronoi graph is built based on a large building map (e.g., grid map), which is assumed to be known a priori. Hence, our Voronoi graph is robust to sensing errors or obstacles in the environment. This distinguishes our paper from other papers [45,46,47] on Voronoi graphs.
Voronoi path planning based on two steps was introduced in [48]. In the first step, the safest areas in the environment are extracted by means of a Voronoi graph. In the second step, a fast marching approach was applied to the Voronoi extracted areas in order to obtain the shortest path. In [49], the authors introduced an algorithm based on a Voronoi graph in order to compute an optimal path between a start and a goal in the presence of simple disjoint polygonal obstacles. However, in practice, obstacles can have various shapes, other than simple polygonal shapes. Our paper addresses the building Voronoi graph which is generated based on a large building map with arbitrary shapes.
In practice, the robot needs to use an elevator which yields the shortest path to the goal. Moreover, the robot needs to spend some time while staying inside an elevator. We thus set the weight of a Voronoi edge based on the travel time in an elevator and the traversal time of a passage.
We address path planning based on the building Voronoi graph, which represents a building structure with elevators. To the best of our knowledge, our paper is novel in the path planning and tracking control of a robot based on a building Voronoi graph. In addition, as far as we know, our paper is novel in addressing how to make the robot follow the Voronoi graph, while avoiding collision with other objects or static map environments. Moreover, our paper is unique in addressing reactive collision-avoidance controls, which can avoid objects with arbitrary shapes.

3. Definitions and Assumptions

3.1. Building Voronoi Graph

A graph G is defined as a set G = ( V ( G ) , E ( G ) ) , where V ( G ) is the vertex set and E ( G ) is the edge set [50]. This article addresses the building Voronoi graph G, as a topological map of a building.
Consider a building with L floors. π : V ( G ) { 1 , 2 , , L } is an index, and the graph G π = ( V ( G ) , E ( G ) , π ) implies that vertex i has index j if π ( i ) = j . The indexing π induces a subgraph on G as follows: G i π = ( V ( G i π ) , E ( G i π ) ) G where V ( G i π ) = { j V ( G ) | π ( j ) = i } and E ( G i π ) = { ( j , k ) E ( G ) | π ( j ) = π ( k ) = i } .
G i π is used as a graph of the i-th floor in the building. G i π is a 2D Voronoi graph, representing the topological map of the i-th floor.
Using elevators in the building, a robot can move from one floor to another floor. Therefore, one introduces a link which is associated with an elevator. A link is defined as follows. An edge ( i , j ) E ( G ) is a link if π ( i ) π ( j ) . Let G l G define the graph indicating all links. G l = ( V ( G l ) , E ( G l ) ) where V ( G l ) = { i V ( G ) | j V ( G ) such that ( i , j ) E ( G ) and π ( i ) π ( j ) } and E ( G l ) = { ( i , j ) E ( G ) | π ( i ) π ( j ) } .
Figure 1 shows a building Voronoi graph associated with a building with three floors. In Figure 1, links are plotted with dotted curve segments. In Figure 1, there are two elevators. One elevator is represented with links to the left of the graph, and the other elevator is represented with links to the right of the graph.

3.2. Robot Motion and Obstacle Avoidance

Let L ( A , B ) define the line segment whose two end points are A and B , respectively. Considering an arbitrary angle ψ , let the rotation matrix be defined as
R ( ψ ) = cos ( ψ ) sin ( ψ ) sin ( ψ ) cos ( ψ ) .
Let q R 2 define the 2D coordinate of the robot. Let v = q ˙ R 2 indicate the robot’s velocity vector.
This article handles discrete-time systems. Considering a variable C , C ( k ) indicates C at sample-step k. For instance, the robot at sample-step k is located at q ( k ) R 2 .
This manuscript considers a differential drive robot with two wheels (left wheel and right wheel). The robot’s motion model is
q ( k + 1 ) = q ( k ) + v ( k ) d t ,
where d t indicates the sample duration in discrete-time systems. By controlling the rotation speed of each wheel, one can set v ( k ) R 2 .
The average speed of two wheels determines the forward speed v ( k ) . Furthermore, the difference between the right wheel speed and the left wheel speed makes the robot change its heading angle. Detailed dynamic models of a differential drive robot appeared in [51].
Once a target speed and a target heading angle are set, two wheels rotate to converge to the target speed and the target heading. It is assumed that one can control the speed of each wheel, so that a target speed and a target heading can be reached within d t seconds. The robot’s maximum speed is s m a x , i.e.,  v ( k ) s m a x for all k. This implies that the wheel speed cannot exceed s m a x due to the hardware limit of the robot.
This manuscript considers the case where the robot moves in a known map. Hence, the robot can locate itself using Monte—Carlo localization [10] or RFID tags [11,12]. How to localize the robot is not within the scope of this article. Since the robot can locate itself, it can access q ( k ) and v ( k ) in (2) at each sample-step k.
The robot detects and identifies an object utilizing on-board sensors. The robot identifies a nearby object utilizing its camera [21,22,23,24] and Lidar [25,26,52,53]. How to identify objects using on-board sensors is not within the scope of our paper.
Suppose that an object, such as a human, is detected by the robot. The robot measures 2D points on the object’s boundary utilizing on-board sensors. For instance, Lidar sensors can be used for this boundary measurement.
We consider an object with arbitrary shapes. As sensor rays detect an object’s boundary, multiple points on the object are detected by the rays. Every detected point is termed the objectBoundaryPoint  O R 2 .
The robot can measure an objectBoundaryPoint O R 2 and its velocity using its on-board sensors, such as Lidar [52,53]. Since the robot can locate itself, it can access q ( k ) R 2 and v ( k ) R 2 in (2) at each sample-step k. Therefore, the robot can access the position and velocity of an objectBoundaryPoint in real time. Let v o ( k ) R 2 denote the velocity of the objectBoundaryPoint at sample-step k. Note that each objectBoundaryPoint O has its associated velocity v o ( k ) .
At sample-step k, the robot is in near-collision with an objectBoundaryPoint, in the case where the relative distance between the robot and the objectBoundaryPoint is less than a certain variable, say r ( k ) > 0 . Here, r ( k ) represents the safety margin for the robot at sample-step k.
Note that r ( k ) depends on sample-step k and is set considering the object’s speed v o ( k ) . r ( k ) is set under
r ( k ) = r 0 + μ v o ( k ) .
Here, r 0 indicates the safety margin, in the case where an object’s speed is zero. Furthermore, μ > 0 is a tuning parameter for weighting the effect of object speed. In the case where there is a fast object, r ( k ) increases using (3). This implies that if there is a fast object, then the safety margin increases using (3).

4. Path Planner Utilizing a Building Voronoi Graph

This section presents the path planner utilizing a building Voronoi graph. First, one presents how to generate G i π for all i { 1 , 2 , , L } . Each floor is represented as a plane with obstacles.
Let mapPoints denote the 2D points associated with static obstacle boundaries in a known 2D map. Since the robot is localized in a known map, it can derive the relative position of a mapPoint while it moves. The robot needs to avoid colliding with mapPoints while it moves. Moreover, the robot needs to avoid colliding with objects, such as humans, in the building environment.
At every floor, map boundaries are represented as mapPoints in the workspace. For instance, in a grid map, a mapPoint can be a grid cell presenting the map. MapPoints can be obtained utilizing the map of each floor in the building. It is assumed that mapPoints are known a priori.
Using mapPoints at the i-th floor ( i { 1 , 2 , , L } ), we generate G i π . Suppose that N i mapPoints exist at the i-th floor ( i { 1 , 2 , , L } ). Let O n i define the position of n-th mapPoint at the i-th floor. Here, n { 1 , 2 , , N i } .
Suppose that one can access the map of every floor, representing mapPoints on the associated plane. At the i-th floor, one generates a Voronoi graph G i π as follows.
In MATLAB, the  v o r o n o i function returns the set of Voronoi edges associated with a given seed points (mapPoints in this paper). The Voronoi edges are all points in the plane, which are equidistant to the two nearest seed points (mapPoints in this paper). A Voronoi vertex is a point where more than two Voronoi edges meet.
In the case where mapPoints are generated from the sensing measurements of a robot, the mapPoints may form a cluster. In the case where mapPoints are clustered, one may generate a Voronoi vertex which exists inside the clustered mapPoints.
See Figure 2 for an illustration. Five mapPoints exist in total. In this figure, the left three mapPoints are generated from the boundary of an obstacle, say A. Furthermore, the right two mapPoints are generated from the boundary of another obstacle, say B. In Figure 2, a curve segment indicates the Voronoi edge generated utilizing mapPoints. Furthermore, a circle indicates a Voronoi vertex. At the center of three mapPoints on the left side, there exists a Voronoi vertex. A Voronoi edge leading to this vertex cannot be utilized as a path for a robot, since this vertex exists on an obstacle boundary. One thus removes Voronoi vertices which are too close to mapPoints. Then, Voronoi edges leading to the removed vertices also disappear. In Figure 2, red bold curve segments indicate the remaining Voronoi edges, after removing Voronoi vertices which are too close to mapPoints.
For instance, we depict a map which is composed of mapPoints. In Figure 3, mapPoints are plotted with yellow points. Blue curve segments in this figure indicate the trimmed Voronoi graph, which is obtained after removing vertices that are too close to mapPoints. Figure 4 is the enlarged figure of Figure 3. See that mapPoints are clustered around map boundaries. In simulations, we removed a Voronoi vertex, whose distance from a mapPoint is less than a certain distance, say Δ (5 m in MATLAB simulations).
Figure 3 shows that we still have Voronoi edges which are not necessary for robot path planning. In fact, we can trim a Voronoi edge which crosses the workspace boundary. In addition, we can trim a Voronoi vertex which exists outside the workspace. Furthermore, we can remove Voronoi edges which lead to workspace corners [54]. The authors of [54] considered the case where the robot builds a Voronoi diagram using range sensor measurements. In this case, edges leading to workspace corners can be easily detected using on-board sensors on the robot. However, in our paper, the Voronoi graph is built using the building map, not using range sensor measurements.
Trimming additional edges consumes the additional computational load. Considering computational load, we only removed a Voronoi vertex, whose distance from a mapPoint is less than Δ .
It is acknowledged that a Voronoi graph does not provide the shortest path between two points. This article uses the Voronoi graph as the robot’s path, since it provides the safest path for the robot. Any Voronoi edge in the workspace can be used as the robot’s path segment.
At the i-th floor ( i { 1 , 2 , , L } ), we generate a trimmed Voronoi graph and set it as the topological map G i π . Each edge in the trimmed Voronoi graph is weighted using its edge length and its associated passage width.
Consider the trimmed Voronoi graph on the i-th floor. Suppose that a Voronoi edge connects between two vertices, say V m and V n . We next present how to set the weight of this edge. Let V m R 2 and V n R 2 define the positions of V m and V n , respectively. The length of this edge is V m V n . The traversal time of this edge is conjectured as V m V n s m a x . Recall that the robot’s maximum speed is s m a x , i.e.,  v ( k ) s m a x for all k. Therefore, the weight of an edge e = ( V m , V n ) is set as
w e i g h t ( e ) = V m V n s m a x .
See that this weight is set considering the time required to traverse the edge, as the robot moves with its maximum speed s m a x .
We further generate a link edge connecting between distinct floors. Recall that a robot can move from one floor to another utilizing elevators. We generate a Voronoi vertex at a workspace position where an elevator exists.
Recall that a Voronoi edge ( i , j ) E ( G ) is a link if π ( i ) π ( j ) . The weight of a link is set considering the travel time inside the associated elevator. Suppose that a link is ( i , j ) E ( G l ) . Then, we set the weight of this link as δ i j . Here, δ > 0 is a constant. The weight of a link is set, considering the fact that as the floor difference between two floors increases, it takes more time to make the elevator move between the two floors.
Once we obtain all weighted edges in the building Voronoi graph, we then generate the adjacency graph based on the weighted edges. We search for a vertex which is closest to the robot’s initial position, and set the vertex as V s . In addition, we search for a vertex which is closest to the goal point, and set the vertex as V t .
We obtain the shortest path from V s to V t utilizing the adjacency graph. For finding the shortest path in a graph, Dijkstra’s algorithms [55] can be used. The building Voronoi graph is generated considering the entire building, including all elevators. Thus, V s and V t can exist on distinct floors. If necessary, the robot uses an elevator, which can lead to the goal as fast as possible.
Let P V = ( V 1 , V 2 , . . V Q ) define the sequence of Voronoi vertices along the shortest path from V s to V t . Here, V 1 = V s , and  V Q = V t . In total, Q vertices exist along this path.
Note that we obtain the shortest path along the building Voronoi graph, instead of the entire workspace (e.g., grid map). Therefore, one can improve the path-finding efficiency considerably, compared to the case where one searches for the shortest path utilizing all cells in the workspace. Since the building Voronoi graph is a contraction of the entire building map (e.g., grid map), one can reduce the map size required for building exploration.
Once the Voronoi path P V is built, the robot follows the path until it reaches V t . How to make the robot follow P V is discussed in Section 6.

5. Reactive Control for Collision Avoidance

While the robot moves along P V , it needs to avoid colliding with objects, such as humans. Suppose the robot detects an object’s surface utilizing local ranging sensors, such as Lidar. Let r m denote the maximum sensing range of the local sensors. Recall that the robot measures objectBoundaryPoints on the surface of an object with arbitrary shapes. One introduces a reactive collision-avoidance control, which makes the robot avoid colliding with every objectBoundaryPoint.

5.1. Collision Prediction within k p Sample-Steps in the Future

The robot’s velocity command at each sample-step is set for avoiding a collision with an object detected at the moment. In other words, the robot’s velocity command is set at every sample-step.
Suppose that the robot’s velocity vector at sample-step k is v R 2 . We address how to evade the situation where the robot and an objectBoundaryPoint, say O R 2 , collide between sample-step k and k + k p . Here, k p > 0 indicates the prediction window size, set by the robot’s operator.
v o ( k ) R 2 denotes the velocity of O R 2 at sample-step k. In the collision prediction, one assumes that O maintains its velocity as v o ( k ) between sample-step k and k + k p .
This assumption is required, since the robot at sample-step k needs to set its velocity vector, considering the predicted motion of an object. This assumption is trivial as we set k p = 1 . However, k p = 1 may lead to collision of the robot, since the prediction window size is too short.
Let objectCircle define the circle with radius r ( k ) , centered at an objectBoundaryPoint O ( k ) R 2 . Here, r ( k ) denotes the safety margin and is defined in (3). Note that r ( k ) is set considering v o ( k ) .
No collision happens between sample-step k and k + k p if
( q ( k ) + v u d t ) ( O ( k ) + v o ( k ) u d t ) > r ( k )
for all 0 u k p . Rearranging (5), we obtain
q ( k ) + ( v v o ( k ) ) u d t O ( k ) > r ( k )
for all 0 u k p . As one increases u in (6) from 0 to k p , q ( k ) + ( v v o ( k ) ) u d t generates the straight line segment L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) .
Utilizing (6), Lemma 1 follows.
Lemma 1.
The robot’s velocity vector is v R 2 . Assume that an objectBoundaryPoint maintains its velocity as v o ( k ) R 2 between sample-step k and k + k p . Assume that q ( k ) R 2 is outside the objectCircle centered at O ( k ) . Between sample-step k and k + k p , the robot does not collide with the objectBoundaryPoint, as long as L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) does not cross the objectCircle centered at O ( k ) .
Under Lemma 1, the robot can anticipate a collision within k p sample-steps in the future. The robot examines if its velocity vector v meets the following safety requirement: L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) does not cross the objectCircle, centered at O ( k ) .
If L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) does not cross the objectCircle centered at O ( k ) , then this implies that the robot’s velocity vector v avoids collision within k p sample-steps in the future.
If L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) does not cross the objectCircle centered at O ( k ) , then the robot utilizes v as the velocity direction for a single sample duration. Note that the robot’s velocity vector is reset at every sample-step.
For collision avoidance between sample-step k and k + k p , Lemma 1 uses the following assumption: Between sample-step k and k + k p , an objectBoundaryPoint maintains its velocity as v o ( k ) R 2 .
This assumption implies that an objectBoundaryPoint maintains its velocity as v o ( k ) R 2 for k p d t seconds. As the sampling interval d t decreases, k p d t decreases. Thus, the above assumption becomes easier to be satisfied. Hence, it is desirable that d t is as small as possible for satisfying the assumption in Lemma 1.

5.2. Find a Safe Velocity Vector of the Robot

If L ( q ( k ) , q ( k ) + ( v v o ( k ) ) k p d t ) crosses the objectCircle centered at O ( k ) , then the robot must calculate a safe velocity vector. Algorithm 1 is used to make the robot avoid colliding with objects as well as static map environments. Let o b s B o u n d a r y P o i n t S e t denote the set of objectBoundaryPoints measured at sample-step k. Furthermore, let m a p P o i n t S e t denote the set of mapPoints measured at sample-step k. Recall that mapPoints denote the 2D points associated with static obstacle boundaries in a known 2D map.
Let P o i n t S e t denote the union of o b s B o u n d a r y P o i n t S e t and m a p P o i n t S e t . Let d e t e c t e d P o i n t indicate a point in P o i n t S e t .
As the safety requirement is not satisfied for at least one d e t e c t e d P o i n t P o i n t S e t , the robot under Algorithm 1 calculates its velocity vector satisfying the safety requirement for every d e t e c t e d P o i n t P o i n t S e t . Once a velocity direction which satisfies the safety requirement is found, then the robot utilizes the found velocity vector as its velocity for a single sample-step.
In Algorithm 1, c o l N u m = c o l ( v c , P o i n t S e t ) returns the number of d e t e c t e d P o i n t s P o i n t S e t colliding with a candidate heading vector v c . For collision prediction within k p sample-steps in the future, we use the safety requirement. If c o l N u m = = 0 , then Lemma 1 proved that moving with velocity v c assures collision with every d e t e c t e d P o i n t P o i n t S e t within k p sample-steps in the future. Thus, if  c o l N u m = = 0 , then one can obtain a safe velocity vector avoiding collision with every d e t e c t e d P o i n t P o i n t S e t . Therefore, one sets v c as the robot’s velocity vector at sample-step k + 1 .
On the other hand, if  c o l N u m 0 , then one cannot derive a safe velocity vector which evades colliding with every d e t e c t e d P o i n t P o i n t S e t within k p sample-steps in the future. In this situation, one finds a velocity vector with the minimum collision probability by finding a heading vector which collides with the minimum number of d e t e c t e d P o i n t s .
Algorithm 1 shows how to obtain a safe velocity vector at sample-step k + 1 . Let v 0 denote a safe velocity vector at sample-step k + 1 . Let ψ ( k ) define the robot’s heading angle at sample-step k. Under (2), one derives
v ( k ) = [ cos ( ψ ( k ) ) v ( k ) , sin ( ψ ( k ) ) v ( k ) ] T .
Recall that the robot’s speed is limited by s m a x . Therefore, v ( k + 1 ) is limited as
0 v ( k + 1 ) s m a x .
Algorithm 1 finds a safe speed utilizing the following FOR loop: for v 0 = 0 , v 0 = v 0 + s m a x N , while v 0 s m a x . Here, N is a tuning parameter indicating the search precision. As one increases N, one can increase the precision of the speed search. However, increasing N increases the computational load. In simulations, we use N = 10 . This implies that the speed search is performed at N = 10 distinct speeds.
In Algorithm 1, the FOR statement indicates that a velocity vector with low speed ( v 0 = 0 ) is examined before examining a velocity vector with high speed ( v 0 = s m a x ). In this way, the robot does not accelerate abruptly. This is desirable considering the human safety in the building.
Algorithm 1 Find a safe velocity vector at sample-step k + 1
 1:
The current sample-step is k;
 2:
o b s B o u n d a r y P o i n t S e t the set of objectBoundaryPoints measured at sample-step k;
 3:
m a p P o i n t S e t the set of mapPoints measured at sample-step k;
 4:
P o i n t S e t = o b s B o u n d a r y P o i n t S e t m a p P o i n t S e t ;
 5:
if  c o l ( v ( k ) , P o i n t S e t ) ==0 then
 6:
   Set v ( k ) as the robot’s velocity vector at sample-step k + 1 ;
 7:
   Return v ( k ) , and this algorithm is finished;
 8:
end if
 9:
m i n P o i n t s = ;
10:
for  v 0 = 0 , v 0 = v 0 + s m a x N , while v 0 s m a x do
11:
   for  ψ 0 = 0 , ψ 0 = ψ 0 + π N , while ψ 0 < π  do
12:
      v c 1 = R ( ψ 0 ) v ( k ) ;
13:
      c o l N u m 1 = c o l ( v c 1 , P o i n t S e t ) ;
14:
     if  c o l N u m 1 = = 0 ; then
15:
        Set v c 1 as the robot’s velocity vector at sample-step k + 1 ;
16:
        Return v c 1 , and this algorithm is finished;
17:
     end if
18:
     if  c o l N u m 1 < m i n P o i n t s ; then
19:
         m i n P s i = ψ 0 ; m i n V = v 0 ; m i n P o i n t s = c o l N u m 1 ;
20:
     end if
21:
   end for
22:
   for  ψ 0 = π N , ψ 0 = ψ 0 π N , while ψ 0 > π  do
23:
      v c 2 = R ( ψ 0 ) v ( k ) ;
24:
      c o l N u m 2 = c o l ( v c 2 , P o i n t S e t ) ;
25:
     if  c o l N u m 2 = = 0 ; then
26:
        Set v c 2 as the robot’s velocity vector at sample-step k + 1 ;
27:
        Return v c 2 , and this algorithm is finished;
28:
     end if
29:
     if  c o l N u m 2 < m i n P o i n t s ; then
30:
         m i n P s i = ψ 0 ; m i n V = v 0 ; m i n P o i n t s = c o l N u m 2 ;
31:
     end if
32:
   end for
33:
end for
34:
v c = R ( m i n P s i ) m i n V [ 1 , 0 ] T ;
35:
Return v c ;
Algorithm 1 finds a safe heading angle, utilizing the following FOR loop: FOR ψ 0 = 0 , ψ 0 = ψ 0 + π N , while ψ 0 < π . This FOR loop implies that a safe heading angle is found in the clockwise direction starting from the robot’s heading. Once a safe heading angle is not derived using this clockwise direction search, then Algorithm 1 finds a safe heading angle utilizing the following FOR loop: FOR ψ 0 = π N , ψ 0 = ψ 0 π N , while ψ 0 > π . This FOR loop implies that a safe heading angle is found in the counter clockwise direction starting from the robot’s heading.
If a candidate heading vector v c R 2 and every d e t e c t e d P o i n t P o i n t S e t satisfies the safety requirement, then the candidate heading vector v c is a safe velocity vector which evades collision. Therefore, one sets v c as the robot’s velocity vector at sample-step k + 1 , and Algorithm1 is finished.
In Algorithm 2, m a x C o l N u m is set considering the computational load of the algorithm. By setting m a x C o l N u m as a small number, one does not have to examine the safety requirement for every d e t e c t e d P o i n t in P o i n t S e t . In simulations, one uses m a x C o l N u m = 100 .
Algorithm 2 c o l ( v c , P o i n t S e t )
 1:
c o l N u m = 0 ;
 2:
for  d e t e c t e d P o i n t P o i n t S e t do
 3:
   if  v c and d e t e c t e d P o i n t do not satisfy the safety requirement; then
 4:
      c o l N u m = c o l N u m + 1 ;
 5:
   end if
 6:
   if  c o l N u m > m a x C o l N u m  then
 7:
     break;
 8:
   end if
 9:
end for
10:
Return c o l N u m ;

6. Path-Following Control Laws While Avoiding Collisions

This section discusses how to make the robot follow the Voronoi path P V = ( V 1 , V 2 , V Q ) while avoiding collision with other objects or static map environments. Before presenting the control laws, one discusses how to make the robot approach a wayPoint, while keeping away from collision.

6.1. Control Laws for Approaching a wayPoint

One discusses how to set the robot’s velocity vector v ( k ) R 2 so that it approaches a wayPoint, while keeping away from colliding with other objects or static map environments. Let W R 2 define the robot’s wayPoint, so that the robot arrives at the wayPoint within one sample-step. Under (2), one defines v ( k ) = v ( k ) .
The robot’s desired heading direction is set as
h = W q ( k ) W q ( k ) .
In order to arrive at W at sample-step k + 1 , the desired speed of the robot is
v D = W q ( k ) d t .
In the case where
W q ( k ) d t < s m a x ,
W R 2 is reachable within one sample-step.
In the case where (11) is satisfied, the robot sets its speed to v D = W q ( k ) d t . In the case where (11) is not satisfied, the robot increases its speed to its maximum speed s m a x . Hence, the robot’s velocity vector ( v ( k ) in (2)) is set as
v g = m i n ( v D , s m a x ) ( W q ( k ) ) W q ( k ) .
Using v g in (12), the robot approaches the wayPoint. In (12), m i n ( v D , s m a x ) presents the speed command of the robot. Furthermore, ( W q ( k ) ) W q ( k ) presents the heading command of the robot.
In the case where v g in (12) satisfies the safety requirement in Section 5.1, v g is utilized as the robot’s velocity vector v ( k ) . However, in the case where v g does not satisfy the safety requirement, one utilizes Algorithm 1 to obtain the robot’s velocity vector for avoiding collision with other objects or static map environments.

6.2. Control Laws for Tracking the Voronoi Path P V

The idea of the proposed path following is to set the robot’s wayPoint at every sample-step k, and make the robot approach the wayPoint utilizing the control in Section 6.1. The robot’s wayPoint is set so that it tracks the designated path as the robot follows its wayPoint.
One discusses how to set the robot’s wayPoint at every sample-step k. One parameterizes the designated path, so that V 1 has arc-length 0 and V Q has the longest arc-length. Let a r c p define the arc-length associated with a point, say p, on the path.
Let closestPnt, say C ( k ) , define the point on the Voronoi path P V , which is closest to the robot at sample-step k. C ( k ) can be measured by the robot, since the robot localizes itself while accessing the Voronoi path P V . The arc-length associated with C ( k ) is a r c C ( k ) .
One draws a circle centered at C ( k ) , whose radius is s m a x d t . Let pathCircle define this circle for convenience. Since the maximum speed of the robot is s m a x , the maximum movement distance within one sample interval d t is the circle radius s m a x d t .
Suppose that the Voronoi path crosses the pathCircle at distinct points, say p 1 ( k ) , p 2 ( k ) ,… p e n d ( k ) . The index order of these points is set, satisfying that a r c p l a r c p j where l < j . This implies that a r c p 1 a r c p 2 a r c p e n d . Thus, p 1 ( k ) , p 2 ( k ) ,… p e n d ( k ) exist along the Voronoi path in this order. In Figure 5, p 1 ( k ) and p 2 ( k ) exist along the Voronoi path in this order.
Suppose that the Voronoi path crosses the pathCircle at distinct points, to be defined as p 1 ( k ) , p 2 ( k ) , …, p e n d ( k ) in this order. One then sets p e n d ( k ) as the robot’s wayPoint at sample-step k. In Figure 5, p 2 ( k ) is selected as the robot’s wayPoint. Then, the robot approaches the wayPoint under the control laws in Section 6.1.
At each sample-step k, the robot sets its wayPoint as p e n d ( k ) and sets its velocity vector as (12). Lemma 2 proves that this control makes the robot follow P V .
Lemma 2.
Suppose that the Voronoi path crosses the pathCircle at distinct points, to be defined as p 1 ( k ) , p 2 ( k ) ,…, p e n d ( k ) in this order. At each sample-step k, the robot sets its wayPoint as p e n d ( k ) and sets its velocity vector as (12). This control makes the robot follow the Voronoi path P V .
Proof. 
Suppose that the Voronoi path crosses the pathCircle at distinct points p 1 ( k ) , p 2 ( k ) , …, p e n d ( k ) in this order. As the robot moves at every sample-step k, its wayPoint is set to p e n d ( k ) . q ( k ) is the robot’s position at sample-step k. Let p e n d ( k ) R 2 denote the 2D position of p e n d ( k ) for convenience. If q ( k ) p e n d ( k ) > s m a x d t , then the robot heads to p e n d ( k ) with speed s m a x under (12). If q ( k ) p e n d ( k ) s m a x d t , then the robot heads to p e n d ( k ) with speed q ( k ) p e n d ( k ) d t under (12). In this case, the robot reaches p e n d ( k ) at the next sample-step k + 1 .
The Voronoi path crosses the pathCircle at distinct points, say p 1 ( k ) , p 2 ( k ) ,… p e n d ( k ) , in this order. Under (12), the robot moves towards p e n d ( k ) at each sample-step k. As the robot moves toward p e n d ( k ) , it follows the Voronoi path, since a r c p 1 ( k ) a r c p 2 ( k ) a r c p e n d ( k ) . □
Once V Q is inside the pathCircle centered at C ( k ) , V Q is selected as the wayPoint. Then, the robot heads towards the wayPoint under (12).
Suppose that one has an object which is too close to V Q , and that the robot’s wayPoint is set as V Q . In this case, the robot stops moving and it is assumed that the path following is finished. This is inevitable, since V Q is too close to an object.
One may have a situation where an object exists close to the robot’s wayPoint p e n d ( k ) , which is not identical to V Q . In this situation, the robot cannot approach p e n d ( k ) , due to the collision-avoidance control in Algorithm 1. The robot may become stuck in this situation.
In order to resolve this problem, one updates the pathCircle radius from s m a x d t to η s m a x d t , where η > 1 is a constant, if p e n d ( k ) is too close to an object. In this way, the robot can avoid being stuck close to an object.

7. MATLAB Simulations

MATLAB simulations are presented to verify the effectiveness of the proposed approaches. The robot’s speed is 2 m/s. The sample duration is set as d t = 5 s, and k p = 1000 is utilized in the reactive collision evasion control. One uses δ = 2 s as the constant associated with the maneuver of an elevator.
Recall that the robot is near-collision at the moment when the distance between the robot and any d e t e c t e d P o i n t is shorter than the safety margin r ( k ) . In (3), one sets r 0 = 2 , and μ = 0.01 . In MATLAB simulations, a true collision happens at the moment when the distance between the robot and any d e t e c t e d P o i n t is shorter than 1 m, which is shorter than the safety margin r ( k ) . A MATLAB simulation ends when a true collision happens.
As the maximum sensing range of the robot, one sets r m = 20 m. One further simulates the measurement noise in the robot’s local range sensors. In Algorithm 1, every d e t e c t e d P o i n t P o i n t S e t is perturbed by adding a Gaussian noise with mean 0 and standard deviation 0.1. In this way, one simulates the case where the robot’s local range sensors have some measurement noise.
In practice, the robot’s motion is perturbed due to environmental effects, such as wheel slippage. Therefore, instead of (2), the robot’s motion model is set as
q ( k + 1 ) = q ( k ) + v ( k ) d t + n ( k ) ,
where n ( k ) denotes the process noise at sample-step k. It is assumed that n ( k ) has a Gaussian distribution with mean 0 and standard deviation 0.1. By setting n ( k ) , one simulates the process error in the robot’s motion command.
One considers the case where the robot moves from one floor α to another floor β . Recall that the robot can utilize elevators to move from one floor to another floor using the vision-based manipulating approach in [7,8].
The robot’s initial position is ( 200 , 150 ) at α floor. At α floor, we have multiple objects, which do not move. We have an elevator which connects ( 370 , 120 ) of β floor with ( 370 , 120 ) of α floor. The goal of the robot is ( 350 , 470 ) at β floor. At β floor, we have multiple objects.
The designated path is built using the building Voronoi graph (blue line segments in the following figures). Then, the robot moves along the designated path while utilizing reactive collision-avoidance control in Section 5 if necessary.
We run 20 Monte–Carlo (MC) simulations to verify the robustness of the proposed approaches. The robot reaches its goal without collision in all MC simulations.

7.1. Handling Circular Objects

We first consider a case where multiple objects exists, such that each object has a circular shape. Figure 6 shows the map of α floor with a static circular object. MapPoints are plotted with yellow points. The boundary of each static object is depicted with black circles. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) . Considering one MC simulation, the robot’s location at every d t seconds is depicted as green diamonds.
Figure 7 is the enlarged figure of Figure 6. See that the robot’s path is slightly deviated from Voronoi edges (blue line segments), in order to keep away from colliding with an object.
At β floor, we have multiple objects, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. Consider the map of β floor with moving circular objects. Considering one MC simulation, Figure 8 indicates the robot’s location (green diamonds) at every d t seconds. The boundary of an object at every d t seconds is depicted with black circles. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) . Figure 9 is the enlarged figure of Figure 8.
Considering the scenario in Figure 8, Figure 10a shows the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step. Since the robot’s maximum sensing range is 20 m, the relative distance is bounded above by 20 m. A collision occurs at the moment when the distance between the robot and any d e t e c t e d P o i n t is shorter than 1 m. See that no collision happens during the robot maneuver. Recall that C ( k ) defines the point on the path P V , which is closest to the robot at sample-step k. Figure 10b indicates the relative distance between the robot and C ( k ) at each sample-step k. See that the robot keeps following the path P V .

7.2. Handling Various Objects with Arbitrary Shapes

We next consider a case where each object has various shapes, other than a circle. Considering one MC simulation of α floor (static objects), Figure 11 shows the robot’s location (green diamonds) at every d t seconds. The boundary of each object with arbitrary shapes is depicted with black colors. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) . Figure 12 is the enlarged figure of Figure 11. See that the robot’s path slightly deviates from Voronoi edges (blue line segments), in order to keep away from colliding with an object.
At β floor, one has multiple objects, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. Considering one MC simulation of β floor with moving objects, Figure 13 shows the robot’s location (green diamonds) at every d t seconds. The boundary of each object at every d t seconds is depicted with black circles. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) . Figure 14 is the enlarged figure of Figure 13.
Considering the scenario in Figure 13, Figure 15a shows the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step. Note that a collision occurs at the moment when the distance between the robot and any d e t e c t e d P o i n t is shorter than 1 m. See that no collision happens during the robot maneuver. Figure 15b shows the relative distance between the robot and C ( k ) at each sample-step k. See that the robot keeps following the path P V .

8. Conclusions

This article addresses the path planing of a robot in a large building with many floors. The robot needs to arrive at the goal in the building safely. The robot can utilize elevators to move from one floor to another. Using the building Voronoi graph as a topological map, the robot derives a safe path to the goal. The weight of a Voronoi edge is set, based on the travel time inside an elevator and the traversal time of a passage. The robot then finds the shortest path to the goal, based on the weighted Voronoi graph. In the case where the robot detects an object with arbitrary shapes, such as a human, while moving along a Voronoi edge, the robot avoids the object utilizing reactive control laws.
In summary, we addressed how to make the robot follow the building Voronoi graph, while avoiding collision with map environments as well as objects with arbitrary shapes. This paper proposed a reactive collision-avoidance control, which achieves collision avoidance with map environments as well as objects with arbitrary shapes. We integrated the proposed reactive collision-avoidance control with a path-tracking control, so that the robot can follow the Voronoi graph, while still avoiding collision with static map environments or objects with arbitrary shapes.
As far as we know, our paper is novel in the path planning and control of a robot utilizing the building Voronoi graph representing a large building structure with many elevators. Furthermore, the proposed reactive collision-avoidance control is novel in considering collision avoidance with map environments as well as (moving or static) objects with arbitrary shapes. This paper verifies the effectiveness of the proposed approaches utilizing MATLAB simulations. In the future, we will demonstrate the performance of the proposed approaches utilizing experiments with a real robot.
The proposed control scheme can be extended to the case where multiple robots move in the building. Each robot can share the building Voronoi graph and use the graph as its topological map. A robot can be considered as a moving obstacle to another robot. A robot can share its position and velocity information with its nearby robot using local communication. Then, the proposed reactive collision-avoidance control laws can be used for avoiding collision among multiple robots.

Funding

This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) (Grant Number: 2022R1A2C1091682). This research was supported by the faculty research fund of Sejong University in 2023.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Srinivasa, S.S.; Ferguson, D.; Helfrich, C.J.; Berenson, D.; Collet, A.; Diankov, R.; Gallagher, G.; Hollinger, G.; Kuffner, J.; Weghe, M.V. HERB: A home exploring robotic butler. Auton. Robot. 2010, 28, 5–20. [Google Scholar]
  2. Bohren, J.; Rusu, R.B.; Gil Jones, E.; Marder-Eppstein, E.; Pantofaru, C.; Wise, M.; Mösenlechner, L.; Meeussen, W.; Holzer, S. Towards autonomous robotic butlers: Lessons learned with the PR2. In Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China, 9–13 May 2011; pp. 5568–5575. [Google Scholar]
  3. Jyh-Hwa, T.; Su Kuo, L. The development of the restaurant service mobile robot with a Laser positioning system. In Proceedings of the 2008 27th Chinese Control Conference, Kunming, China, 16–18 July 2008; pp. 662–666. [Google Scholar]
  4. Qing-xiao, Y.; Can, Y.; Zhuang, F.; Yan-zheng, Z. Research of the Localization of Restaurant Service Robot. Int. J. Adv. Robot. Syst. 2010, 7, 227–238. [Google Scholar]
  5. Cardona, M.; Cortez, F.; Palacios, A.; Cerros, K. Mobile Robots Application Against Covid-19 Pandemic. In Proceedings of the 2020 IEEE ANDESCON, Quito, Ecuador, 13–16 October 2020; pp. 1–5. [Google Scholar]
  6. Sierra Marín, S.D.; Gomez-Vargas, D.; Céspedes, N.; Múnera, M.; Roberti, F.; Barria, P.; Ramamoorthy, S.; Becker, M.; Carelli, R.; Cifuentes, C.A. Expectations and Perceptions of Healthcare Professionals for Robot Deployment in Hospital Environments During the COVID-19 Pandemic. Front. Robot. AI 2021, 8, 102. [Google Scholar]
  7. Troniak, D.; Sattar, J.; Gupta, A.; Little, J.J.; Chan, W.; Calisgan, E.; Croft, E.; Van der Loos, M. Charlie Rides the Elevator—Integrating Vision, Navigation and Manipulation towards Multi-floor Robot Locomotion. In Proceedings of the 2013 International Conference on Computer and Robot Vision, Regina, SK, Canada, 28–31 May 2013; pp. 1–8. [Google Scholar]
  8. Klingbeil, E.; Carpenter, B.; Russakovsky, O.; Ng, A.Y. Autonomous operation of novel elevators for robot navigation. In Proceedings of the 2010 IEEE International Conference on Robotics and Automation, Anchorage, AK, USA, 3–7 May 2010; pp. 751–758. [Google Scholar]
  9. Zhao, Z.; Zhao, J.; Lou, Y. Autonomous Operation of Elevator Buttons for Multi-floor Navigation. In Proceedings of 2020 Chinese Intelligent Systems Conference; Jia, Y., Zhang, W., Fu, Y., Eds.; Springer: Berlin/Heidelberg, Germany, 2021; pp. 161–170. [Google Scholar]
  10. Dellaert, F.; Fox, D.; Burgard, W.; Thrun, S. Monte Carlo localization for mobile robots. In Proceedings of the Proceedings 1999 IEEE International Conference on Robotics and Automation (Cat. No.99CH36288C), Detroit, MI, USA, 10–15 May 1999; Volume 2, pp. 1322–1328. [Google Scholar]
  11. Liu, X.; Zhang, J.; Jiang, S.; Yang, Y.; Li, K.; Cao, J.; Liu, J. Accurate Localization of Tagged Objects Using Mobile RFID-Augmented Robots. IEEE Trans. Mob. Comput. 2021, 20, 1273–1284. [Google Scholar]
  12. Shamsfakhr, F.; Motroni, A.; Palopoli, L.; Buffi, A.; Nepa, P.; Fontanelli, D. Robot Localisation Using UHF-RFID Tags: A Kalman Smoother Approach. Sensors 2021, 21, 717. [Google Scholar] [PubMed]
  13. Lin, W.Y.; Lin, P.H. Intelligent generation of indoor topology (i-GIT) for human indoor pathfinding based on IFC models and 3D GIS technology. Autom. Constr. 2018, 94, 340–359. [Google Scholar]
  14. Choset, H.; Walker, S.; Eiamsa-Ard, K.; Burdick, J. Sensor-Based Exploration: Incremental Construction of the Hierarchical Generalized Voronoi Graph. Int. J. Robot. Res. 2000, 19, 126–148. [Google Scholar]
  15. Nagatani, K.; Choset, H. Toward robust sensor based exploration by constructing reduced generalized Voronoi graph. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Kyongju, Republic of Korea, 17–21 October 1999; pp. 1687–1692. [Google Scholar]
  16. Choset, H.; Burdick, J. Sensor-Based Exploration: The Hierarchical Generalized Voronoi diagram. Int. J. Robot. Res. 2000, 19, 96–125. [Google Scholar] [CrossRef]
  17. Choset, H.; Nagatani, K. Topological simultaneous localization and mapping (SLAM): Toward exact localization without explicit localization. IEEE Trans. Robot. Autom. 2001, 17, 125–137. [Google Scholar]
  18. Kim, J. Cooperative Exploration and Protection of a Workspace Assisted by Information Networks. Ann. Math. Artif. Intell. 2014, 70, 203–220. [Google Scholar]
  19. Choset, H.; Konukseven, I.; Burdick, J. Mobile robot navigation: Issues in implementating the generalized Voronoi graph in the plane. In Proceedings of the IEEE/SICE/RSJ International Conference on Multisensor Fusion and Integration for Intelligent Systems, Washington, DC, USA, 8–11 December 1996; pp. 241–248. [Google Scholar]
  20. Kim, J. Capturing intruders based on Voronoi diagrams assisted by information networks. Int. J. Adv. Robot. Syst. 2017, 14, 1729881416682693. [Google Scholar] [CrossRef]
  21. Redmon, J.; Divvala, S.; Girshick, R.; Farhadi, A. You Only Look Once: Unified, Real-Time Object Detection. In Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 27–30 June 2016; pp. 779–788. [Google Scholar]
  22. Bochkovskiy, A.; Wang, C.Y.; Liao, H.Y.M. Yolov4: Optimal speed and accuracy of object detection. arXiv 2020, arXiv:2004.10934. [Google Scholar]
  23. Jiang, Z.; Zhao, L.; Li, S.; Jia, Y. Real-time object detection method based on improved YOLOv4-tiny. arXiv 2020, arXiv:2011.04244. [Google Scholar]
  24. Girshick, R. Fast R-CNN. In Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV), Santiago, Chile, 7–13 December 2015; pp. 1440–1448. [Google Scholar] [CrossRef]
  25. Kidono, K.; Miyasaka, T.; Watanabe, A.; Naito, T.; Miura, J. Pedestrian recognition using high-definition LIDAR. In Proceedings of the 2011 IEEE Intelligent Vehicles Symposium (IV), Baden-Baden, Germany, 5–9 June 2011; pp. 405–410. [Google Scholar]
  26. Yoshioka, M.; Suganuma, N.; Yoneda, K.; Aldibaja, M. Real-time object classification for autonomous vehicle using LIDAR. In Proceedings of the 2017 International Conference on Intelligent Informatics and Biomedical Sciences (ICIIBMS), Okinawa, Japan, 24–26 November 2017; pp. 210–211. [Google Scholar]
  27. Fox, D.; Burgard, W.; Thrun, S. The dynamic window approach to collision avoidance. IEEE Robot. Autom. Mag. 1997, 4, 23–33. [Google Scholar] [CrossRef]
  28. Roelofsen, S.; Martinoli, A.; Gillet, D. 3D collision avoidance algorithm for Unmanned Aerial Vehicles with limited field of view constraints. In Proceedings of the IEEE International Conference on Decision and Control (CDC), Las Vegas, NV, USA, 12–14 December 2016; pp. 2555–2560. [Google Scholar]
  29. Wu, X.; Guo, C.; Li, Y. Variable probability based bidirectional RRT algorithm for UAV path planning. In Proceedings of the Control and Decision Conference (2014 CCDC), The 26th Chinese, Changsha, China, 31 May–2 June 2014; pp. 2217–2222. [Google Scholar]
  30. Yang, X.; Alvarez, L.M.; Bruggemann, T. A 3D Collision Avoidance Strategy for UAVs in a Non-Cooperative Environment. J. Intell. Robot. Syst. 2013, 70, 315–327. [Google Scholar] [CrossRef]
  31. Choi, Y.K.; Wang, W.; Liu, Y.; Kim, M. Continuous Collision Detection for Two Moving Elliptic Disks. IEEE Trans. Robot. 2006, 22, 213–224. [Google Scholar] [CrossRef]
  32. Lu, L.; Zong, C.; Lei, X.; Chen, B.; Zhao, P. Fixed-Wing UAV Path Planning in a Dynamic Environment via Dynamic RRT Algorithm. Mech. Mach. Sci. Lect. Notes Electr. Eng. 2017, 408, 271–282. [Google Scholar]
  33. Ju, M.Y.; Liu, J.S.; Shiang, S.P.; Chien, Y.R.; Hwang, K.S.; Lee, W.C. A novel collision detection method based on enclosed ellipsoid. In Proceedings of the IEEE International Conference on Robotics and Automation (Cat. No.01CH37164), Seoul, Republic of Korea, 21–26 May 2001; Volume 3, pp. 2897–2902. [Google Scholar]
  34. Kim, J. Time-efficient path planning using two virtual robots. Int. J. Adv. Robot. Syst. 2019, 16, 1–9. [Google Scholar] [CrossRef]
  35. Yershova, A.; LaValle, S.M. Improving motion planning algorithms by efficient nearest-neighbor searching. IEEE Trans. Robot. 2007, 23, 151–157. [Google Scholar] [CrossRef]
  36. Kuffner, J.; LaValle, S.M. Space-Filling Trees: A New Perspective on Incremental Search for Motion Planning. In Proceedings of the IEEE International Conference on Intelligent Robots and Systems, San Francisco, CA, USA, 25–30 September 2011; pp. 2199–2206. [Google Scholar]
  37. Nasir, J.; Islam, F.; Ayaz, Y. Adaptive rapidly-exploring-random-tree-star (Rrt*) -Smart: Algorithm characteristics and behavior analysis in complex environments. Asia-Pac. J. Inf. Technol. Multimed. 2013, 2, 39–51. [Google Scholar] [CrossRef]
  38. Muñoz, P.; Rodriguez-Moreno, M. Improving efficiency in any-angle path-planning algorithms. In Proceedings of the 2012 6th IEEE International Conference Intelligent Systems, Sofia, Bulgaria, 6–8 September 2012; pp. 213–218. [Google Scholar] [CrossRef]
  39. Choset, H.; Lynch, K.M.; Hutchinson, S.; Kantor, G.A.; Burgard, W.; Kavraki, L.E.; Thrun, S. Principles of Robot Motion; MIT Press: Cambridge, MA, USA, 2005. [Google Scholar]
  40. Kim, J.; Kim, S.; Choo, Y. Stealth Path Planning for a High Speed Torpedo-Shaped Autonomous Underwater Vehicle to Approach a Target Ship. Cyber Phys. Syst. 2018, 4, 1–16. [Google Scholar] [CrossRef]
  41. Pettie, S. A new approach to all-pairs shortest paths on real-weighted graphs. Theor. Comput. Sci. 2004, 312, 47–74. [Google Scholar] [CrossRef]
  42. Nash, A.; Daniel, K.; Koenig, S.; Felner, A. Theta*: Any-Angle Path Planning on Grids. In Proceedings of the AAAI Conference on Artificial Intelligence, Vancouver, BC, Canada, 22–26 July 2007; pp. 1177–1183. [Google Scholar]
  43. Tsardoulias, E.G.; Serafi, A.T.; Panourgia, M.N.; Papazoglou, A.; Petrou, L. Construction of Minimized Topological Graphs on Occupancy Grid Maps Based on GVD and Sensor Coverage Information. J. Intell. Robot. Syst. 2014, 75, 457–474. [Google Scholar] [CrossRef]
  44. Kim, J. Topological Map Building with Multiple Agents Having Abilities of Dropping Indexed Markers. J. Intell. Robot Syst. 2021, 103, 18. [Google Scholar] [CrossRef]
  45. Tully, S.; Kantor, G.; Choset, H. A unified Bayesian framework for global localization and SLAM in hybrid metric/topological maps. Int. J. Robot. Res. 2012, 31, 271–288. [Google Scholar] [CrossRef]
  46. Zhang, Q.; Whitney, D.; Shkurti, F.; Rekleitis, I. Ear-based exploration on hybrid metric/topological maps. In Proceedings of the 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems, Chicago, IL, USA, 14–18 September 2014; pp. 3081–3088. [Google Scholar]
  47. Lisien, B.; Morales, D.; Silver, D.; Kantor, G.; Rekleitis, I.; Choset, H. The Hierarchical Atlas. IEEE Trans. Robot. 2005, 21, 473–481. [Google Scholar] [CrossRef]
  48. Garrido, S.; Abderrahim, M.; Moreno, L. Path planning and navigation using voronoi diagram and fast marching. IFAC Proc. Vol. 2006, 39, 346–351. [Google Scholar] [CrossRef]
  49. Bhattacharya, P.; Gavrilova, M.L. Voronoi diagram in optimal path planning. In Proceedings of the 4th International Symposium on Voronoi Diagrams in Science and Engineering (ISVD 2007), Glamorgan, UK, 9–11 July 2007; pp. 38–47. [Google Scholar]
  50. Douglas, B.W. Introduction to Graph Theory, 2 ed.; Prentice Hall: Springfield, IL, USA, 2001. [Google Scholar]
  51. Filipescu, A.; Stancu, A.L.; Filipescu, S.; Stamatescu, G. On-line parameter estimation in sliding-mode control of Pioneer 3-DX wheeled mobile robot. In Proceedings of the 7th Conference on 7th WSEAS International Conference on Systems Theory and Scientific Computation, Athens, Greece, 24–26 August 2007; Volume 372, pp. 72–77. [Google Scholar]
  52. Dayangac, E.; Baumann, F.; Aulinas, J.; Zobel, M. Target Position and Speed Estimation Using LiDAR. In Proceedings of the International Conference Image Analysis and Recognition, Póvoa de Varzim, Portugal, 13–15 July 2016; pp. 470–477. [Google Scholar]
  53. Zhang, J.; Xiao, W.; Coifman, B.; Mills, J.P. Vehicle Tracking and Speed Estimation From Roadside Lidar. IEEE J. Sel. Top. Appl. Earth Obs. Remote Sens. 2020, 13, 5597–5608. [Google Scholar] [CrossRef]
  54. Kim, J.; Zhang, F.; Egerstedt, M. A provably complete exploration strategy by constructing Voronoi Diagrams. Auton. Robot. 2010, 29, 367–380. [Google Scholar] [CrossRef]
  55. Rodríguez-Puente, R.; Lazo-Cortés, M.S. Algorithm for shortest path search in Geographic Information Systems by using reduced graphs. SpringerPlus 2013, 2, 291. [Google Scholar] [CrossRef]
Figure 1. A building Voronoi graph associated with a building with three floors. Links are plotted with dotted curve segments. One elevator is represented with links to the left of the graph, and the other elevator is represented with links to the right of the graph.
Figure 1. A building Voronoi graph associated with a building with three floors. Links are plotted with dotted curve segments. One elevator is represented with links to the left of the graph, and the other elevator is represented with links to the right of the graph.
Applsci 13 09691 g001
Figure 2. In this figure, the left three mapPoints are generated from the boundary of an obstacle, say A. Furthermore, the right two mapPoints are generated from the boundary of another obstacle, say B. At the center of three mapPoints on the left side, we have a Voronoi vertex. A Voronoi edge leading to this vertex cannot be utilized as a path for a robot, since this vertex exists on obstacle boundary. One thus removes Voronoi vertices which are too close to mapPoints. Red bold curve segments indicate the remaining Voronoi edges, after removing Voronoi vertices which are too close to mapPoints.
Figure 2. In this figure, the left three mapPoints are generated from the boundary of an obstacle, say A. Furthermore, the right two mapPoints are generated from the boundary of another obstacle, say B. At the center of three mapPoints on the left side, we have a Voronoi vertex. A Voronoi edge leading to this vertex cannot be utilized as a path for a robot, since this vertex exists on obstacle boundary. One thus removes Voronoi vertices which are too close to mapPoints. Red bold curve segments indicate the remaining Voronoi edges, after removing Voronoi vertices which are too close to mapPoints.
Applsci 13 09691 g002
Figure 3. MapPoints are marked with yellow points. Blue curve segments in this figure show the trimmed Voronoi graph, which is obtained after removing vertices that are too close to mapPoints.
Figure 3. MapPoints are marked with yellow points. Blue curve segments in this figure show the trimmed Voronoi graph, which is obtained after removing vertices that are too close to mapPoints.
Applsci 13 09691 g003
Figure 4. The enlarged figure of Figure 3.
Figure 4. The enlarged figure of Figure 3.
Applsci 13 09691 g004
Figure 5. p 1 ( k ) and p 2 ( k ) exist along the Voronoi path in this order. p 2 ( k ) is set as the wayPoint of the robot. Then, the robot approaches the wayPoint utilizing the controls in Section 6.1.
Figure 5. p 1 ( k ) and p 2 ( k ) exist along the Voronoi path in this order. p 2 ( k ) is set as the wayPoint of the robot. Then, the robot approaches the wayPoint utilizing the controls in Section 6.1.
Applsci 13 09691 g005
Figure 6. This figure shows the map of α floor with static circular objects. The boundary of each static object is depicted with black circles. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) . Considering one MC simulation, the position of the robot at every d t seconds is depicted as green diamonds. Two red asterisks indicate the robot’s start and end positions, respectively.
Figure 6. This figure shows the map of α floor with static circular objects. The boundary of each static object is depicted with black circles. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) . Considering one MC simulation, the position of the robot at every d t seconds is depicted as green diamonds. Two red asterisks indicate the robot’s start and end positions, respectively.
Applsci 13 09691 g006
Figure 7. The enlarged figure of Figure 6. We consider the case where multiple objects exists, and each object has a circular shape. The robot’s path is slightly deviated from Voronoi edges (blue line segments), in order to keep away from colliding with an object.
Figure 7. The enlarged figure of Figure 6. We consider the case where multiple objects exists, and each object has a circular shape. The robot’s path is slightly deviated from Voronoi edges (blue line segments), in order to keep away from colliding with an object.
Applsci 13 09691 g007
Figure 8. Consider the map of β floor with moving circular objects. At β floor, we have multiple objects, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. Considering one MC simulation, the position of the robot at every d t seconds is depicted as green diamonds. The boundary of an object at every d t seconds is depicted with black circles. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) .
Figure 8. Consider the map of β floor with moving circular objects. At β floor, we have multiple objects, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. Considering one MC simulation, the position of the robot at every d t seconds is depicted as green diamonds. The boundary of an object at every d t seconds is depicted with black circles. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) .
Applsci 13 09691 g008
Figure 9. The enlarged figure of Figure 8.
Figure 9. The enlarged figure of Figure 8.
Applsci 13 09691 g009
Figure 10. (a) indicates the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step (multiple circular objects move). See that no collision happens during the robot maneuver. (b) shows the relative distance between the robot and C ( k ) at each sample-step k.
Figure 10. (a) indicates the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step (multiple circular objects move). See that no collision happens during the robot maneuver. (b) shows the relative distance between the robot and C ( k ) at each sample-step k.
Applsci 13 09691 g010
Figure 11. Considering one MC simulation of α floor (static objects), this figure shows the robot’s location (green diamonds) at every d t seconds. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) .
Figure 11. Considering one MC simulation of α floor (static objects), this figure shows the robot’s location (green diamonds) at every d t seconds. The robot plans the path from ( 200 , 150 ) to the elevator location ( 370 , 120 ) .
Applsci 13 09691 g011
Figure 12. The enlarged figure of Figure 11. The robot’s path slightly deviates from Voronoi edges (blue line segments), in order to keep away from colliding with an object with arbitrary shapes.
Figure 12. The enlarged figure of Figure 11. The robot’s path slightly deviates from Voronoi edges (blue line segments), in order to keep away from colliding with an object with arbitrary shapes.
Applsci 13 09691 g012
Figure 13. Considering one MC simulation of β floor with moving objects, this figure shows the robot’s location (green diamonds) at every d t seconds. β floor has multiple objects with arbitrary shapes, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. MapPoints are plotted with yellow points. The robot’s location at every d t seconds is plotted as green diamonds. The boundary of each object at every d t seconds is depicted with black colors. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) .
Figure 13. Considering one MC simulation of β floor with moving objects, this figure shows the robot’s location (green diamonds) at every d t seconds. β floor has multiple objects with arbitrary shapes, among which four objects move with velocity ( 0.1 , 0.7 ) in m/s. MapPoints are plotted with yellow points. The robot’s location at every d t seconds is plotted as green diamonds. The boundary of each object at every d t seconds is depicted with black colors. The robot plans the path from the elevator position ( 370 , 120 ) to the goal ( 350 , 470 ) .
Applsci 13 09691 g013
Figure 14. The enlarged figure of Figure 13.
Figure 14. The enlarged figure of Figure 13.
Applsci 13 09691 g014
Figure 15. (a) indicates the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step (multiple objects move). No collision happens during the robot maneuver. (b) shows the relative distance between the robot and C ( k ) at each sample-step k. See that the robot keeps following the path P V .
Figure 15. (a) indicates the relative distance between the robot and its closest d e t e c t e d P o i n t at each sample-step (multiple objects move). No collision happens during the robot maneuver. (b) shows the relative distance between the robot and C ( k ) at each sample-step k. See that the robot keeps following the path P V .
Applsci 13 09691 g015
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Kim, J. Path-Following and Collision-Avoidance Controls of a Robot in a Large Building with One or More Elevators. Appl. Sci. 2023, 13, 9691. https://doi.org/10.3390/app13179691

AMA Style

Kim J. Path-Following and Collision-Avoidance Controls of a Robot in a Large Building with One or More Elevators. Applied Sciences. 2023; 13(17):9691. https://doi.org/10.3390/app13179691

Chicago/Turabian Style

Kim, Jonghoek. 2023. "Path-Following and Collision-Avoidance Controls of a Robot in a Large Building with One or More Elevators" Applied Sciences 13, no. 17: 9691. https://doi.org/10.3390/app13179691

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop