Dynamic Obstacle Avoidance for an Omnidirectional Mobile Robot

We have established a novel method of obstacle-avoidance motion planning for mobile robots in dynamic environments, wherein the obstacles are moving with general velocities and accelerations, and their motion profiles are not preknown. A hybrid system is presented in which a global deliberate approach is applied to determine the motion in the desired path line (DPL), and a local reactive approach is used for moving obstacle avoidance. A machine vision system is required to sense obstacle motion. Through theoretical analysis, simulation, and experimental validation applied to the Ohio University RoboCup robot, we show the method is effective to avoid collisions with moving obstacles in a dynamic environment.


Introduction
An omnidirectional robot is a holonomic robot that can move simultaneously in rotation and translation [1].Most work on omnidirectional robots is in robot development; the few studies on dynamic models are Watanabe et al. [2], Moore and Flann [3], Williams et al. [4], and Kalmar-Nagy et al. [5].These models all have decoupling between the wheels, which is not complete; thus, we first briefly summarize a new coupled nonlinear dynamics model for three-wheeled omnidirectional robots.
The potential field method was first suggested by Andrews and Hogan [6] and Khatib [7] for obstacle avoidance of manipulators and mobile robots.Obstacles exert a virtual repulsive force, while the goal applies a virtual attractive force to the robot.Koren and Borenstein [8] identify potential field limitations (robot trapped by local minima, oscillation in presence of obstacle, and the lack of passage between closely spaced obstacles).To overcome these problems, they developed the vector field histogram.Ge and Cui [9] mentioned an additional shortcoming, a nonreachable goal with an obstacle nearby, and presented a new repulsive function to overcome it, increasing complexity and computation.Adams [10] presented a simulation study using the potential field method considering low-level robot dynamics, with static obstacles.Guldner and Utkin [11] proposed a method that took the gradient of the potential field as the desired vector field for path planning.Tsourveloudis et al. [12] proposed an electrostatic potential field for an autonomous mobile robot in a planar dynamic environment; their method depends on obstacle prediction accuracy and slow environment changes.
The velocity space method to deal with moving obstacle avoidance in a preknown environment was suggested by Fiorini and Shiller [13], who discussed the velocity obstacle concept.This method lacks potential field simplicity and is effective only if the obstacle moves with constant speed.Chakravarthy and Ghose [14] and Tsoularis and Kambhampati [15] proposed methods which use relative speed to detect collisions.Fujimura and Samet [16] and Conn and Kam [17] presented studies of motion planning in a dynamic environment, but in both of their studies, the dynamic environments need to be completely preknown.
Chang et al. [18] presented a two-phase neural-networkbased deliberate path-planning and reactive motionplanning hybrid navigation system for static obstacles.Xu et al. [19] proposed a reactive motion planner that uses local rather than global environment information for static obstacles.
Recently, other authors have presented works on moving obstacle avoidance for robots.Leng et al. [20] presented an improved artificial potential field method by introducing an Anisotropic-Function.The motion ability of an omnidirectional robot in different directions was considered to improve the motion planning and the moving obstacle velocity was preset.Belkhouche [21] presented reactive path planning for a dynamic environment.Der Berg and Overmars [22] presented kinematic and dynamic motion planning roadmaps for dynamic environments.
The potential field method is normally used for path planning and obstacle avoidance in a static environment; still relatively few papers deal with moving obstacle avoidance.The velocity space method applies relative robot/obstacle speed and position to detect a possible collision and plan a motion and normally requires preknown constant obstacle and robot speeds.No fixed time motion is found in the literature on obstacle avoidance.In the current paper, we present a new dynamic obstacle avoidance method with a hybrid (globally deliberate and locally reactive) navigation system and the concept of using relative velocity to detect possible collisions.We have established a novel method of obstacle-avoidance motion planning for mobile robots in dynamic environments, wherein the obstacles are moving with general velocities and accelerations and their motion profiles are not preknown.A hybrid system is presented in which a global deliberate approach is applied to determine the motion in the desired path line (DPL), and a local reactive approach is used for moving obstacle avoidance.
This paper first summarizes a new coupled nonlinear dynamics model for wheeled holonomic omnidirectional mobile robots, followed by development of the novel dynamic obstacle avoidance algorithm, with simulation examples and experimental validation.

