Abstract
An efficient path planning algorithm, for multi degrees of freedom manipulator robots in dynamic environments, is presented in this paper. The proposed method is based on a local planner and a boundary following method for rapid solution finding. The local planner is replaced by the boundary following method whenever the robot gets stuck in a local minimum. This method was limited to 2-DoF mobile robots and in this work we showed how it can be applicable for a robot with n degrees of freedom in a dynamic environment. The path planning task is performed in the configuration space and we used a hyperplane in the n dimensional space to find the way out of the deadlock situation when it occurs. This method is, therefore, able to find a path, when it exists, no matter how cluttered is the environment, and it avoids deadlocking inherent to the use of the local method. Moreover, this method is fast, which makes it suitable for on-line path planning in dynamic environment. The algorithm has been implemented into a robotic CAD system for testing. Some examples are presented to demonstrate the ability of this algorithm to find a path no matter how complex is the environment. These examples involve a 5-DoF robot in a cluttered environment, then two 5-DoF robots, and finally three 5-DoF robots. In all cases, the proposed method was able to find a path to reach the goal and to avoid the dynamic obstacles.
Introduction
Path planning is a very important issue in robotics. It has been widely studied for the last decades. The first works began in the seventies with Udupa (Udupa, S. 1977), then with Lozano-Pérez and Wesley (Lozano-Pérez, T. & Wesley, M. 1979) who proposed solving the problem using the robot's configuration space (CSpace). Since then, most of path planning important works are carried out in the CSpace. There are two kinds of path planning methods: Global methods and Local methods. Global methods (Paden, B.; Mess, A. & Fisher, M., 1989; Lengyel, J.; Reichert, M.; Donald, B. & Greenberg D., 1990; Kondo, K., 1991) act generally in two stages. The first stage, which is generally done off-line, consists of making a representation of the free configuration space (CSFree). There are many ways proposed for that: the octree, the Voronoï diagram, the grid discretization. The representation built in the first stage is used in the second one to find the path. This is not very complicated since the CSFree is known in advance. Global methods give a good result when the number of degrees of freedom (DoF) is low, but difficulties appear when the number of DoF increases. Moreover, these methods are not suitable for dynamic environments, since the CSFree must be recomputed when the environment changes. Whereas, local methods are suitable for robots with high DoF used in real time applications. The potential field method proposed by Khatib (Khatib, O., 1986) is one of the first local methods. It assumes that the robot evolves in a field of strain attracting the robot to the desired position and pushing its parts away from obstacles. Because of its local behaviour these methods do not know the whole robot's environment, and can easily fall in local minima where the robot is stuck into a position and can not evolve toward its goal. Constructing a potential field with a single minimum located in the goal position, is very hard and seems to be impossible, especially if there are many obstacles in the environment.
Faverjon and Tournassoud proposed the constraint method (Faverjon, B. & Touranssoud, P., 1987), which is a local method yielding remarkable results with high DoF robots. However this method suffers also from the local minima problem.
Probabilistic methods were introduced by Kavraki
Mediavilla
Helguera
Simon (Simon X. Yang 2003) used a neural network method based on biology principles. The dynamic environment is represented by a neural activity landscape of a topologically organized neural network, where each neuron is characterized by a shunting equation. This method is practical in the case of a 2-DoF robot evolving in a dynamic environment. It yields the shortest path. However, the number of neurons grows up exponentially with the number of DoF of the robot, which makes this method infeasible for realistic robots.
In this paper, we propose to solve the path planning problem for many manipulator robots evolving in a dynamic environment using a real time local method. This approacch is based on the constraints method coupled with a procedure to avoide local minima by bypassing obstacles using a boundary following strategy. Section 2 describes the local method used by the planner. In section 3, the boundary following method and the projected constraints are presented. The results are shown in section 4. Finally we give some concluding remarks in section 5.
Local Method
In our planner, we use a local method based on an optimization under constraints process.
It is an iterative process minimizing, at each step, the difference between the current configuration of the robot and the goal configuration. When there is no obstacle in the way of the robot, we consider that it evolves toward its goal following a straight line in the CSpace. The displacement of the robot is written as follows:
Where
Where Δ
With
Fig. 1 shows two mobile objects in the same environment. The non collision constraints, taking into account the velocities of objects, are written as:

