Abstract
Collision avoidance is a fundamental requirement for mobile robots. Avoiding moving obstacles (also termed dynamic obstacles) with unpredictable direction changes, such as humans, is more challenging than avoiding moving obstacles whose motion can be predicted. Precise information on the future moving directions of humans is unobtainable for use in navigation algorithms. Furthermore, humans should be able to pursue their activities unhindered and without worrying about the robots around them. In this paper, both active and critical regions are used to deal with the uncertainty of human motion. A procedure is introduced to calculate the region sizes based on worst-case avoidance conditions. Next, a novel virtual force field-based mobile robot navigation algorithm (termed QVFF) is presented. This algorithm may be used with both holonomic and nonholonomic robots. It incorporates improved virtual force functions for avoiding moving obstacles and its stability is proven using a piecewise continuous Lyapunov function. Simulation and experimental results are provided for a human walking towards the robot and blocking the path to a goal location. Next, the proposed algorithm is compared with five state-of-the-art navigation algorithms for an environment with one human walking with an unpredictable change in direction. Finally, avoidance results are presented for an environment containing three walking humans. The QVFF algorithm consistently generated collision-free paths to the goal.
1. Introduction
1.1 Challenges of avoiding humans
Avoiding collisions with humans and obstacles is a fundamental requirement for mobile robots, particularly those operating in human environments. The objective of navigation is to plan and control the motion of the robot from its initial position to its goal position, while avoiding obstacles. The navigation problem for mobile robots has been the focus of tremendous research effort. Most of the algorithms for mobile robot navigation are only suitable for avoiding stationary obstacles and/or moving obstacles whose future position and moving direction are predictable, such as other mobile robots. However, avoiding humans is different from avoiding other kinds of obstacles and poses the following additional challenges:
Human motion is unpredictable, changing its speed or direction arbitrarily. For example, human motion is holonomic; a human can stop and move sideways without turning, or directly move sideways without stopping. Predicted human positions and moving directions based upon previous human motions are not reliable. Therefore, precise predictions are unavailable, making the navigation problem more difficult.
For safety, humans must always possess a higher priority in a navigation system than robots or inanimate objects. Humans should be able to pursue their activities unhindered and without having to watch out for the robots working around them.
Considering human emotional reactions, when a robot avoids a human it should not come too close to the human or block the human's path. This can be considered rude behaviour and could also frighten the human, which may cause a sudden action (such as jumping away) leading to human injury.
1.2 Related research
Currently, the majority of navigation algorithms for mobile robots can be classified into two categories. The algorithms in the first category directly provide the collision free path of a robot by assuming the shapes of obstacles are known and their motion is predictable. Furthermore, they typically neglect the robot dynamics. The algorithms in the second category indirectly generate collision free paths by using the current kinematic and geometric information of the robot and any obstacles, such as the distances between obstacles and the robot and the current velocities of obstacles. These algorithms consider the robot dynamics. The recent relevant literature on mobile robot navigation algorithms will now be reviewed.
Algorithms in the first category have the advantage that optimal collision free paths can be found with stationary obstacles or with moving obstacles whose motions are predictable. We will only review the algorithms for avoiding moving obstacles [1–7], since that is the focus of this paper. A “dynamic window” algorithm was proposed in [1]. It employs a window around the robot based on the velocities the robot can reach without causing a collision in the next time interval. Other algorithms [2, 5] assume the obstacles will move with zero acceleration and use their current positions and velocities to build forbidden regions for the robot's velocity. Collision avoidance is accomplished by keeping the robot velocity outside of these regions. Randomized path planning algorithms have also been proposed for avoiding moving obstacles [3, 4]. They exploit randomization to explore large state spaces efficiently. Incremental search planning algorithms are another alternative. The D* algorithm [6] performs a grid-based search incrementally, based on the current positions of the robot and obstacles. Similarly, a predicted collision-free region was combined with the A* algorithm in [7]. These algorithms typically do not work well for obstacles like humans, due to a lack of accurate position/moving direction predictions.
The navigation algorithms in the second category are based on the artificial potential field (APF) (introduced in [10]) or the virtual force field (VFF) (introduced in [11]). These algorithms are normally simple to implement and consume less computational loads than those in the first category. Since virtual forces can be obtained by using the gradient descent method on APFs, they are closely related and belong in the same category. These algorithms assume the existence of a repulsive artificial potential field or a repulsive virtual force surrounding each obstacle to push robots away from the obstacle. An attractive artificial potential field or virtual force is also assumed to be acting to pull the robot to the goal. These algorithms do not directly provide a collision-free path for a robot. The desired accelerations of the robot are given through the dynamic interactions of the robot with the virtual forces. The collision-free path can be obtained by integrating the accelerations with Euler's method. VFF or APF based algorithms have been extensively studied [8–19]. With these algorithms, the force functions or the potential fields are related to the distance from the robot to the goal and the distance to the obstacles. Sometimes they incorporate the velocities of the obstacles and robots in the force functions or potential fields to help the robots avoid dynamic obstacles [8, 10–16, 18–19]. An “active region” surrounding each obstacle is often used to define where the repulsive potential field (or repulsive virtual force) from the obstacle is active. If the robot is inside an obstacle's active region, the repulsive potential field/virtual force is applied to repel the robot away from the obstacle. The attractive potential field may also be active and move the robot towards the goal during navigation. If the robot is outside the region, only the attractive potential field is applied to the robot to pull it towards the goal. The APF/VFF is divided into two parts by the boundary of the active region. In [11, 14] a component tangential to the repulsive component of their potential field is added. This tangential component helps the robot to detour around the obstacle. Similarly, a virtual force that acts perpendicularly to the repulsive force was added in [13]. This force helps the robot to detour around the obstacle and reduces the time required for the robot to reach the goal. In this paper we name this force the detour force. In [13] another region that is very close to the obstacle is utilized. We will refer to this as the critical region. In the critical region a robot may not have sufficient space for complete avoidance, so an alternative to VFF is needed inside this region. It is important to note that methods for systematically designing the size and shape of the active and critical regions are missing from the prior literature.
The APF-based and VFF-based navigation algorithms in the second category are suitable for avoiding moving obstacles whose moving directions are unpredictable, such as humans. This is because the active region provides the space needed to handle the unpredictability. With VFF-based algorithms, if the virtual forces at the boundary of the active region of an obstacle are discontinuous, as in, for example [9, 17], oscillations that waste time and energy may occur as explained in [20]. To both prevent the oscillations and make the motion more efficient, the VFF must be continuous at the edge of the active region.
Another problem with existing APF and VFF-based algorithms, that we will term the collinear condition, was described in [13]. In this condition, an obstacle is located between the robot and the goal and the centres of the robot, obstacle and goal are collinear. The velocity directions of the robot and the obstacle are also on this line (see Figure 1). With conventional VFF algorithms, the attractive force and the repulsive force will all be along this line. Hence, the robot either collides with the obstacle, or is pushed away such that it will never reach its goal. Obviously, the solution is to move the robot sideways. Furthermore, severe path oscillations occur with the existing VFF algorithms whenever the robot, obstacle and goal locations are near to the collinear condition. A non-zero detour force can provide collision avoidance without path oscillations, as shown in Figure 1. This force was not provided in the algorithm in [13]. In [11, 14] a non-zero detour force is provided, however its direction may result in a collision when avoiding a moving human.