Three-Wheeled Omnidirectional Robot Modeling Summary
This section presents a brief summary of kinematic and dynamic modeling, plus controller development.For more details, see Wu [23].Figure 1 shows a bottom view of the Ohio University RoboCup robot.In Figure 2, {w} is the fixed world coordinate frame, and {m} is the moving frame, with the same origin as {w} but rotating with the robot.The x m axis is set to always be perpendicular to traction force T 1 , and φ is defined as the angle of x m with respect to T is the traction force of the ground on the wheels and m F = [ m F x m F y m T Z ] T is the Cartesian force and moment on the robot in the moving frame.L is the radial distance to the wheels from the robot center.r is the radius of the wheels; where w m R is the orthonormal rotation matrix which rotates vectors in {m} to {w} [24].
Without derivation our coupled nonlinear dynamics model is [23] where ( J and m are the rotational inertia and mass of the robot, qm = [ qm1 qm2 qm3 ] T are the motor angular velocities, c m and c L are the motor and load rotational damping coefficients, J m and J L are the motor and load rotational inertias, n is the gear ratio, , where E i is the ith motor voltage input, k E and k M are the motor back emf and torque constants, and k lr is the inverse of the motor terminal resistance R. In simulation and hardware, we have implemented a twolevel closed-loop controller (Figure 3).The outer loop is a Cartesian pose controller based on machine vision and the inner loop is a wheel velocity controller based on motor encoder feedback.For each level, we use independent linear PI controllers where the gains were obtained through trial and error in simulation; the same gains worked well for the hardware.For many straight-line, triangular, and circular motion commands, the simulation and experiment agrees well with the commanded motion indicating that our model is good and the controller is effective to compensate for the wheel coupling and nonlinearity in (2).See Figure 4 for one sample experimental motion without obstacles, comparing desired and actual position and orientation of the robot.The robot is commanded to move in a straight line between two points, dwell for 2 seconds, and return to the original point, with constant orientation.The robot follows the desired path smoothly and closely.
We have developed novel velocity and acceleration cones to characterize the practical kinematic and dynamic constraints for holonomic three-wheeled omnidirectional mobile robots.These are applied to ensure the path planner does not request more velocity than the robot is capable of kinematically nor excessive acceleration that causes actuator saturation or wheel slippage.Though we have no space to present this, our obstacle-avoidance method in this paper is subject to these practical constraints (see, [25]).

Problem Statement and Approach.
As shown in Figure 5, a mobile robot at point A must reach goal point B in a fixed time t B − t A , while avoiding collisions with static and moving obstacles.Line AB is a given desired path line (DPL).The obstacles' motions are not preknown, but will be sensed in real-time via machine vision.We assume that the speed and acceleration capacity of all obstacles are similar to that of the mobile robot.We present a hybrid approach wherein a global deliberate approach is applied to motion along the DPL while a local reactive approach is used to avoid collisions with obstacles.This obstacle avoidance in a nonpreknown environment is not necessarily optimal (when reviewed at a later time), because the obstacles' motions are not preknown.Obstacleavoidance decisions made by the robot are based only on past and current obstacle motion data from the vision system to estimate the current velocity of the obstacle.No further prediction about the future obstacle motion is made because smart obstacles may change motion according to our robot motion.All obstacle-avoidance robot motions will be restricted to a fixed-time motion problem: along the direction of the DPL, the motion of the robot is a nearly constant speed motion (ramping up from and down to zero velocity and the start and end, according to the robot acceleration capacity).Obstacle avoidance is realized by changing the robot speed in the direction perpendicular to the DPL.This means if the obstacle is on the line between the robot and target, the robot will change the speed in the direction perpendicular to the DPL while keeping the same speed in the direction along with DPL to reach the target in the fixed time period.

Moving Obstacle Avoidance.
In Figure 5, {w} is the fixed world coordinate system.The local, or DPL, coordinate system {l} has the same origin as {w}, and x l is parallel to the DPL.In our obstacle-avoidance algorithm, the starting and destination points and other robot motion conditions are transformed to DPL coordinates and then transformed back to {w} for the robot path.The motion along the x l direction is predetermined (due to the fixed-time requirement), while the motion in the y l direction will be determined in DPL coordinates for obstacle avoidance, subject to kinematics and dynamics constraints.θ DPL = atan2( y B − y A , √ x B − x A ) is the angle of x l with respect to x w , where w X A = [x A y A ] T and w X B = [x B y B ] T are the vector position of points A and B in {w}, and atan2 is the quadrant-specific inverse tangent function.The Cartesian position and translational velocity (of the robot or obstacles) in DPL coordinates are found in (4), where w Ẋ is the Cartesian velocity in {w} and l w R is the inverse (transpose) of the orthonormal rotational matrix w l R (4)

Motion in x l
Direction.In DPL coordinates, we assign the robot motion along the DPL (x l ) as shown in Figure 6 Equations (3.2.1) are for the intermediate time points where s is the distance between points A and B, and ẋ and ẍ are the velocity and acceleration of the robot in the x l direction From kinematics, we can find the motion in time periods Δt CA , Δt DC , and The robot starts from point A, constantly accelerates by ẍ to velocity ẋ, then moves with constant velocity ẋ in Δt DC , then constantly decelerates by ẍ, and stops at point B. During time period ẋ/ ẍ ≤ t < s/ ẋ, the speed of the robot in the direction x l is the constant ẋ.The total time to move from points A to B is t B from (3.2.1), assuming that t A is reset to zero for each motion.ẍ can be assigned as the maximum achievable robot acceleration in the x l direction.If the motion time and ẍ are given, ẋ is determined from t B of (3.2.1).The robot velocity and acceleration must remain within their practical kinematic and dynamic constraints [25].

Basic Strategy of Obstacle Avoidance.
We can simplify by expanding the obstacle radius to RR o = R r +R o (Figure 7), where R r is the robot radius, and R o is the obstacle radius.The robot then becomes a point which must avoid the expanded obstacle.
Figure 8 shows the vectors used in the moving obstacleavoidance algorithm.In DPL coordinates, vector X rol shows the relative position between the point robot and an expanded obstacle (from the robot to the obstacle).From vector loop closure X rol = X obl − X rbl , where X obl and X rbl are position vectors of the obstacle and the robot.The distance between the robot and obstacle is dis rol = X rol .If the robot and obstacle velocities are Ẋrbl and Ẋobl , the relative velocity of the robot to the obstacle is Ẋorl = Ẋrbl − Ẋobl .Angle α is between the tangent line from the expanded obstacle circle to the point robot and relative the position vector X rol β is the angle between the relative position vector X rol and the relative velocity vector Ẋorl .If β > α while the robot passes an obstacle, there will be no collision (Figure 8 pictures the opposite case, i.e., β < α, where there will be a collision).The strategy for moving obstacle avoidance is to check angles α and β in each time step and command the motion of the robot in the y l direction (while the planned x l motion continues) to keep the relative velocity vector Ẋorl away from the possible collision range determined by angle α.
Whether to increase or to decrease the velocity of the robot in the y l direction depends on which is the easier way to turn the relative velocity Ẋorl away from the collision range.In the case of single obstacle avoidance, if we start checking the relationship between α and β early enough ( ẏl = 0 at the start), we can simply choose to increase or decrease ẏl of the robot by comparing vectors of Ẋorl and X rol .Two unit vectors u vl = Ẋorl / Ẋorl and u pl = X rol / X rol are compared to determine the direction of ẏl (Figure 9).If u vl (y) > u pl (y), we choose increasing ẏl of the robot and choose decreasing ẏl (increasing ẏl in the negative direction) in the reverse case.In the case shown in Figure 9, u vl (y) is more negative than u pl (y), thus we increase ẏl in the negative y l direction until β > α.The original Ẋorl is changed to Ẋorl mod .
Forwarding to the DPL is also considered in our algorithm as choosing the easier way to turn away the obstacle results moving less in the direction perpendicular to the DPL, consequently robot can move back to DPL faster and easier.The "easier way" is judged not only by the relative velocity but also the relative position between the robot and the moving obstacle, both in DPL coordinates.In Figure 8, for example, if the robot turns left to avoid moving obstacle instead of turning right, the robot has to either start moving right earlier or faster to avoid the collision with the moving obstacle.
It will be more complicated in cases where there is not enough distance between the robot and obstacle when a robot starts to turn off the DPL, or a robot already has a velocity in the y l direction.This is the multiple obstacleavoidance case (Section 3.2.6).

Range of Checking
Collision.An important issue is how to determine when the robot should start to leave the DPL.It will be easier to avoid collisions if the robot starts to turn off the DPL earlier and thus get more time to turn the relative velocity Ẋorl out of the collision range.On the other hand, velocities of obstacles are not constant; it might not be necessary to turn off the DPL if obstacles change their velocity in later time steps.Therefore, we should keep the robot moving along the DPL as long as possible, especially for multiple moving obstacles.
Assume that the maximum velocity Ẋoblmax of an obstacle is the same as the maximum speed of the robot Ẋrbl .We consider the special worst case when the obstacle moves towards the robot along the DPL, both at their maximum speed as shown in Figure 10.
Ẋorl = Ẋrbl − Ẋobl = 2 Ẋrbl m ≤ 2 ẋl max is the relative speed between the robot and obstacle in this case.If the maximum velocity and acceleration of the robot in the y l direction is ẏl max and ÿl max , the time needed to move the robot a distance RR o in the y l direction to avoid the collision is The distance between the robot and obstacle at which the robot should start checking collision is then Dis ov from (9).The relative distance in this worst-case scenario is greater than the distance for all other cases, in which the relative speed along the relative distance will be smaller Since an obstacle can change velocity it is reasonable to use the relative distance Dis ov to set a range that the robot starts to check possible collisions.When the relative distance with an obstacle is longer than Dis ov , the possibility of collision with an obstacle is not checked, and the robot will keep moving on the DPL until its relative distance with the obstacle is less than or equal to Dis ov .

Position for
Returning to DPL.After passing by the obstacle, the robot must return to the DPL. Figure 11 shows the robot passing by an obstacle.Points A, B, and C represent three typical situations.At point A, the robot has not yet passed by the obstacle, and it has to keep its velocity in the y l direction, or possibly increase speed if the obstacle increases its velocity.Point B is the critical point, wherein the relative velocity vector Ẋorl is perpendicular to the relative position vector X rol , and the robot is just passing the obstacle.The robot cannot start to turn back to the DPL at point B because decreasing speed here may result in a collision with the obstacle in the next time step.Point C is the intersection of two tangent lines of the obstacle circle, one parallel to the relative velocity Ẋorl , and the other parallel to the y l axis.Point C is safe since changing the speed of the robot in the y l direction at point C does not cause a collision with the obstacle.The β angle between Ẋorl and X rol at point C is It is possible for the robot to start returning to the DPL at any point between B and C. The robot can still collide with the obstacle if ẏl changes too fast, or if the obstacle changes velocity.The relative velocity vector Ẋorl from the point robot should not intersect the obstacle circle when the robot returns to the DPL.The robot has to keep moving with the same velocity in the y l direction until β ≥ β c .

Motion in y l
Direction.The robot motion in the y l direction is classified into three categories: (1) increase (or decrease) ẏl to achieve β < α, (2) keep ẏl when α < β < β c , (3) decrease (or increase) ẏl to return to the DPL after it passes the obstacle.
When the relative distance with an obstacle is within Dis ov , the robot starts to check collisions.It starts to increase (or decrease) the speed in the y l direction if β < α.The velocity in the y l direction is conditionally calculated as If β > α but β < β c , the robot will maintain its speed in the y l direction until it reaches the position of returning to the DPL (β = β c ).The robot will not decrease its speed before that because the obstacle might change its velocity in the next step; this avoids zigzag motions in the y l direction.
After reaching the position of returning to the DPL (β = β c ), the robot starts to decrease (or increase) its velocity in the y l direction to return to the DPL.ẏl is accelerated in the direction of returning to DPL.The direction of acceleration will be reversed when a robot is near the DPL so that ẏl can end at zero when the robot reaches the DPL (y l = 0).The velocity in the y l direction after the robot reaches the position of returning to the DPL is conditionally calculated as follows: From Figure 11, we can see that angle β is changed from less than π/2 to greater than π/2 when the robot passes by an obstacle.The value of the dot product of X rol and Ẋorl will change from positive to negative when the robot passes by the obstacle.

Multiple Obstacle Avoidance.
Multiple obstacle avoidance can be categorized into (1) avoiding collisions with obstacles one-by-one and (2) avoiding collisions at the same time.Group (1) cases can be handled sequentially with the above method.For Group (2), when the robot is avoiding an obstacle, other obstacles move within Dis ov .The strategy used in multiple obstacle avoidance is to determine the robot motion by checking all obstacles that are within Dis ov .The position of leaving the DPL and robot motion in the y l direction is determined by the obstacle that first appears within Dis ov with β < α.When the second obstacle also has β < α, the robot will modify its motion, trying to avoid collisions with both obstacles.The position of returning to the DPL is also affected by all obstacles within Dis ov of the robot.
As an example, obstacle 1 is assumed to enter within Dis ov first.The robot starts to increase the velocity in the y l direction to force the relative velocity with obstacle 1 Ẋorl1 out of collision range determined by α 1 .Then, obstacle 2 enters within Dis ov .At the moment shown in Figure 12, though Ẋorl1 is already out of the collision range, as Ẋorl2 is still in the collision range determined by α, the robot will keep increasing its velocity in the y l direction until Ẋorl2 is out of the collision range.
The multiple obstacle-avoidance algorithm is summarized as follows.
(1) The x l motion along the DPL is the same as that from single obstacle avoidance.
(2) Checking collision range: for all moving obstacles with X rol • Ẋorl < 0, if the relative robot/obstacle distance is less than Dis ov , the robot starts checking collisions.
(3) Leaving DPL position: the robot leaves the DPL if any of the obstacles within the checking collision range meets the condition β < α.The robot will increase ẏl when u vl (y) > u pl (y) relative to that obstacle and decrease ẏl in the opposite case.
(4) If any of the obstacles within the checking collision range satisfies the condition β < α, the robot will keep increasing (or decreasing) ẏl until β > α.
(5) The robot will keep its velocity in the y l direction if α ≤ β < β c for all the obstacles within the check collision range.
(6) Returning to DPL: when β > β c (for all the obstacles within the check collision range) and |y l − y lA | > 0, the robot will decrease (or increase) ẏl to return to the DPL according to (12).

Simulation and Experimental Setup.
We developed a simulink model for dynamic obstacle-avoidance simulation.The methods of this paper were used in conjunction with the developed controller (Figure 3) and coupled nonlinear dynamics model (2).Some details are missing in this paper due to lack of space: all motions are subject to practical kinematic and dynamic constraints via novel velocity and acceleration cones [25]; these were implemented in simulink to avoid velocities beyond the robot kinematic capabilities and to avoid accelerations leading to actuator saturation or wheel slippage.The same simulink model was then used to control the experimental mobile robot, using a PC with a Quanser MultiQ-3 board and Wincon 3.1 software, with cables for communication.The coupled nonlinear dynamics model ( 2) is replaced by the real robot hardware, but the same controller is used.A machine vision system senses in real time the position of the robot and obstacles (from which the translational velocities are derived from previous steps).Our three-wheeled omnidirectional robot moves on a carpeted field as shown in Figure 13.A colored ball serves as the obstacle, moved by hand (via a long darkened handle, not shown) in the robot field.The hardware control diagram is Figure 14.
The velocity of an obstacle is required as an input for the moving obstacle-avoidance algorithm.One way to obtain the velocity signal is to use a numerical differentiation formula or the Simulink differentiation block, but this leads to a noisy signal.Instead, we applied a low-pass filter velocity estimation algorithm.As seen in Figure 15, this estimation method yields much smoother velocity for feedback than the differentiation block; this is an experimental result where the obstacle was moved by hand in a sinusoidal pattern.
Next, we present simulation and experimental validation examples for static and moving obstacle avoidance; we also present a simulation of multiple moving obstacle avoidance.
For more examples and simulation/experimental validation, see Wu [23]   avoidance with zero obstacle velocity.Table 1 shows the static obstacle avoidance simulation data (in SI units).Figure 16(a) shows the static obstacle avoidance simulation results with the conditions of Table 1.The obstacle is placed at constant position x w = 0.44, y w = 0.6.The robot is commanded to move from starting point (x w = 0.95, y w = 0.05) to destination point (x w = 0.05, y w = 0.9) along a straight line with a motion pattern in which the robot accelerates to v = 0.6 m/s with a = 1.5 m/s2, maintains that speed for 2.5 seconds (by (3.2.1)), and decelerates to stop at the destination point.
A hardware static obstacle-avoidance experiment was performed with the same conditions as the simulated case.The results are shown in Figure 16(b).The actual path is compared with the commanded path (generated by the algorithm in real-time, not preplanned), and the vision signal of the obstacle is displayed.We see that the simulated and experimental mobile robot paths are similar and both successfully avoided the static obstacle.In Figure 16(b), we also see that the actual path follows the commanded path well, indicating that our hardware controller development is effective to compensate for the wheel coupling and nonlinear dynamics effects.Also, the static obstacle position signal is steady from the machine vision system.

Example 2:
Moving Obstacle Avoidance.Table 2 shows the data (in SI units) for moving obstacle-avoidance simulation.
Figure 17(a) shows the moving obstacle-avoidance simulation results with the conditions of Table 2.The robot is commanded to move from starting point (x w = 0.95, y w = 0.05) to destination point (x w = 0.05, y w = 0.9) along a straight line with the motion pattern in which the robot accelerates to v = 0.6 m/s with a = 1.5 (m/s 2 ), maintains that speed for 2.5 seconds (by (3.2.1)), and decelerates to stop at the destination point.The obstacle starts at (x w = 0.88, y w = 0.88) at t = t A , with speed 0.2 (m/s) and direction 3π/4 rad with respect to the x w axis.The robot  effectively avoids the moving obstacle by increasing the speed in the y l direction.After the robot passes by the obstacle, it returns to the DPL and continues motion along it until the destination point.Sequential robot and obstacle positions in Figure 17(a) represent different snapshots in time, so we see there were no collisions in simulation (robot and obstacle motion is right to left in Figure 17(a)).
A hardware moving obstacle-avoidance experiment was performed with the same conditions as the simulated case; the results are shown in Figure 17(b).The actual experimental path on the right (generated by the algorithm in real-time, not preplanned) compares well with the simulated path on the left.Since the experimental obstacle is moved by hand, it is difficult to exactly match the simulated obstacle motion; the vision signal of obstacle motion is displayed on the right.We see that the simulated and experimental mobile robot paths both successfully avoided the moving obstacle.

Example 3:
Multiple Moving Obstacles Avoidance.As a final example, we present a simulation of the mobile robot avoiding multiple obstacles.No experimental results are given in this case, since our experimental obstacles are guided by hand.Three obstacles are arranged to get close to the DPL when the robot travels to a destination point on the field.We focus on a Group (2) case, wherein more than one obstacle is in the check collision range at once. Figure 18 is an example of multiple obstacle-avoidance simulation, in which the robot effectively avoids collisions with multiple obstacles.The data for simulation are in Table 3 (SI units).
Obstacles 1 and 3 are moving, while obstacle 2 is static.As shown in Figure 18, the motion of the robot in the y l direction is first determined by obstacle 1 (snapshots 5 and 6).Instead of returning to the DPL, the robot maintains its velocity after it passes obstacle 1 as obstacle 2 has already entered the checking collision range with β < α (snapshots 7, 8, and 9).The robot returns to the DPL after passing the static obstacle (snapshots 10 and 11).Instead of slowing down to return to the DPL, the robot passes through the DPL, as obstacle 3 enters the checking collision range with β < α.The robot maintains the speed (snapshots 12 and 13) until it passes obstacle 3 (snapshots 14 and 15).Snapshot numbering is left-to-right and top-to-bottom.
This example is among those that the robot avoids collisions with multiple moving and static obstacles.However, successful obstacle avoidance is not always possible.Under some conditions, the robot is not able to realize multiple obstacle avoidance by the developed algorithm;  this is discussed in the next section on limitations of our methods.

Limitations of the Dynamic Obstacle-Avoidance Method
Assuming that the obstacle is not so large as to violate the practical robot kinematic and dynamic constraints (or placed too close to the destination point) and that the experimental system is functioning properly, the static obstacle-avoidance algorithm should work in all cases.In this section, we discuss the limitations of our moving obstacle-avoidance algorithm.
The algorithm is real time, the obstacles' motions are not preknown (we assume the obstacle motion limits are similar to the robot's), and obstacles can change velocities during motion.