Two objects evolving together
Where
If we consider only the velocity of the robot, and by introducing the Jacobian matrix of the robot defined in the nearest point to the obstacle, we can write the non collision constraints as:
Where
with
Fig. 2 shows two PUMA robots evolving together. We consider that each robot is controlled separately. In that manner, each robot is considered as a moving obstacle by the other robot. The motion of the two robots verifies the following relations:

Two PUMA robots working in the same environment
Where
While adding the two conditions of equation (8), we notice that the non collision constraint defined by (5) is satisfied. So with a suitable choice of parameters ξ,
We can formulate then the planning problem as follows:
The local planner can be represented by an optimization problem of a nonlinear function of several parameters, subject to a system of linear constraint equations. In order to solve this problem, we use Rosen's gradient projection method described in (Rao, S.S., 1984).
When the solution of the optimization problem Δ
In the next section, we define the direction and the subspace used by the boundary following method.
Before explaining the method in the general case of an n-DoF robot, we present it for the 2D case. The proposed approach to escape from the deadlock situation, is based on an obstacle boundary following strategy.
The 2 D case
This method was first used in path planning of mobile robots (Skewis, T. & Lumelsky, V. 1992; Ramirez, G. & Zeghloul, S., 2000). When the local planner gets trapped in a local minimum (see fig. 3), it becomes unable to drive the robot further. At this point the boundary following method takes over and the robot is driven along the boundary of the obstacle until it avoids it.

Two possible directions to bypass the obstacle in the case of a 2DOF robot
The robot in this case has the choice between two directions on the line tangent to the obstacle boundary or on the line orthogonal to the vector to the goal (fig. 3). It can go right or left of the obstacle. Since the environment is dynamic and unknown in advance, we have no idea whether going left or going right is better. The choice of the direction is made randomly. Once the obstacle is avoided the robot resumes the local method and goes ahead toward the goal configuration.
If the boundary following method drives back the robot to the original deadlock position, one can conclude that there exists no feasible path to reach the goal (fig. 4) and the process is stopped.

The case where there is no feasible path to the goal
Fig. 5 shows the two feasible paths leading the robot to the goal position. Each path corresponds to one choice of the direction of the motion to follow the boundary of the obstacle. Therefore, and since the environment can be dynamic, the choice of the direction left or right is made once and it stays the same until the goal is reached. This unique choice guarantees a feasible path in all situations whenever a deadlock position is found by the local planner (even if in certain cases the choice seems to be non optimal).

If a solution exists any chosen direction will give a valid path
In the case of a 3-DoF robot, the choice of a direction avoiding the obstacle becomes more complicated. Indeed, the directions perpendicular to the vector pointing toward the goal configuration are on a hyperplane of the CSpace, which is, in this case, a plane tangent to the obstacle and normal to the vector pointing to the goal position (fig. 6).

Plane of possible directions
This plane will be called TCplane (Tangent C plane). The path planner can choose any direction among those included in this plane. As in the case of 2-DoF case, we have no idea about the direction to choose in order to avoid the obstacle. In this case, an earlier method, proposed by Red
This method is applicable only to the primary 3-DoF case when the 3D graphical model can be visualized. Also, the user can chose paths using only the primary DoF, which eliminates other possibilities using the full DoF of the robot. Moreover, this method cannot be applied in real time applications.
One possible strategy is to make a random choice of the direction to be followed by the robot in the TCplane. This strategy can lead to zigzagged paths and therefore should be avoided. In our case, whenever the robot is in a deadlock position, we make it evolve toward its upper joint limits or lower joint limits, defined by the vector

Plane used to bypass the C Obstacle
In the general case of robots with many DoF, the TCplane is now a hyperplane which is normal to the vector pointing from
U2 is the vector that defines the direction used by the robot in order to avoid the obstacle. Let V be a vector given by:
Where
U2 is the unit vector orthogonal to U1 and located in the plane (U1, V) (fig. 8). U2 is given by:

Definition of the vector U2
While avoiding the obstacle, the robot will move in the defined subspace (P), and Δ
Where, Δ
Whenever an object is detected by the robot, which means that the distance between the robot and the object is less then the influence distance, a constraint is created according to equation (7). Constraints are numbered such that the i
If we replace Δ
The projected constraints are written as
with
In order to escape from deadlocks, we follow the projected constraints corresponding to the obstacles blocking the robot. To do so, we use the Boundary following method described in the next section.
This method uses the the distance function defined as:
which is the distance from the current position of the robot to the goal position. The value of the distance function is strictly decreasing when the robot is evolving toward its goal using the local planner. When a deadlock is detected, we define Initiate the parameters A Evaluate the distance function. If it is less than Find and update the followed constraint A Find the vertex enabling the robot to go around the obstacle Move the robot and go to step 2
Fig. 9 shows the followed vertex Δ

Boundary following result
Where
At each step the algorithm tracks the evolution of the followed constraint among the set of the projected constraints. The tracked constraint is the one maximizing the scalar product with A
In certain cases the resultant vertex Δ

Constraint switching

Illustrating example
Fig. 11 shows the case of a point robot moving from point
Therefore, the boundary following module is activated again until point D is reached, which corresponds to a distance from the goal equal to
In order to evaluate the efficiency of the method, we present several examples. All the simulations have been performed on a robotic-oriented-Software named SMAR (Zeghloul, S.; Blanchard, B. & Ayrault, M. 1997).
This software is made of two modules: a modeling module and a simulation module. The modeling module is used to generate a model of the robots in their environment. The simulation module is used to simulate the motion of the robots and the obstacles. This method was added to the simulation module. All the following examples were simulated on a Pentium III 1.2 Ghz. Path planning was performed in real time and did not slow the motion of the robot compared to the case without obstacles.
The first example is made of a single 5-DoF robot in a cluttered environment (fig. 12). The ladder shaped obstacle does not allow the object to go through it, unless it is set in an appropriate orientation. In doing so, the robot follows the boundary of the obstacle until it gets in a configuration where there is no risk of collision and the local planner takes over the control of the robot to drive it safely to its goal position. These results can not be reached by using only the local planner.

Results using 5-DOF robot in a cluttered environment
The second example is made of two 5-DoF robots each one of them is taking an object from one initial position to a final one (fig. 13). In doing so, the two robots come closer to each other and they have to avoid collision. Frames 4, 5 and 6 show the two robots following the boundary of each other by keeping the security distance. This task would not be possible if we used only the local planner, because it would be stuck as soon as two faces of the two objects become parallel, which is happening in Frame 3.

Results using two 5-DOF robots
Fig. 14 shows the results using three PUMA robots. Each one of the three robots considers the two others as moving obstacles. Each robot moves toward its goal, once a deadlock position is detected, the robot launches the boundary following method. Until Frame 3 the local planner is active for the three robots. As soon as the robots get close to each others the boundary following module becomes active (Frame 4).

Results using three PUMA robots
When each robot finds a clear way to the goal the local planner takes over (Frame 13) to drive each robot to its final position.
In these simulations, robots anticipate the blocking positions. If the module of the joint velocity given by the local method is less than 30% of the maximum joint velocity, the robot starts the boundary following method. Elsewhere, the boundary following method is stopped and local method is resumed when the distance function is less then 80%
These values are found by performing some preliminary simulations. Anticipating the deadlock position makes the resultant trajectories smoother, as the robot does not wait to be stopped by the deadlock position in order to begin the boundary following method.
This work presents a novel method for path planning suitable for multi-DoF robots. This method is a combination of the classical local method and the boundary following method needed to get out the robot from deadlock positions in which the local method gets trapped.
The local path planner is based on non-collision constraints, which consist of an optimization process under linear non-collision constraints. When a deadlock is detected, corresponding to a local minimum for the local method, a boundary following method is launched. Similar method can be found for 2D cases, and we show in this work how it can be applied to the case of multi-DoF robots. When the robot is stuck in deadlock position, we define the direction of motion of the robot, in the configuration space, as the intersection of a hyperplane, called TCplane, and a plane defined by the vector to its goal and a vector to its joint limits. This direction of motion allows the robot to avoid the obstacle by following its boundary until it finds a path to the goal which does not interfere with the obstacle. Starting from this point the classical local planner takes over to drive the robot to its goal position.
This method is fast and easy to implement, it is also suitable for several cooperating robots evolving in dynamic environments.