Collinear condition for collision avoidance.
Lastly, proven stability is an unsolved problem for APF-based and VFF-based methods for environments with a variable number of dynamic obstacles. Some researchers have investigated the use of Lyapunov's second method to prove stability. In [11] a pre-known environment with only stationary obstacles was divided into a grid. Using an electrical analogy, each cell of the grid was considered as a resistor, cells occupied by an obstacle were considered as high electric potential, and the goal as ground. Then they established a Lyapunov function, such that the value of the function is the voltage of the cell presently occupied by the robot. The robot is moved to the surrounding cell that has the lowest potential until it reaches the goal. This function is extended for moving obstacles in [14]. However, the number of moving obstacles must be known a priori, otherwise their Lyapunov function will be discontinuous and therefore invalid. The APF algorithm in [16] utilized the modified dipolar potential field for multi-robot navigation. By using this field as the Lyapunov function of the navigation system, a backstepping controller is designed to be globally asymptotically stable. The effectiveness of this method is verified through simulations. However, this method requires perfect knowledge of the environment in order to build the APF and therefore cannot be applied to environments with variable numbers of obstacles. In [17] an APF is designed to be proportional to the distance between the robot and its goal and inversely proportional to the distance between the robot and an obstacle. By using their APF function as a Lyapunov function, they verified the asymptotic stability for avoiding stationary obstacles with one important exception. According to their analysis, under the collinear condition the robot fails to reach the goal.
1.3 Contributions and paper organization
Although significant progress has been made with robot navigation algorithms, several problems have not been addressed in the prior literature, as discussed above. The main contributions of this paper are:
A novel VFF-based robot navigation algorithm with improved force functions. It may be used with holonomic and nonholonomic robots to avoid moving obstacles with unpredictable direction changes, including humans.
Methods to calculate the sizes of active and critical regions for different obstacles. These methods consider the worst-case avoidance conditions and utilize the shapes, velocity limits and acceleration limits of the obstacle and robot.
Proof that the proposed algorithm is stable for variable numbers of stationary and dynamic obstacles.
A comparison of the proposed algorithm with five state-of-the-art collision avoidance algorithms for moving obstacles.
It is important to note that our algorithm assumes that the human(s) wish to be independent of the robot(s), unlike in [21] where the focus is on navigation for human-robot social interaction. The organization of the paper is as follows. In Section 2, the methods for establishing the sizes of the active and critical regions are explained. The virtual force functions are designed in Section 3. The stability analysis is presented in Section 4. In Section 5, simulation and experimental results are presented and discussed. Finally, conclusions are drawn in Section 6.
2. Sizing the active and critical regions
2.1 Active and critical regions for a human
The sizes of the two regions will be determined from the robot and human shapes, and velocity and acceleration limits. The active region, termed
Since a human's motion is arbitrary, it can change its moving velocity and direction at any time, subject to a limit in linear velocity magnitude. For safety, we need to consider the arbitrary motion made by the human, so the active and critical regions for humans are represented by disk-shaped regions to consider all directions (i.e., assuming the angular velocity of the human is infinite). In the following analysis, we will focus on the design of
2.2 Size of the critical region for a human
Since a typical mobile robot moves on the floor, the human will be modelled as the projected shape of its body on the floor. The projected shape is highly related to the pose of the human. By modelling a human body as an enclosing cylinder, we can neglect the different poses and simplify the navigation system, while still maintaining safety. The human cylinder shape projected onto the horizontal plane of motion is a disk, as shown in Figure 2. The average step length of a human is 0.8 m [22]. One half of this value will be used as the radius of the human model, i.e. ρh= 0.4m.
To simplify the design of the critical region, the shape of the robot will be reduced to a point and the region will be appropriately enlarged. We will use 2D Minkowski addition to sum the disk-shaped human model and the shape of the robot. The projection of the robot onto the floor is modelled as a disk with a radius of ρ r . The resultant Minkowski sum area (shown enclosed by the dashed-line in Figure 2) is a disk with a radius of ρ+ρh. Therefore when the centre of the robot lies on the dashed-circle, the robot will just contact the human model. The shape of the robot can then be regarded as a point in the remaining analysis.

