Engineetqng Costs and Production Economics, 21 ( 1991 ) 211-225 Elsevier
211
Dynamic simulation of mobile robot navigation in warehousing environments Ram Pandit Derartment of Industrial and Manufacturihg Systems Engineering. Iowa State "rniversiO,.Ames, L4 50011. USA
S.R. Menon AT& T Bell Laboratories. Cra,Jbrds Corner Road. Hohndel. NJ 07733, USA
S.G. Kapoor Department of Mechanical and Industrial Engineering UniversiO,of lllinois at Urbana-Champaign. 1206 Wesl Green Street, Urbana, IL 6180 !, USA (Received October I, 1988; accepted November 8, 1990)
Abstract This paper deals with the graphic simulation package developed to simulate mobile robots working in warehousing environments. Paths are planned for each robot that takes care of constraints and possible chances of collision with other robots. Decision making and simulation in real time dynamic environments is studied. Obstacle detection in the paths of the robots could result in bypassing the obstacle or path blockage. The effect on the other robots due to such "dynamic obstacles" is also analyzed.
1. Introductioh
Automation in material handling needs to keep pace with the tremendous growth in Factory Automation and Flexible Manufacturing Cells. Over the past decade, considerable progress has been made in the material handling divisions. Computer software for some of the common warelaousing functions such as inventory control, scheduling, etc. are currently available. Research and development toward complete mechanization of the material transfer systems is well under wa; [ 1 ]. The surge in the number of automatic conveyors, tow lines and the Automatically Guided Vehicles (AGVs), support this fact. However, there seems to be a lack of effort in integrating the various components that make up the material handling system. A survey on the Automatic Storage/Retrieval (AS/RS) systems by Rygh [ 2 ] shows that concentrated research on improving the efficiency of material transfer systems is pending. The overall performance of a 0167-! 88X/91/$03.50 © 19o l--El,~cvicr Scrcnce Publishcrs B.V.
material transfer system could be considered as dependent upon three major factors: the design of the layout, selection of the material transportation systems, and the control policies. The layout design has a direct effect on the selection of the transportation system. The flexibility offered by the layout decides the modifications and the installations that could be allowed on an existing system. The layout designs ~,hat optimize for a number of different criteria could be t0und in the works of White, DeMars, and Matson [ 3 ], Rosenblatt and Roll [ 4 ] and many others. Selection of material transfer systems is dependent on the specific application it is intended for. For example, belt conveyors may provide an efficient material flow within a manufacturing cell, while AGVs or similar devices may be best suited for material transfer between workcells. The emergence of mobile robots has proved to be revolutionary in material transfer applications. They have added advantages over the
212 AGVs. Guidance systems such as wire embedded signals, tapes, etc., for AGVs need clean environments and quality floors. For automation in rough environments such as warehouses for consu'uction sites, the use of mobile robots is prefered over the AGVs. Wall hung targets, beacons, and other landmarks could be employed for guidance [5 ]. Mobile robots provide mobility and have the robotic capability of carrying out pick and place operations. High performance, reliable system structures, unlimited flexibility, accurate automated navigation systems, etc. are characteristic features of mobile robotic systems [61. Control policies for automated warehouse should consider the policies of inventory control, scheduling and other warehousing functions as well as navigational policies, vehicle routing, and decision making when confronted with obstacles. The state of the system, the demand pattern of the arrival of orders, the representation of the layout are some of the factors that decide the navigational policy. The navigational policy should be capable of selecting optimum paths for the robots that ensures minimum interactiGn with other robots and previously traced obstacles, at the same time, minimizing the response time. The control policies for v~hicle routing decide the robot speeds for smooth flow of traffic. On encountering obstacles, the robot needs to interact with its sensors. A decision m a k i ~ module is required to analyze the sensor data and se!ect rules so as to make alterations, if necessary, on the motion policies. The path planning and navigational strategies for mobile robots has been developed for generalized warehousing environments [ 71. Based on this, a simulation package using animated color graphics has been developed. The package to study the various issues that arise when controlling multiple robots in warehousing environments. The initial phase of simulation dealt with the generation of layout designs and world representation schemes and is explained in Section 2. Sectio~ 3 deals with the control policies for navigation of the mobile robots. This includes algorithms for selecting optimum paths based on minimum time and shortest distance, robot
movement strategies that avoid collision with other robots and algorithms for decision making such as bypassing or blocking when confronted with obstacles. The details of the graphical simulation package with various examples are given in Section 4.
2. Representation of warehouse layout Mobile robot navigation requires the knowledge of the workspace around each robot. The sensors provided on the robot and the landmarks located near pathway intersection is used for navigation. The landmarks could be patterns, barcodes, signals, etc., that could provide the information needed to confirm the location of the robot, or serve as the basis for course correction, adjust its speed, determine its orientation, or other essential navigational functions. Employing landmarks and on-board intelligence necessitate creating a global environment !,n which the robot can operate and use strategically' located landmarks. The first step in the sim~dation study was to generate the layout structure of the warehouse. The layout may be a pre-existing one or one generated according to the user's specifications. In the former case, the system can create the layout structure using simple graphic commands. For the latter case, a pre-processor has been developed which generates a layout according to the user specified warehouse storage capacity. Fig,.,.re 1 shows such a typical warehouse layout consisting of"blocks" arranged in a regular pattern. Each block has "aisleways" along its length where pallets are stored and "alleys" on its side. "Highways" are provided around the main sto~'age area and "junctions" on the highways allow entrance into the aisleways. Traffic moves faster in the highways compared to the aisleways and alleys. The direction of traffic is assumed fixed for ease of movement. 2.1 Nodal representation of the warehou e
Planning the movement it. a particular direction requires the definition of specific points along the path. With this in mind, the global environment is represented as a network model. The nodes represent points where a change in the di-
213 NI01,1
NI03,1
Jl
J3
J2
II
"
N105,1
II
NI,I
alum
i
BLOCK
I Im .... III
m
B
mm
NI,2"
JUNCTION
am
j4
u
J5 m
19
JO m
~
II
[]
8
[]
roll
[]
J
[]
[]
m
m
[]
!
I
[]
I
mum
B
N
[]
m
-
[]
m m AISLEWA¥[]
[]
[]
[]
[]
[]
m
[]
n
I
[]
i
l
[]
[]
[]
In
[]
m
m
n
m
[]
[]
m
[]
mm
[]
mm
I
mm
mim
[]
ma
[]
I
an,,
m
U
mm
[]
mn
n
u
g
N
U
[]
[]
[]
Ill
R
Ii
I
g
i
J
n
U
!
S
a
!
mum
N
N
!
i
Nil
[]
U
nun
m
m
am
mm
~
VeC/
I
!
Jl B
g
,
II
jl] i
jlo
mm
.
.
~
.
.
.
.
I
mm
J9 ,,
U
~
mm
J8
IN, mm ,,
m
J7
nu
Fig. 1. Nodal representation of warehouse.
rect~on of traffic is expected. They also represent the landmark locations. The generation of the nodal structure is important from the simulation point of view. A scheme to automatically generate the nodal structure for any layout created is <.~plained below: ( 1 ) Referring to Fig. 1, landmarks are placed at the entrance and exit points of each side of the block. Hence there are four nodes associated with each block. These nodes are stored in array N and are numbered as: N;.y = 4 ( i - 1 ) + j , i = I...BNUM j = 1,...,4 where BNUM is the number of blocks in the warehouse. The node in N,j represents the jth node of ith block. Total number of nodes associated with BNUM blocks = 4 × BNUM. In Fig. 2, these nodes are shown as numbered I to 100. This numbering is internally generated by the corn-
puter and corresponds to the numbering in Fig. 1. For example, the node number 1 is obtained when i = 1 and j = 1. It is also referred to as first node ( j = 1 ) of block J ( i = 1 ) and is stored in array N at location ( 1,1 ). Hence N,.t= 1. (2) A robot from highway is allowed to enter the blocks only through the alleys as the aisleways are mostly occupied with robots picking or placing the items. Landmarks placed at the entrance and exit points of blocks adjacent to highway are used to connect alleys with the highway lanes. The highway has two lanes. Hence two landmarks, one for each lane is needed to connect one alley of a block with highway. Since a block has two alleys the total number of landmarks needed on highway to connect one block is equal to four. Hence, if P I blocks are in one row then the number of nodes required on highway to connect one side of layout with highway = 4 × P 1. Considering the top and bottom portions of the layout, the total number of nodes on highway = 2 × (4 × P l ) = 8 × P 1. These nodes are numbered clockwise starting with the top left
214 --~
w 1
~
2 m
~ 4
~
• ~
~
I, 21
~
22
:3 a u 2 4
~
23
~ - I ' ~
~'-
2~,!i-.
•
4t
--~
t,.1 ~
xx3--~xxs
42~!i
. ~a,
--i~-
62.
n 81
~
82,
" 84
~
83e
|
~
"ill"
~
~
~"
,,
811
~
87n
"~
90~
• 9
--~
xo.
.29
--~
ao,|
°49
--~
so.ll
.69
--~
~o.
a 89
• xz
~
xt.
- a2
.,e'-
3x
• s2
.4"-
51.1!
-72
7x.
. 92
~
91 m
74m
• 93
~
94u
i 9e;
~
95.
, ;3
~
14e
a 33
~
34e
g 53
~
54a
a 73
.--~
• X?
~
XSe
- 3"/
~
3ae
,57
~
58e
, 77
~
78,
a 9"1
~
98.
- 20
.,11--
xg.
• 40
~
ag~
- 60
-~
sga
• so
79.
. 100 ~
99.
x36 - - ~ ~a4 x3s
,~-xaa
1a2
-.-~tao
xax 4 -
t29
Fig. 2. Static p l a n n i n g without c o n s t r a i n t s ( R o b o t 1 - - O - - ; R o b o t 2 - . - A - . - ;
aisleway to the bottom right aisleway, These nodes are stored in array N and are numbered as: N(4xaNUM)+j.~ = 4 × B N U M + J where J--1 .... ,8XP1. ~n Fig. 2 these nodes are shown numbered as 1( 1 through 140. (3) Another set c,f nodes are needed on the highway to indicate the turns on highway. Since the highway has four, urn points, two landmarks are needed at each corner, i,e., a total of 8 landmarks. These nodes are stored and numbered as: N(4×BNUM+S×p1 )+J,l =(4+BNUM+8×PI)+J where J = 1.... ,8. In Fig. 2 these nodes are numbered as 141 through 148. Hence the total number of landmarks needed with a layout which hzs P 1 blocks in each row and Q I blocks in each column with a highway
t2a--~x26 z27 4 -
z2s I
--t
Robot 3 - - m - - ) .
surrounding the blocks can be given as the sum of (Total number of nodes associated with block~) + (Total number of nodes associated with highway and atley junctions) + (Total number of nodes needed to indicate turns in highway) = (4×Pl×Ql)+(8×Pl)+8.
2.2 Coordinate determination of landmarks The dimensions of the warehouse are determined with respect to the specified dimensions of blocks, width of aisles and alleys, and width of highway lanes. The length of the warehouse: length = P 1 + BLENGTH +2×Pl ×ASLI+2×HLANE
215 where BLENGTH is the LENGTH of each module (user specified), ASL 1 is the alley width (user specified), and HLANE is the width of highway lane (user specified). The width of warehouse: WIDTH = Q 1 × BWlDTH +2×Q1 ×ASL2+2×HLANE where BWlDTH is the WIDTH of each module (user specified ), and ASL2 is the WIDTH of aisle (user specified). Once the dimensions of the warehouse are known, the node coordinates can be determined by considering any corner point of the warehouse as reference. For example, considering the lower left corner in Fig. 2 as (0,0) with Cartesian coordinate system, coordinates of nodepoint Nj.~ are determined as: X = 2 × HLANE + ½ASL1 Y= L E N G T H - 2 × H L A N E - ~ASL2 Similarly, the rest of the coordinates can also be determined.
2. 3 Setting up motion ru[~:~between nodes Once the placement of landmarks are determined, the next necessary requirement for the movement is to determine the direction of movement between nodes and the connectivity of the nodes to form paths. A set of rules has been developed which takes the layout model information and decides the direction and connectivity between nodes. These rules are as follows:
1. Connectivity within a block
2. Connectivity between adjacent blocks (a) If block i and block k are adjacent blocks in a row, then the connectivity is given by:
Ni,2+Nk,,
Nk.4+N,.3 (b) If block i and k are adjacent blocks in a column, then the connectivity is given as:
Ni.3+Nk,2 NI,., --+N,.4 3. Connectivity bet ween highway junctions and block alleys For robots to access modules and highway, connectivity between alleys of the blocks adjacent to highways and highway junction nodes is defined. The adjacent blocks are defined as top side blocks and bottom side blocks. In l-ig. 1 blocks B 1, B6, ..., B21 are top side blocks and B5, B I0, ..., B25 are bottom side blocks. Accordingly, Nt,t, Nt.2, N6.t, N6.2, ..., N21.1, and N21,2 form top alley nodes and N5,4, N5.3,Nio.4, Nlo.3, ---, ]V25.4, Nzs,3 form bottom alley nodes. The connectivity is defined as follows: (a) Connectivity between junction nodes and alley top node
U,.,-+Uj+2., where i = l , ..., PI, l = Q l ( i - l ) + i , and j = 4 ( i - 1) + 4 x B N U M . (b) Connectivity between junction nodes and alleys at bottom side Ul,3 -+Nj+2,.
D ~g'- ..r;,=.,., ,,.:,~,.,,,~
÷1~ ,,,e
to Fig. I, nodes associated with any block i are connected in a clockwise manner. The relationship can be expressed as:
Ni,, --N,,2
N,.2 +N,.3 N,,3 ---~Ni.4
Nix +N,., for i= I,...,BNUM.
N j + 4, i - + N L 4
where i= P 1,...,1, and l = i × QI, and j=4x(PI-I)+4xPIxQI+4xPI. Here l represents the block number andj gives the offset to junction node.
4. Connectivity between highway nodes For the movement to be possible on the highway, the connectivity between highway nodes is
216 defined. The node corresponding to junctions J l, ..., J6 in Fig. (2) are top side highway nodes, and uod:s corresponding to junctions J7, ..., J l2 are bottom side highway nodes. The connectivity is def ned as follows. (a) Top side
N~.~Nk-2.1 where i = l , . . . , 2 × P l - l , j = 2 × i - I + 4 x P I X QI, and k = 2 × ( 2 X P I - i+ 1 ) + 4 x P I x Q I . (b) Bottom side
N,., where i = I , . . . , 2 × P I . - I and j = ( 2 × i - l ) + 4 X PI+4XP1 ×QI.
5. Connectivity between highway junction nodes and turning pmnt nodes. Since the warelaouse is rectangular and the highway is surrounding it, the highway has four turn points. These turn points need eight landmarks for robots navigation. These eight nodes are to be connected with the adjacent junction nodes and turn point nodes. This requires a total of twelve connections. Those connections car, easily be defined according to the movement directions as shown in Fig. (2). These rules generate the travel directions between the nodes. This information along with the positions of nodes form the nodal representation of the layout.
3. Control policies for navigation of mobile robots The command to pick/place an item from a particular module or block is immediately followed by a routine to plan a path from the current location of the robot to the goal. This plan considers known obstacles in its path as well as obstacles that may appear on the path. The main input for the path planning algorithm is the data structure derived from the world representation schemes. The control policies include path planning for the robots, controlling the movement of the robots by avoiding changes of collision and decision making on encountering obstacles.
3.._~Path flanning algorithm The nodal representation of the warehouse layout is used for planning paths for the robots. "Ihe nodal information consists of world coordinates of the nodes and the node connectivities (successors). Also, the allowable velocity in each link formed from the pairs of adjacent nodes could be fixed. The distance and time informaltion could thus be derived and is made use of for optimizing the paths. For each robot, a tree structure of the nodes is formed with its current node as the root node of the tree. The paths are then searched from the root node to the goal node using the A* search [ 8,9 ]. Here, a queue of partial paths is formed ;initially with the root node. The first path is removed from the queue and new paths formed by adding the successors of the last node in the path are added to the queue. The queue is so~ed with the least costly paths in front and the process repeats recursively until a path to the goal node is reached. The optimizing criteria is shortest distance path for the loaded robot and minimum time path for the idling robot. The path costs are estimated using a relationship for the total cost fwhich is given by:
f=g+h where g is defined as the cost to travel (in terms of the distance or time) from the root node to the candidate node and h is the cost to travel from candidate node to the goal node. The admissibility condition for A* search requires h to be an underestimate of the actual cost. Since h is a heuristic measure, fllis cost is estimated by assuming a hypothetical link existing between the candidate node and goal node that has the maximum allowable velocity. The A* search is an improved Branch-andbound search with dynamic programming. It ensures an optimum path as opposed to other types of search strategies such as Breadth-first search, Depth-first search, etc. Also, the number of successors for a node is not limited. The barriers/obstacles appearing along the path of movement are classified as static obstacles and dynamic obstacles. Static obstacles are those imposed on the design; most of which could be overcome by the efficient use of information l:,rovided in the landmarks and communication
217 with the central computer. A static obstacle may be created when an aisleway is closed or blocked. Dynamic obstacles arc discovered as the robot is moving along its planned path. Dynamic obstacles can be caused when robot blocks the path due to breakdown, dropage of items in the pathway, failure of the robot to access information from a landmark, etc. Accordingly, the algorithm consists of two parts: The static planning algorithm and the dynamic planning algorithm. The static planning algorithm considers all the constraints that existed prior to receiving the order to visit a module or block. The dynamic planning algorithm plans alternate path for the robot when obstacles are discovered while the robot cruises along its originally planned path. Static planning is done for all robots that receive the order to pick/place. Here, based on the target module, the tree structure is searched using the A* search technique to arrive at a path leading to the goal for each robot. Static planning considers the static constraints that existed prior to plar:,ning of the paths. Constraints are introduced by pruning off the branches of the tree where it exists. Note that cases may occur where the paths of two or more robots interact but no attempt to avoid possible collision is considered at this stage of path planning. Manipulation of collision avoidance, however, is carried out by employing the strategy explained in the Robot Movement Algorithm. Assuming that the paths of various robots are planned and that probability of their interaction with one another is reduced to a minimum using the collision avoidance strategy, the next phase of path planning, dynamic planning, is carried out. The robots move from one node to another of their planned paths using landmarks at the nodes for position referencing and speeds based on the output of the collision avoidance algorithm. At each node, the operation of halting, scanning in the direction of movement to the next node and proceeding to next node are done successively. If the robot scans an obstacle, it has to ascertain whether it is a stationa~2¢ one or if it is another moving robot. This could be done by repeating the scanning process after a small time interval and comparing the distance of the obstacle from the two scans.
r !
i
1
Robot
f
Robot .
3"~'~ .
.
.
D
--OI,--¢i Fig. 3. Rules for bypassing (Lane width=8 Units; Robot width=2 Units).
When an obstacle is identified in the path of the robot, the algorithm activates the sensors to gather pertinent information about the position and orientation of the obstacle. Decision is then made as to bypass the obstacle, to continue movement along the path if the obstacle is too small to hinder movement or to block the path completely and plan alternate paths (refer to Fig. 3 ). The detection of obstacles in one robot's path causes a constraint to be introduced in the global map corresponding to the obstacle's path segment. The paths of the other robots are then searched for the presence of this path segment. If present, alternate paths are computed from their current positions based on the refreshed global
218
(a) [ Draw Warehouse [ l Layout .,J 'ect Number I f Robots in Use I
LoSel
USER Input
n
Selecl Destinations and Starting Points for Robots
I EnterStaticConstraints]
Static Simulation
I Plan Path for Robot(s) I
¢, [ .vo,o ] oOo, , .,on
i
flO~-
Dynamic
Simulation
Fig. 4 (a). System flow chart.
map. After calling the collision avoidance algorithm into operation to manipulate the velocities of the robots, the movement toward the goals is once again commenced.
3.2 Robot movement algorithm The robot movement algorithm is called into operation as soon as static planning is completed for all the robots in the workspace. Robot travel is by successive scanning ano moving to the next node of its path. It may so ha~_pen that two or more robots must travel along the same path or have certain common nodes in their paths. In the former case, there may be a need to set priority
levels for each robot s~jch that the one with the higher priority is allowed to move first while the lower priority robot waits in queue. The latter case may result in robots arriving at a node at the same time causing a collision. It is therefore important to set the arrival time at nodes in the path for each robot. This results in a table of node-versus-time for each robot and would be referred to as node-time chart. The node-time chart is created using velocity and distance bounds. The distance between nodes and the average velocity allowed for the robot for that path segment is taken into account to calculate the arrival times. The robot movement algorithm is essentially a collision avoid race strat-
219 (~)l ExecuteGeneralCollis~JnAvoidanceAkjo~'ilhm.J
(b)
R = Current Rot~ yes
RI no
~esinlhePalhoiR
I "
I yes
| no
is
N (R,J)= N (BR,I)}
! Priority~ R>Pdor#yolBR l no
~yos LN (R,J-I:~= N (BR.I+I) l
......... no
I
T (BR,!) ~ T (RJ) + Conaanl Modify Node-TimeChatl !
i
is
I no
N (~,J+1) = SUO0 (BRJ) I
yes i T(BR, I-1)= T(R,J+I) + Consl3,'~.I Moodily Node-TimeChart J
"l N (R,J-1)= N (BR,I+I) I
,,~
r i;-_
~ ,~,
i ~]'rI.~-I).~'~R.,.,,.,,,T(~,J).'r(.R,,)J,,.tT(,~,J',).T(.R,,÷,)~ T(.,.,)
,t,no
I I
I T (R,J'I)'T(BR.I+I)+C°n=I I ~ i l y Node-TimeChM I
I L
I N(R'J+I):~UCC(BR")I oo ~ yes i T(R.J)
j T(R,J-1)=T(BR,I)+Cost I Modify Node-~me Chad !
~
~ ~
- - - C u n
-
e
n
t
yes Consider Ihe PpJho! Ihe Next Roix~ J Rd.~ = Next Rc~olJ
i ExeculeIhe General Collision A v c ~ d a n ~
Fig. 4(b ). Flow chart tbr collision avoidah,'e algorilhm Ibr bypassing.
C>
220 egy that considers the possible interaction of the robot with other robots and eliminates possible collisions through the node-time chart for each robot. The calculated time in the node-time chart corresponds to the arrival time of the robot at each node so that when the robot moves from one node to another, the difference between the arrival time between robots at the nodes and the distance between them are taken into account to set the velocity of travel for each robot. This is the general collision avoidance algorithm. Bypassing usually results in moving in the direction that is against :he preset direction of movement. This will require a modification in the general collision avoidance algorithm. Collision avoidance for bypassing is based on the priority levels set for the robots. The details of this strategy could be found in [ 7 ]. The bypassing robot is always penalized when higher priority robots are involved. This is because, bypassing is a slow and complicated operation involving frequent stops and sensor interactions and hence is performed last. The system flowchart used for simulation is depicted in Fig. 4 (a). The flowchart of the collision avoidavce algorithm for bypassiag is shown in Fig. 4(b). The nodes in the path tre represented by N, the arrival time at the nodes by T and the node successors by SUCC.
4. Simulation A graphic simulation package has been developed using an IBM PC/AT-370 color graphics terminal to study the various characteristics of multi-robot navigation scheme in warehousing environments. The user can generate a layout structure based on the desired specifications or use a generalized modular layout structure res~ing in the computer's memory. Ti~e simulation is rr"nu driven and the user is taken through stages highlighting the different aspects of navigation. Currently, the simulation can handle up to five robots. The robots are depicted as small rectangular boxes and circles and differentiated t~y assigning different numbers. The static planning menu has options of introducing static constraints, allocating tasks to the robots by specifying the start goal nodes and the status (idling or loaded) and displaying their planned paths. In
dynamic simulation, three windows are displayed. The graphical animation of the moveraent of the robots is displayed in one window, hile the status of the robots at any given instant ix maintained in the second window. The third window displays a menu which allows the user to freeze the simulation, review the robot paths, display the node-arrival time charts or simulate a dynamic obstacle. In the simulation of dynamic constraints, the user is asked to supply the data about the obstacle in a manner similar to the sensor data collection. The various features of the warehouse simulation package is illustrated using different cases. In these examples, traffic is assumed to travel at twice the speed in the highways than in the aisleways or alleys.
Case 1: Static planning Static planning searches for the best paths for robots taking care of static constraints. Static constraints exist as a result of path blockage or a closed alley or aisleway. The constraints are introduced by specifying the node points between which it exists, The static planning for a three robot interaction environment is shown in Fig. 2. Robot 1 starts from node 116 and moves to node 31, Robot 2 moves from node 5 to node 47 and Robot 3 moves from node 116 to 51. The A* search conducted from start to goal gives the following paths: Path for Robot 1: 116-,114-* 112-* 110 -, 108--,22--,23-.26--,27--, 30-~ 31. Path for Robot 2: 5-, 6--, 25--, 26-, 45-* 46--,47. Path for Robot 3: 116-* 114--, 112-.42-.43 -,4~-.47-.50-.51. The paths are shown in Fig. 2. Suppose there are static constraints on the aisleways of blocks BI2 and BI8 (between nodes 45 and 46 and be~ tween nodes 69 and 70). The A* search gives the new paths as: Path for Robot 1:
116-.114~i 112-*110~108 -, 22-.23-* 26-* 27-, 30--, 3 !.
221 "
14
zo,
"~
lu
,x3--~,ls
"'
"
.,.,~
~:*
""
• 8... e
|
7.]!~o
,2.
27~11"4'
X
"i
"" - ' ~ , * " J " ,,~ (;9
• x3 ~
.
L
"
u
if;
.
x,.
.
.
.
,33 --~
.
.
o
34, i "s~ ~
54,
I
2
S
13
Fig. 5. Static planning with constraints (Robot 1 - - O - - ; Robot 2 - - - & - . - ;
Path for Robot 2: 5--, 6--, 25--, 26--, 27--, 30--+49 -, 50--,69--,68--,47. Path for Robot 3: 116~ 114--+112--+42--+43 ~ 4 6 ~ 4 7 ~ 50~ 51. Only the path for Robot 2 has been affected by the introduction of the constraints as shown in Fig. 5.
Case 2: Collision avoidance Possibility of collision is detected by comparing the arrival times at the identical nodes in the paths of the robots. When the arrival time at an identical node in the paths of two robots fall within a specified tolerance, the priority of the robots is used as the criterion to alter the arrival time. The arrival time of the lower priority robot
X
~
~"
7Ore [ e 8 9
~
9Ou
I " 92
~
9~,e
~
94 a
°~
72
~
71,
• 73
~
74 an
• 93
a "/6
~
75o
n 96
~
95 n
•
--~
7ao
,* 97
~
98 n
7?
7ZSj'" Robot 3 - - B - -" Constraint X ).
is always subjected to alteration. Note that the robot movement algorithm will not cause any alteration in the paths of the robots. Let the priority of robots be such that priority of Robot 1 > priority of Robot 2 > priority of Robot 3. The collision avoidance routine creates a node-arrival time chart for each robot based on the node to node distances and velocities. In the paths planned under case 1, notice that nodes 26, 27 and 30 are common in the paths of Robot 1 and Robot 2: nodes 116, 114 and 112 are common in the paths of Robot 1 and Robot 3 and nodes 50 is common in the paths of Robot 2 and Robot 3. For each pair of robots, the process of searching for the identical node, comparing the arrival time at that node and altering the arrival time at the oode of the low priority robot (if needed) is dane successively. Altering the arrival time at one no,~," ,~,;11 change the arrival time at the subse-
222 i
m14 o
I
lo2 ,~-.-lO~
"1
~
2
"4
~
3"
"
"8
~
'7 o
" 9
~
lOw
12
~
il
m 13
~
1(;
0:
m : 24
~
2~,,1||
• ,9
~
30
14 •
m 33
~ .
34 •
~
15e
• 3,;.
~
3so
,, 17
~
18 •
•
37
~
38.
20
~
190
• 40
~
39 ,.
"
•'
i
I u
lol ---~1o3 J
~
~3~
• ~
~--
~3.
• e~
~
83.
..-p,.
sot,
-69
X
?o.
.~s,
~
90.
• 53
~
5,4 -
n ?3
---~
"740
•. 93
~
94 ..
.56
~
ss.
- ?G
~--
?s-
=
96
~
95 a
~
58=
o
"/7
~
"/8 ,.
97
---~
98 ,,
o 80
~
79"
~
!.~9
m
57
, "
• loo " 4 - "
99J
14
Fig. 6. D y n a m i c planning, Robot 1 bypasses ; R o b o t 1 - - @ - - ; Robot 2 - . - A - . - ;
26n A
45
A
27
D
•
1 48
Robot 3 - - l -
-).
quent nodes in the path. The end result of this strategy is a nodeoarrival time chart for each robot that avoids the chance of collision. The robot velocities are adjusted based on the arrival times. The arbitrary node-time chart for the three robots before and after executing the robot movement algorithm is shown in Tables 1 and 2, respectively. Robot 2 is assumed to start at l 0 time units while Robot 1 and Robot 3 start at zero time units. The time to travel between nodes in the highway is f,xed as 20 time units, between nodes in the aisleway as 40 time units and between nodes in the alley as 30 time units. The nodes within the junctions take 5 time units to traverse and nodes between blocks take l 0 time units to traverse. As a result of the collision avoidance algorithm, ~he arrival time of Robot 2 at node 26 was altered from 100 time units to 105 time units to avoid collision with robot. Also, the starting
223 TABLE 1 Node-arrival time chart before applying collision avoidance routine Robot 1
Robot 2
Robot 3
Node
Arrival time
Node
Arrival time
Node
Arrival time
116 114 112 110 108 22 23 26 27 30 31
0 20 25 45 50 60 90 100 130 140 170
5 6 25 26 27 30 49 50 69 68 47
10 50 60 100 130 140 150 190 200 210 220
i16 !14 112 42 43 46 47 50 51
0 20 25 35 65 75 105 !15 145
TABLE 2 Node-arrival time chart after applying collision avoidance routine Robot I
Robot 2
Robot 3
Node
Arrival time
Node
Arrival time
Node
Arrival time
116 114 112 I10 108 22 23 26 27 30 31
0 20 25 45 50 60 90 100 130 140 i70
5 6 25 26 27 30 49 50 69 68 47
10 50 60 105 135 145 155 195 205 215 225
116 114 112 42 43 46 47 50 51
5 25 30 40 70 80 110 120 150
time of Robot 3 at node 116 was delayed to 5 time m~its.
Case 3: Dynamic planning In dynamic planning, halting at a node, scanning in the direction of the next node in the path of the robot and moving towards the next node base6 on !he arrival 6me at the next node are done successively for each robot. Tracing of an obstacle causes new paths to be searched from the current nodes of all robots to their respective goal
nodes. In this way, the constraints traced by one robot is utilized by other robots to plan and alter their paths without having the need to carry out the tracing operation themselves. Referring to the node-time chart in Case 2 (Table 2 ), Robot l starts from node I 16 at zero time units and scans in the direction of node I 14. If there are no obstacles, it is moved to r, ode 114 based on the arrival time at node I 14 ( = 20). In the mean time, Robot 3 starts from node I 16 at time units and moves behind Robot l maintaining the distance. Similarly, Robot 2 starts from node 5 at l0 time units and moves toward node 6. Suppose Robot l traces an obstacle between nodes 26 and 27 and at I I 5 time units. At this time ( = I 15), Robot 2 is following Robot l in the same path segment while Robot 3 is cruising between nodes 47 and 50. The sensors of the Robot l is activated to collect the vital dimensions of the obstacle. In the simulation, the user is required to supply the data output from the sensors. A decision is then made as to bypass the obstacle or block the path and retrace. (a) Suppose the robot decides to bypass. Robot l plans a path from its current position to goal via the bypass node (48). Bypassing requires violating the traffic movement directions. Only the width of the obstacle is known where the bypassing decision is made. The robot may follow the obstacle at a safe distance from it until it has covered the length of the obstacle and come back to its original node. Since the length of the obstacle is not known beforehand, it is safer to assume t~e robot to move into the oTposite lane and travel to the bypass node before coming into its original node. Bypassing is a slow operation due to sensor intervention and hence Robot 2 retraces back to node 26 and plans an alternate path to the goal. The possibilities of collision with other robots due to the retracing and bypassing operation is taken care of in the collision avoidance for bypassing algorithm. The search tree is updated to consider the obstacle as a constraint. New paths are computed from node 26 for Robot 2 and node 50 for Robot 3 based on the refreshed tree. The search yields the following paths (Fig. 6):
224 r
xo2.~-'xo*
f.
i
ro ~
--~
I.~
1"8
~--
~x~o-~"xx21U[~
-~
,4
~
, 21.~
7
l'28 i
I •"
--~
, z ] I ° ~* , ~ -
X ,eli.,; .4--
27.1-~8
~
'
,,,
,
~
I
xx6 .'a-xxs
22. ! ry~--~---~
n ~
]i! I-.2 [
Rllxo6 2 • ! - 21
~
"
x18.~12o ,2. j..~
6no I
--~
84. ~
-.I..5
,7~[-6a |
'111'
~
GT.[
,
_
"~ 4
V"
aa.
.,. ~
eT.
" ~
-
Fig. 7. Dynamic planning, Path blockage (Robot 1 - - @ - - ; Robot 2 - - - & - - - ; Robot 3 - - ~ - - ) .
Path for Robot 1: Current position--, 48 --, 27 --, 30 ~ 31. Path for Robot 2: Current position-, 26 ~ 45--,44--, 41 --,42-,43-,46-,47. Path for Robot 3: Current position--, 50-, 5 I.
Current positi6n--,26--*45--,44--,23 ~224--, 3--,6~7--, 10--,29--,30~31. Path for Robot 2: Current position ~ 26 ~ 45 --~44~41 ~ 4 2 ~ 4 3 ~ 4 6 ~ 4 7 . Path for Robot 3: Current position--, 50--, 51.
(b) Suppose the obstacle is big enough to obstruct traffic in either directions. In this case, the two lanes between nodes 26 and 27 and between nodes 45 and 48 are declared blocked. The constraints are introduced in the tree structure. The updated tree is searched for paths from node 26 to goal node 31 for Robot 1, node 26 to goal node 47 for Robot 2 and node 50 to goal node 51 for Robot 3. The search yields the following paths (Fig. 7):
The collision avoidance algorithm is called into operation once again to plan for new arrival times and the process repeats.
Path for Robot 1.
5. Summary and conclusions
Employing self-navigating mobile robots in material transfer application has a number of advantages. Flexibility combined with robotic capability make them desirable in material handling environments such as warehouses and Flexible Manufacturing Cells. Guidance is inde-
225 pendent of built up features such as wires, tapes and chemicals. Simple landmarks such as patterns or barcodes are employed for co,qi~rming locational information. They could be easily put up or taken down whenever design changes need to be done. The local decision making is carried out by the robot itself using the sensors. The graphics package allows to create tayouts using information such as the type of material to be stored number of pallets, sizes of pallets, etc. The global map is then represented as a network model of nodes and node connections or links. Specific rules were developed to automatically generate the nodes on the traffic lanes. The path planning algorithms plan optimum paths for robots, taking into consideration the static obstacles in the global map and travel times. The robot velocities are then planned based on the nodes in the path and the corresponding arrival times at the nodes thereby avoiding any possible interaction between robots. Any obstruction discovered in the planned paths are analyzed by sensors to arrive at decision of bypassing or retracing and planning alternate paths to the target locatioas. Simulation offers an unparalleled too! for studying the real time control of dynamic environments. Since the global map is known beforehand, mobile navigation can be achieved using a minimum of sensor interaction. The characteristics of random arrival of orders could be analyzed using simulation technique. The system has enabled to throw light on the optimization tech-
niques for collision avoidance routines and scheduling of robots.
Acknowledgement This research was funded in parts by the US Army CERL, Champaign, IL under the contract number DACA88-86-D-0014.
References ! Hollier, R.H., 1983. Integration of storage and handling into manufacturing systems, Fifth Int. Conf. Autom. in Warehousing, pp. 9-23. 2 Rygh, D.B., 1983. Integrating storage in manufacturing systems, Fifth Int. Conf. Autom. in Warehousing, pp. 267276. 3 White, J.A., DeMars, N.A. and Matson, J.O., 1981. Optimizing storage system selection, Fourth Int. Conf. Autom. in Warehousing, pp. 263-260. 4 Rosenblatt, M.J. and Roll, Y., 1984. Warehousing design and storage policy considerations, Int. J. Prod. Res., 22 (5): 809-821. 5 Kiyoshi, K. and Tanie, K., 1986. Research review for realization of autonomous locations, Material Flow, 3 ( 1 ) 3-15. 6 Hall, E.L., Oh, S.J., and Katten, E.U., 1986. Experience with a robot lawn mower, Robots I 0 Conf. Proc., pp. 4.14.26. 7 Kapoor, S.G., Menon, S.R., Pandit, R. and Lu, S.C-Y., 1987. Development of a guidance system for automated warehouse equipped with mobile robotic devices, (Phase I & II ), Technical Report, P87/107(USA-CERL). 8 Winston, P.H., 1984. Artificial Intelligence, Addison Wesley, Reading, MA. 9 Nilsson, J.J., 1983. Principle of Artificial Intelligence, Tioga Publishing Company, Palo Alto, CA.