Velocity and Acceleration Limits of the Obstacle.
With the developed algorithm, it is possible that robot cannot avoid collisions if the velocity and the acceleration of the obstacle in the y l direction are higher than those of the robot.As shown in Figure 19, l 1 and l 2 are two tangent lines of the obstacle circle parallel to the y l axis in DPL coordinates.Point A is the intersection of the DPL and l 1 , and B is a point on the DPL between l 1 and l 2 .Suppose that the velocity of the obstacle in the y l direction is zero when the robot is at point A. The robot moves along the DPL as β ≥ α at point A.
When the robot is at point B, if the obstacle starts to increase its velocity in the y l direction with an acceleration higher than the maximum acceleration of the robot, and maximum velocity in the y l direction higher than that of the robot, the robot is not able to avoid a collision with the obstacle.
Failure of avoiding collisions with the obstacle is because the obstacle y l motion ability is higher than that of the robot, and the motion of the obstacle is not preknown.If the motion of the obstacle is preknown, it is still possible to plan a path to let the robot reach the destination point within a fixed time while avoiding the collisions with the obstacle.
From the above discussion, we conclude that for single obstacle avoidance, the maximum velocity and maximum acceleration of the obstacle in the y l direction should be lower than (or equal to) that of the robot, ẏoblmax ≤ ẏl max and ÿobl ≤ ÿl max .Since the robot moves with constant x velocity for most of the time along the DPL (except near starting or destination points), the acceleration condition is rewritten as ÿobl ≤ a max , where a max is the maximum robot acceleration.
The first condition is rewritten as ẏoblmax ≤ v 2 max − ẋ2 l , where v max is the maximum robot velocity and the planned robot velocity in the x l direction is ẋl .If the obstacle moves perpendicular to the DPL, we have v ob ≤ v 2 max − ẋ2 l and a ob ≤ a max , which can be considered as the limitation of the acceleration and velocity of the obstacle for algorithm success.In our simulation and experimental study (Section 4), we used v ob ≤ ẋl max = ẏl max = ( √ 2/2)v max .In real applications, if it is necessary to avoid collisions with obstacles having higher velocities than the robot, we must decrease the velocity of the robot in the x l direction (thus extending the motion time period).