Design of the critical region for a human.
The size of the critical region is related to the stopping distance, r3, which ensures that, in the worst-case, robot-human impact will not occur before the robot is stopped, i.e., when the human and robot approach in the collinear condition (defined in Section 1.2) with their maximum velocities V̄ h and V̄ mr , as shown in Figure 2. When the robot enters C3 of the human, it should decelerate with its maximum deceleration magnitude until it stops. The stopping distances are given by:
where
The combined area defines the critical region for the human. In other words,
2.3 Size of the active region for a human
The active region of a human should provide the robot(s) with enough room to avoid the human. As previously mentioned, the worst-case is the collinear condition, with the human and robot approaching at their maximum speeds, as shown in greater detail in Figure 3. The initial conditions are as follows: the position and velocity of the robot centre are Pr0 = [Prx0 Pry0]T and Vmr = [V̄
mr
0]T, respectively and the position and velocity of the human centre are Ph0=[Phx0 Phy0]T and V
h
=[−V̄
h
0]T, respectively. The human's velocity here is assumed to be constant. Due to the detour force the robot's velocity will change direction and the robot will move to the point Pr1. The displacement of the robot in the Y-direction must be larger than the radius of

Kinematics of the collinear condition.
Therefore, from Figure 3 the radius of
whereamrx is the acceleration component of the robot in the X-direction,
where amry is the acceleration of the robot in the Y-direction and ta is the time spent by the robot accelerating from zero velocity to V̄ mr in the Y-direction. It is impossible to obtain the acceleration in the Y-direction analytically, since it will be different for different algorithms, so Δt2 cannot be obtained directly. We will estimate Δt2 by first assuming the robot is driven with maximum acceleration magnitude1, amry = āmr in the Y-direction. Therefore, (9) is rewritten as:
So Δt2 can be estimated with:
where ta is the acceleration time. The robot acceleration magnitude in the Y-direction will actually be less than ā mr , since the robot must also decelerate in the X-direction, so the actual Δt2 will be longer than the computed values and (6) will underestimate the value of r2. To compensate for this error, we can assume the worst case of amrx ≈ 0 and then the conservative estimate for r2 is given by (7) and:
In the analysis presented above, it was assumed that the robot could be directly accelerated sideways (Y-direction). This is true if the robot is holonomic. A nonholonomic robot must be turned π/2 first and then it can be accelerated in the Y-direction. Therefore, the turning time tturn also needs to be considered. By assuming the robot turns with its maximum angular acceleration
Note, when calculating the size of
2.4 Sizes of active and critical regions for stationary circular obstacles
The procedure for determining r2 and r3 for humans can be used for other obstacles, such as stationary disk-shaped obstacles. Since the velocity of a stationary obstacle is zero, avoiding the obstacle requires:
where r2,c and r3 are the radii of Π2 and Π3, respectively, ρ c is, the radius of the obstacle model and ta is given by (12).
2.5 Sizes of the active and critical regions for stationary rectangular and polygonal obstacles
For a stationary rectangular obstacle, modelling it as a circle will waste too much floor area. The size of its active and critical regions should be determined by modelling it as a rectangle, as shown in Figure 4. As in Section 2.2, we use Minkowski summation to add the rectangle and the shape of the robot, to allow us to reduce the shape of the robot to a point. The resultant area is enclosed by the dashed line in Figure 4.

(a) Worst-case avoidance condition for a rectangular obstacle. (b) Design of the active and critical regions.
To obtain the region sizes, we need to know the worst-case for a robot avoiding this obstacle. As shown in Figure 4a, the robot approaches the obstacle with a velocity V mr . It is clear that its velocity component Vmr,t (i.e., tangential to the boundary of the Minkowski sum area) will not cause a collision and it will help the robot to detour around the obstacle. The other component Vmr,n may cause a collision. The worst-case occurs when γ mr =0 and Vmrn = V̄ mr . For this case, stopping the robot before contact occurs requires:
where
For the active region and a holonomic robot similar to (19), we require:
Δt2,rect must satisfy:
where B is the distance between the robot's position and the boundary of the obstacle in the Vmr,t direction. For the worst-case of B = ½Blen, similar to (21), Δt2,po must satisfy:
The corresponding worst-case value of
This can be easily extended to convex and non-convex polygonal obstacles. In the convex case:
Enclose the polygon in a minimal area bounding rectangle.
Calculate r2,po and r3,po for the bounding rectangle.
An example of this procedure is shown in Figure 5.

Region design example for a convex polygonal obstacle. (a) Obstacle with its bounding rectangle. (b) Designed regions.
For non-convex polygonal obstacles, the polygon must first be decomposed into convex pieces. The regions are then created for each piece. If the robot enters the active regions of two or more pieces then the virtual forces from those pieces are summed. An example of a U-shaped obstacle will be presented in Section 4.
3. Design of the QVFF virtual force functions
This section begins by discussing the case of a robot avoiding a single human. The geometric configuration of the goal, the robot and the human is presented in Figure 6. We assume that the robot goal is stationary and outside of the active region(s) of the obstacle(s) for safety. In this figure,

Example of the attractive, repulsive and detour forces when avoiding a human.
where
An attractive virtual force is used to guide the robot to the goal. It is activated when the robot is within
where K1 and K2 are the positive attractive virtual force gains.
A repulsive virtual force is used to keep the robot away from the human and is activated when the robot is within
where K3 and K4 are the positive repulsive force gains,
The numerator term of λ, d22 causes the repulsive force to gradually increase from zero when the robot enters the active region. The denominators, d3 and d32, cause the force to increase greatly when the robot is near the boundary of
The detour force,