Failure Cases in Multiple Obstacle
Avoidance.If the velocity and acceleration of the obstacle are limited as in Section 5.1, the developed algorithm can effectively avoid collisions with single obstacles.However, for multiple obstacles, there are still some cases in which the robot cannot avoid collisions with the obstacle.One case is that the robot increases its velocity in the y l direction to avoid collisions with one obstacle.When the robot is at its maximum velocity in the y l direction, a second obstacle appears in the checking collision range.In order to avoid collisions with the second obstacle, the robot has to increase its velocity in the y l direction, but the robot has already reached its maximum velocity.Another case is that when the robot has to increase its velocity in the y l direction for avoiding the first obstacle, the second obstacle appears in the checking obstacle range, which requires the robot to decrease its velocity in the y l direction.This also results in the failure of collision avoidance with the second obstacle.These failures are due to the fact that obstacles' motions are not preknown and the robot motion along x l is fixed due to the fixed time requirement.A path to the destination point in fixed time is not guaranteed when there are more than one obstacle within the checking collision range near the DPL.In such collision avoidance failures, the robot must halt, waiting until it can try for point B again, with a new starting point A.
5.3.Failure Cases Observed in the Experiment.Four failure modes were observed in the experiment.First, sometimes the robot cannot react to the motion of the moving obstacle; later, we found (by monitoring the vision signal) this is because the vision system did not give the correct signal of the moving obstacle, as the hand and arm moving the obstacle is sometimes visible.This was largely eliminated after we paid attention to the vision range.Secondly, if we move the obstacle too fast, the robot will try to avoid the collision with the obstacle behind the motion of the obstacle.This is a correct reaction in the developed algorithm.However, the tethered wires of the robot interrupt the vision signal or sometimes interfere with a static obstacle, which results in failure cases.This is not an issue for untethered mobile robots.Thirdly, if we move the obstacle too fast (exceeding the velocity limitations discussed in Section 5.1), the robot could not completely avoid collisions.However, we still can see that the robot correctly reacts to the motion of the moving obstacle as best it can.Fourthly, if we move the obstacle differentially to hinder the robot for a relatively long time, the robot could possibly get no chance to reach the destination position, as the field is relatively small.Because the experimental study for moving obstacle avoidance was only performed for a single moving obstacle (the method handles any number of moving obstacles; up to eight have been simulated (not shown in this paper)), few failure cases were observed.Certainly, additional failure cases would arise in experimental multiple moving obstacle avoidance, which is planned for the near future.