Determination of the correct sense of the detour force.
where K5andK6 are the positive detour force gains, Ψ=d22Φ,Φ=α-β and Ψ=d22Φ. The sense of uΨ should be chosen to satisfy:
To ensure stability, we add the following stabilizing virtual force into the VFF:
where
and Mr is the virtual mass of the robot.
Our VFF is a combination of the four forces and is termed quad-VFF (QVFF). Thus, the QVFF for the robot with a single human/obstacle is:
If the robot intrudes into
A VFF should be continuous in order to reduce path oscillations. For the QVFF to be continuous the virtual forces at the boundary between
From (32)–(36), at the outer boundary of
From (38)–(41) it follows that:
Therefore:
From (43) the piecewise QVFF is continuous.
Extending the above analysis, if the robot is sharing its environment with N static or dynamic obstacles (which could include other robots), the force field will be:
where
4. Stability analysis of the QVFF
As mentioned in Section 1.2, with VFF-based algorithms the desired acceleration of the robot is obtained by dividing
where
Therefore:
and the continuity is proven.
When
When
where b > 0, then the first derivative of V2 is:
From (49) it is clear that:
When
The stability analysis can also be expanded to include multiple static or dynamic obstacles. If the robot is in the active region of N obstacles, the VFF state for V2 is:
and Q2(d) becomes:
Then we can use (45) to build the Lyapunov function for N obstacles. This function for N obstacles is continuous, since

Simulation of the QVFF algorithm with a holonomic robot and a U-shaped obstacle.
5. Results and discussion
5.1 Experimental Hardware
A differential-drive nonholonomic robot and vision system was built for experimental verification of our algorithm. A bottom view of the robot is shown in Figure 9. Wheels 1 and 2 are driven by DC motors via a 10:1 worm gear. Wheel 3 is a passive omni-directional wheel that prevents the robot from tipping. The wheel positions are measured by optical encoders. The encoder data and motor voltages are transmitted to/from a PC-based controller using an umbilical cable. The experimental setup also includes a calibrated colour video camera for capturing images of the human and the robot. Colour patches are attached to the human's shoulder and the robot at known Z heights, as shown in Figure 10. With a standard PC, the X-Y positions of the robot and the X position of the human are estimated from the image centroids of the colour patches using the camera calibration matrix and the patch heights. Note that the low ceiling height in our laboratory prevented the camera from being placed overhead. Due to the camera's location and the human's shoulder height, the accuracy of the Y position estimates is very poor, so only the human's X position estimates are used. The velocities of the robot and the human are calculated by backward differencing their estimated positions. The experimental hardware has a sampling period of Ts = 0.06 s. Unfortunately, it is only possible to reliably track one human with our setup since the colour patch on the 2nd human could be occluded by the body of the 1st human. Further details on this hardware are provided in [24].

The nonholonomic robot used in the experiments.

Captured image of the robot avoiding a walking human. The red, green and yellow colour patches are used for position tracking.
5.2 Avoiding a walking human in the collinear condition
As explained in Sections 1.2 and 2.3, the collinear condition is the worst-case for a robot and a single moving obstacle. Simulation and experimental results for a walking human and nonholonomic and holonomic mobile robots in the collinear condition are shown in Figure 11. The robots both have a radius of ρr = 0.2 m, a maximum velocity of V̄
mr
=0.7 m/s and maximum acceleration of ā
mr
= 10 m/s2. The maximum angular acceleration of the nonholonomic robot is

Experimental and simulation results for nonholonomic and holonomic robots navigated by the QVFF algorithm, with a human walking in the collinear condition. (a) Paths. (b) Human velocity. (c) Closest distances to the human. (d) Distances to the goal.
5.3 Comparison with five state-of-the-art navigation algorithms
In this section simulations with five state-of-the-art navigation algorithms for moving obstacles are compared with the QVFF algorithm. The human and robot paths, the closest distance from the robot to the human and the distance from the robot centre to the goal are plotted for the six algorithms in Figure 12. A human path with an unpredictable direction change is used (plotted in light green). The robot is holonomic with the same specifications as used in the previous section.
The robot starts from (4, 0)m and must avoid the walking human to reach its goal at (0, 0)m. The walking human initially starts from (0.6, 0)m with a (1, 0)m/s velocity. After 1s, the human slows down with a (−1, 0)m/s2 deceleration until it stops at (2, 0)m and then moves sideways with a (0, 1)m/s2 acceleration. After the human's velocity reaches (0, 1)m/s, the human maintains a constant velocity. In the figure, VO denotes the velocity obstacle algorithm [2], RRT denotes the rapidly exploring random trees algorithm [15], D* denotes the D* algorithm [6], Ge & Cui denotes their algorithm [13] and Masoud denotes his algorithm [14]. The gains for the Masoud, Ge & Cui and QVFF algorithms were optimally tuned. The detailed tuning process is omitted here for brevity and can be found in [24]. The first three algorithms (i.e., VO, D* and RRT) belong to the first category described in Section 1.2, while the remainder belong to the second category. During the simulations, the future motion of the human, including the walking direction change, is unknown for all six algorithms. From Figure 12b we can see that the first three algorithms caused collisions (indicated by d reaching zero) after the human changed its motion direction. These collisions occurred at the locations shown by the asterisks in Figure 12a. The algorithms in the second category all successfully completed the navigation. The robot path with the Ge & Cui algorithm ran straight from the robot start position to its goal. It was not plotted to avoid obscuring the human's path. It did not detour around the human since their detour force is zero under the collinear condition. As shown by the e plot, their repulsive force caused the robot to stop momentarily at 1.9s and then move backwards until the time reached 4.1s.

Comparison of simulation results for six navigation algorithms avoiding a human with unpredictable motion. (a) Paths. (b) Closest distances between the robot and humans. (c) Distance from the robot centre to the goal.
After that, the motion of the human in the positive Y direction allowed their algorithm to drive the robot to the goal. It arrived at 10.9s. Of course this “backup and wait” strategy would prevent the robot from reaching the goal if the obstacle was static. The Masoud and QVFF algorithms made detours to avoid the human. With the QVFF algorithm the minimum d was 0.8m and the robot reached the goal at 10.2s. The larger detour made by the Masoud algorithm increased its minimum d to 1.2m, but also increased its arrival time to 14.0s.
5.4 Collision avoidance with three walking humans
The QVFF algorithm was also simulated with an environment containing three walking humans (denoted Human 1, Human 2 and Human 3). The paths of the humans and robot are plotted in Figure 13a.

Simulation of the QVFF algorithm for an environment with three walking humans. (a) Paths. (b) Closest distances between the robot and humans. (c) Distance from the robot centre to the goal.
The closest distances from the robot to each human are plotted in Figure 13b and the distance from the robot centre to the goal is plotted in Figure 13c. The robot was identical to the previous section. It started from (3.85, 0.6)m and its goal was at (0, 0.6)m. The motion of Human 1 was unpredictable. Starting from (0.6, 0.6)m, he moved to the right at 0.7m/s velocity. After 1.4s, he smoothly turned counter-clockwise until the time equalled 4.4s. Next, he stopped for 1.0s. Finally, he moved left and downwards at 1m/s. Simultaneously, Human 2 started from (0, 0)m and moved left at 1m/s and Human 3 started from (1.5, −4.5)m and moved upwards at 1m/s velocity. From Figure 13b we can see that the robot successfully avoided all three humans. The minimum d was 0.22m to Human 1. This is not surprising since his motion was the most unpredictable. The robot arrived at its goal in 14.2s.
6. Conclusions
A novel VFF-based navigation algorithm, termed QVFF, was presented. It is primarily intended for mobile robots sharing working environments with people. It features improved virtual force functions for avoiding moving obstacles, it may be used with both holonomic and nonholonomic robots and its stability was proven using Lyapunov's second method. Active and critical regions were used to deal with the uncertainty of human motion. A procedure was introduced to calculate the region sizes for disk-shaped and polygonal obstacles based on the worst-case avoidance conditions. Simulation and experimental results were presented. The QVFF algorithm outperformed five state-of-the-art navigation algorithms for an environment with one human walking with an unpredictable change in direction. For a human walking in the collinear condition and a challenging environment containing three walking humans, the QVFF algorithm successfully generated collision-free paths to the goal.
Footnotes
7. Acknowledgments
The funding provided by the Natural Sciences and Engineering Research Council of Canada is gratefully acknowledged. The authors also wish to thank Graham Ashby and Justin Flett for their assistance with the final formatting of this paper.
1
It is assumed that the maximum acceleration magnitude of the mobile robot equals the maximum deceleration magnitude.
2
Please note that the definitions of d, r2 and r3 used in this paper are different than in [20] and [
].