Conclusion
A novel hybrid real-time approach has been developed for mobile robot motion planning focusing on moving obstacle avoidance.A global deliberate approach has been applied to the motion along the desired path line (DPL), while a local reactive approach is used to avoid the collisions with obstacles.The motions were subject to kinematic and dynamic constraints expressed by novel velocity and acceleration cones to avoid velocities and accelerations the robot cannot achieve due to kinematics, actuator saturation, and wheel slippage (these were not presented, see [25]).A coupled nonlinear dynamics model and controller were summarized for holonomic three-wheeled omnidirectional mobile robots.
The reactive approach applied to local motion planning used relative velocity between the robot and obstacles to detect and avoid collisions.In addition, instead of using all the global information in the field, the collision detection only uses local information within a range surrounding the robot.Furthermore, with the developed approach, there is no trapping of the robot by local minima and no undesired influence by the obstacle when the robot passes by (these drawbacks are characteristic of the widely applied potential field method of obstacle avoidance).
A fixed time problem has been implemented; that is, the robot strives to reach its goal in a given time, while avoiding obstacles.The method generally handles any obstacle motions (as long as the motion characteristics of the obstacles are similar to the robot), which are not preknown, and obstacle motion can change during the process.A machine vision system senses the obstacles' motions for use in the algorithm.We have identified limitations of our method, both algorithmic and experimental.Simulation with experimental validation have shown the effectiveness of the developed approach for moving obstacle avoidance by a mobile robot in an unknown changing environment.

Figure 5 :
Figure 5: Mobile robot in dynamic environment with moving obstacles.

Figure 11 :
Figure 11: Position for returning to DPL.