Abstract
In this paper, an on-line path planner for an industrial manipulator is presented. The proposed control architecture is capable of driving the manipulator in its environment while avoiding collisions. Potential fields are used in order to control the joint velocities in such a way that the robot avoids the obstacles. We also propose a new weighted pseudoinverse matrix that improves the manipulator capability of finding feasible paths to move around obstacles and pass through narrow corridors without relying on the manipulator dynamic model. The proposed technique fits to both redundant and non-redundant manipulators. Experimental results show the effectiveness of the proposed solution.
1. Introduction
It is well-known that robotic manipulation is an established technology widely diffused in industry. Nevertheless, in recent years, the necessity for lean production makes it desirable to have robots with a certain degree of autonomy. In this context, the manipulator capability of autonomously taking some decisions by avoiding reprogramming off-line robot tasks each time is a key issue in the production process (e.g., replan the trajectory when moving pieces with different sizes).
Hence, developing a path planner capable of making a manipulator arm move in its environment by avoiding collisions is of significant concern. Bearing in mind that one of the goals is to avoid off-line reprogramming, a computationally light planner is desirable so that the trajectory can be modified at run time. Moreover, for an industrial robot, it is quite common to have very efficient and reliable velocity feedback control loops embedded in each motor drive and it is not always possible to open the velocity feedback control loops in order to directly control the motor torques. Thus, a purely kinematic control system whose output is a reference signal for each single motor velocity feedback control loop, instead of a torque signal, is preferable to implement in practical cases. Moreover, in this way, many local problems, such as friction compensation, are resolved in the motor inner control loops. Path planning and obstacle avoidance in a known environment have received much interest in recent years (see, for example, [LZR00, Vis00, DV03]). Many solutions have been proposed in the literature in order to solve these problems. They can broadly be divided into two main approaches: global strategies and local strategies.
The global solutions are commonly based on an off-line computation of a collision-free path from an initial configuration to the desired one [LP83, Lat91, LaV06]. Despite the desirable completeness property
Alternatives to the global approach are local techniques. They are less computationally demanding and thus preferred for on-line application. Basically, they are based on the definition of potential fields in the robot operational space. The obstacles are surrounded by repulsive potential fields and the goal position is represented by an attractive potential field. Hence, the potential fields push the manipulator links away from obstacles, thus avoiding collisions, while driving the manipulator end-effector toward the goal position. Even though local techniques are not complete, they are suitable for industrial applications. Indeed, it has to be considered that a typical industrial environment is not so complex (compared to typical research environments such as labyrinths or multidimensional bug traps) and can be well described via simple geometric shapes. As a matter of fact, in these kinds of environments, local techniques are capable of finding a feasible path while remaining far more suitable for computation.
Two different types of local techniques have been proposed in the literature. The first class is based on the joint torque control [Kha83, Kha86, VK90, ASZK98]. Artificial potential fields are used to exert virtual forces on the manipulator links (
The second class of local techniques also uses the potential fields, but to calculate the joint velocity reference signals in order to reach the goal position along a collision-free path. In this context, the manipulator redundancy is exploited to avoid collisions by controlling the joint velocities in the manipulator nullspace [MK85, KK92, AHK93, CK96, ITZ+06, LWY09]. In these works, in order to let a certain point on the robot move at a given velocity, the Moore-Penrose pseudoinverse is used. This solution leads to unnatural manipulator behaviour reducing the manipulator capability of turning around obstacles [PP11]. Moreover, using the nullspace to avoid obstacles cannot completely ensure collision avoidance.
A different local approach is the dynamical system-based technique proposed in [KZB12a, KZB12b]. First, the dynamical system describing the manipulator behaviour is derived and then it is modified to avoid collisions. The system is modified accordingly to the given analytical functions describing the obstacles as smooth and non-convex surfaces. Even though these techniques seem promising, from an industrial point of view the derivation of a dynamic model seems difficult.
The solution proposed in this paper uses the potential fields in order to control the joint reference velocities. The collision avoidance control system acts on each link, even in the manipulator nullspace (
In order to allow the proposed system work properly, a new pseudoinverse matrix is introduced. The computation of the new pseudoinverse only requires kinematic information (that is commonly known in industrial environments) and increases the manipulator capability of moving around obstacles. Both simulation and experimental results prove the effectiveness of the proposed solution.
The paper is organized as follows: in Section 2, the obstacle avoidance technique is presented, while the goal position following system is described in Section 3. The new weighted pseudoinverse is proposed in Section 4, and Section 5 is devoted to illustrative simulation examples. In Section 6, experimental results are presented, and conclusions are drawn in Section 7.
2. Obstacle avoidance
The proposed solution is aimed at making the manipulator autonomously navigate toward the goal end-effector position along a collision-free path. Being an on-line path planner, the path is not computed in advance, but at run time, while the manipulator is already executing the required task. Each link, when close to an obstacle, feels the virtual repulsive potential field surrounding the obstacle. This field is used to compute a reference signal for the joint velocity feedback control loops in order to make the link move away from the obstacle surface. Along the same line, the end-effector is pulled toward the goal position by making it move at a certain velocity depending on a given potential field surrounding the goal position. The desired end-effector velocity is then translated into reference signals for the joint velocity feedback control loops.
All the joint velocity terms are finally added. This means that the real end-effector velocity also depends on all the desired link velocities (to make them escape from obstacles) and vice versa.
It is worth stressing that once the desired operational space velocity for a certain point along the manipulator kinematic chain has been computed, this request can be fulfilled by using different joint velocities. Given a general point along the manipulator kinematic chain, we propose here a solution to choose the desired joint velocities in such a way that leads to good results, without involving the knowledge of the manipulator dynamic model.
2.1. Distance and repulsive potential fields
Even though this work is focused on the control system and the solution proposed in the following paragraph is rather general and does not depend on the way the distance and the potential field are defined, a brief discussion about distances and potential fields may help the reader to better understand the following sections. Please note that within the same control strategy, other potential fields and different notions of distance could be used instead of the ones proposed hereafter.
In the literature, several potential field formulations exist, but two main approaches have been proposed: it is possible to define the repulsive potential field using a superquadratic function [VK90] or a harmonic function [KK92]. Actually, using harmonic functions has a great advantage for mobile robots, since local minima are avoided. However, it is not very useful for manipulator arms where there are several points controlled by the potential fields, in addition, it is much more complex and computationally heavier. Indeed, it is worth noting that in the case of industrial manipulators, being in general relatively simple environments, it is quite unusual to get the end-effector trapped in a local minimum depending on the fields acting on it. On the contrary, it is more realistic to get the whole robot trapped in local minima depending on the superposition of the effects of the repulsive potential fields acting all along the manipulator kinematic chain and the effect of the attractive potential field acting on the end-effector (e.g., the manipulator is trying to surround an obstacle whose perimeter is longer than the manipulator kinematic chain). Bearing this idea in mind, we use here the well-known potential field proposed in [Kha 86]:
where kav, ρ0 and ρ are (respectively) a numeric constant, the limit distance of the potential field influence and the distance between a certain point where the potential fields is calculated and the obstacle. In order to calculate the desired velocity for a certain point
Evidently the concept of potential field is intimately related to the concept of distance. Indeed, in order to compute the effect of a given field on a given point along a given link, we must know the distance between the link and the obstacle surrounded by the field. However, calculating the distance between an obstacle and a manipulator link could be quite complex unless the geometry of the obstacle itself is relatively easy. But this is exactly the typical case of an industrial environment Moreover in many cases, instead of using the Euclidean distance, we can use a pseudodistance a approximating the obstacle shape with a superquadratic surface [Pas01, PPD02]. Furthermore using superquadratic surfaces to approximate the obstacle shapes, allows a fast and automatic computation of the distance between a given link and the obstacle
Note that the use of superquadratic surfaces may reduce the real feasible space. While this is a major drawback in the case of a mobile robot navigating in hypercluttered environments, from an industrial point of view this is acceptable and it actually increases the safety margins.
2.2. Control system
Now that a potential field and a method to compute the distance between obstacles and links (they are taken from the literature and they are not the only usable approaches) have been defined, we can describe the obstacle avoidance control system. In order to avoid collisions, the virtual potential fields are used to change the joint reference velocities. The repulsive fields act on some control points called

The control system block scheme.
As stated before, we use the repulsive field to control the manipulator joint velocities. Hence, each control point is a velocity controlled point whose desired velocity depends on the repulsive potential fields surrounding the obstacles according to (2). In order to calculate the desired velocity for the
where kav and ρ0 are (respectively) the intensity of the repulsive potential field and the limit distance of the potential field influence (both parameters to be tuned); ρi is the distance between the
In the case of multiple obstacles, the same procedure should be applied to every obstacle in the environment and for each control point.
Once the desired velocity for each control point has been computed, the requirement should be translated into desired joint velocities to be used as reference signals for the joint velocity loops. Given a single
As it will be shown in the next section, the end-effector is controlled by a different system, called a goal position following system, that is used to compute the desired operational space velocity. This request, again, is translated via Jacobian pseudoinversion into a joint velocity additional term.
All the joint velocity terms are eventually added in order to obtain reference signals for the joint velocity feedback control loops. This solution is summarized by the control scheme represented in Figure 1.
It is worth stressing that because reference signals are finally computed as the summation of
3. End-effector control
In order to make the end-effector reach the goal position, two proportional controllers are used, one for the position xp and another for the orientation xa. Let xgoal be the goal generalized position (
The position following controller is described by this simple equation:
where kv is a control parameter used to tune the controller.
For the end-effector orientation, a more complex solution has been developed. It is known that once two different configurations of a rigid body (
where
Note that (6) may become singular (e.g., when the pitch of the skew motion is null). In these cases the screw axis can be computed using different formulae [MLS94, Leg00]. Now we have all the necessary information to build the orientation following controller:
where kw is a control parameter for tuning the orientation controller.
Using this equation and (5), we describe the whole end-effector position controller as follows:
The previous equation is simply addressed as
However, this goal position following system, when using fixed control parameters, presents some problems. In fact, an aggressive tuning, when the end-effector is far from the goal configuration, leads to excessive joint velocities. On the other hand, a parameter detuning would lead to a sluggish controller and consequently the robot would take a lot of time to reach the goal configuration.
To overcome this problem, it is possible to increase the coefficients kv and kw when the endeffector is close the goal configuration. In order to do that, we propose a gain scheduling system that tunes the parameters at run time.
This solution has been already used in the literature [ZVL 06].
3.1. Gain scheduling
Let kv0 and kw0 be the initial values of the control parameters, ρ0 the initial distance between the end-effector and the goal position and ρ the distance between the end-effector and the goal position. We can tune up the parameters as follows:
The control parameters are anyway bounded by using the vmax value in order to avoid instability. Using this simple solution allows us to obtain better results, namely, a lower time to execute the task and bounded motor velocities.
In particular, regarding the motor velocities, there is a safety threshold q̇max in order to avoid excessively stressing the joint motors. If a single motor crosses the maximum allowed velocity threshold (in absolute value), the whole vector
4. Weighted pseudoinverse
In order to make the proposed control architecture work properly, an effective pseudoinverse of the kinematic model is needed. In particular, because the control points are generally distributed along the kinematic chain, and not located at the end of it, we are completely free to decide how to move the joints between a given
Let
The most diffused solution in the literature is the classical Moore-Penrose pseudoinverse: let
The Moore-Penrose pseudoinverse is then defined as:
This solution minimizes the joint velocity Euclidean norm ||
The consequence of this behaviour is that bigger joint torques are required because the joints toward the manipulator base see bigger inertiae. Evidently, this is not desirable in an industrial perspective considering that it means increased energy consumption and components stress. Moreover, an unnatural manipulator behaviour is obtained because the joints between the considered
A primary idea to overcome this problem could be to use a weighted pseudoinverse, using the manipulator mass matrix like a metric. This solution would minimize the kinetic energy, thus leaving the last
However, this solution needs a complex dynamic model including all the link dynamic parameters to be developed, thus, for the reasons discussed in the previous sections, it is not suited for industrial applications.
In order to avoid the dynamic model definition, which requires a lot of information on the robot mechanical structure, we have developed a weighted pseudoinverse that leads to suitable results without involving the knowledge of the manipulator dynamic properties, as Figure 2 and Figure 4 show. In order to create the weighted pseudoinverse, we define a 3n × 3n diagonal matrix

The manipulator behaviour using different pseudoinverse Jacobian matrices.

The manipulator fails turning around the obstacle to pass through a narrow corridor using the Moore-Penrose pseudoinverse.
Now we define the following matrix
By means of (14), we are ready to define the weight matrix:
This is actually a simplified mass matrix, like the one describing the dynamics of a robot whose masses [w1 … wn] are concentrated at the joints at the end of every link (from 1 to
The new proposed pseudoinverse is then defined by using the
Eventually, we choose the solution that minimizes the virtual kinetic energy of a robot whose mass matrix is
This can be proven using the Lagrange multipliers. Indeed, let O=1/2
where λ is the Lagrange multiplier vector. Differentiating the previous equation with respect to
(16) follows straightforwardly solving the system.
Using this pseudoinverse, we force the manipulator to move in the same way a kinematic chain having all the masses localized at the joints at the end of the links and at the endeffector would do, pushed at the
The
A simple and effective choice is to set every element of
It is worth noting again that this solution never involves the knowledge of the robot dynamic parameters and the calculation of the dynamic model.

The manipulator successfully turns around the obstacle to pass through a narrow corridor using the weighted pseudoinverse.
5. Simulation examples
Several simulations have been performed, in order to test the effectiveness of the proposed technique before implementing it on a real industrial manipulator. In particular, the obstacle avoidance capability has been tested. We tested the capacity of dealing with redundancy with both planar and spatial manipulators, the capability of driving the manipulator through narrow passages and the effect of the weighted pseudoinverse and of the gain scheduling system. During these simulations a perfect joint velocity tracking has been considered. The experimental results proposed in the next section will prove that this assumption is indeed realistic when dealing with industrial servodrives.
5.1. Example 1: Obstacle avoidance
The control system has been first tested on a seven DOF spatial manipulator arm, with the same kinematic structure of the Motoman IA20 robot. This manipulator, as shown in Figure 5, can be seen like two spherical robots, the first three joints and the last three joints (spherical wrist) coupled with a joint (the fourth one) located between the two sphere centres.
Figure 6 shows a simple example of obstacle avoidance: the control system is able to make the manipulator avoid the collision turning around the obstacle.
5.2. Example 2: Narrow passages
As a second simulation, the path planner is required to make the same spatial manipulator move between two ellipsoidal obstacles. Figure 7 shows the capability of the control system to avoid collisions and to pass inside the corridor between the two obstacles. The path planner drives the end-effector, avoiding at the same time collisions between all the manipulator links and the obstacles.
5.3. Example 3: High redundancy
In order to test the capability of dealing with high redundant structures, a seven DOF planar manipulator has been simulated. The robot environment is cluttered with multiple obstacles. The simulation proves the capability of the proposed control system to deal with hyper redundant manipulators, turn around obstacles and deal with several obstacles as shown in Figure 8.
5.3. Example 4: Weighted pseudoinverse
We have also tried to execute the same task of the previous simulation, but using the MoorePenrose pseudoinverse instead of the weighted one we have proposed. Without the weighted pseudoinverse, the path planner fails: it cannot drive the end-effector to the goal position.

The kinematic scheme of a Motoman IA20 manipulator.

An example of obstacle avoidance with a 7R IA20 spatial manipulator.

Capability of passing through narrow passages while moving in three dimensional space.

The path planner is able to drive the manipulator at the goal position using the weighted pseudoinverse.
Figure 9 shows that the manipulator cannot find a feasible path.
5.4. Example 5: Gain scheduling
Finally, we have simulated the same task, the first time with fixed control parameters, the second time using the gain scheduling proposed in this paper. In order to test the gain scheduling effect in depth, we have executed the task keeping the maximum joint velocity bounded under 17 rad/s.
Using the gain scheduling, we have strongly detuned the control parameters (more than 50% less) in order to have lower velocities at the beginning of the task execution. We have also reduced the time needed to complete the same task by more than half (see Figure 10 and Figure 11). This happens because, using the gain scheduling, we have higher velocities when we are already close to the goal configuration.
6. Experimental results
The results shown in the previous section have demonstrated the effectiveness of the proposed solution. In order to have a full confirmation of this, we have tested the proposed solution on a real manipulator. The considered robot is the two DOF planar parallel machine shown in Figure 12. The geometrical characteristics of the robot are reported in Table 1 (refer to Figure 12). As Figure 12 shows, the robot has been heavily loaded with a 10 [kg] mass, mounted on the manipulator end-effector (the
The joints are actuated with a couple of brushless servomotors through a couple of epicycloidal speed reducers. The maximum motor continuous torque is Tmax = 3[Nm], while the maximum peak one is Tpeak=6[Nm]; the speed reduction ration is i = 10 and the speed reducer mechanical efficiency is η = 0.95 (note that epicycloidal speed reducer has a very symmetrical behaviour between direct and reverse motion). The global momentum of inertia of motor rotor and speed reducers is I = 0.66[kgcm2]. Note that it cannot be neglected because, due to the speed reducer effect, its dynamic behaviour is increased i2 = 100 times on the manipulator dynamic.
Manipulator link lengths.

The path planner fails using the Moore-Penrose pseudoinverse.

Joint velocities without the gain scheduling.

Joint velocities using the gain scheduling.

The industrial robot and its kinematic scheme.
In this context, the aim of loading the end-effector is to test the control system under strongly coupled inertial behaviours (note that they are typical of robotic systems). Indeed, without the load, the manipulator dynamic would be dominated by the motors' inertia, leading to a simple decoupled behaviour. Figure 12 also shows that the manipulator works in the vertical plane. Hence, the servomotor velocity loops also have to compensate the gravity force. In this framework, a successful result would testify to the effectiveness of the choice of using the inner joint velocity loops in order to drive the robot in its environment.
The velocity control loops are embedded into the servomotor drives - they receive the joint reference velocity signals via the real-time Ethernet bus Powerlink (see [Aut] for details) from the Programmable Logic Controller (PLC). The control algorithm is implemented in the real-time operative system Automation Runtime (see [Aut] for details) that runs on the PLC accordingly to the PLCopen standard [PLC]. The control cycle is of 0.8 [ms], so that the velocity reference signals are refreshed with the same frequency.
It is worth stressing that all the components employed are off-the-shelf products [Aut]. This proves that the proposed technique is indeed suitable for industrial applications. A circular obstacle is placed in the manipulator operational space as Figure 13 shows. The considered obstacle size is a circle whose diameter is of 7 [cm] and its centre is at the position x = 0[cm], y = 12.8[cm]; see Figure 14. It is worth stressing that this measure is bigger than the actual obstacle size because the end-effector size also has to be considered in order to avoid collisions. Note that considering a bigger obstacle (increase of the load size) and an ideal (a point) end-effector, or the real obstacle and the real (with the load size) end-effector, leads to the same results.
The robot is required to reach three points in its operational space, represented by the coloured diamonds in Figure 14, where also the ideal (obstacle free) and the actual trajectory are shown. The first set of tuning parameters has been chosen with kav =0.08 and kv =0.5 (note that here, having a two DOF robot, kw is not needed). The gain scheduling parameter has been chosen such that the gain can increase at most ten times its initial value,
The proposed path planner successfully drives the end-effector to all the goal positions moving around the obstacles as shown in Figure 14. It is worth noting that, as shown in Figure 15, despite the big load and the gravity, the actual velocities and the reference ones are practically undistinguishable, except for the small noise due to numerical differentiation of the encoder signals.
In order to analyse the proposed solution in depth, a more aggressive tuning has been tested, increasing both kav and kv
It is interesting to note that when strongly increasing the tuning parameter, the manipulator exhibits an underdamped behaviour when it is very close to the obstacle, because of the strong potential field that locally behaves like a stiff spring.

The obstacle in the robot environment.

The obstacle (black line), the obstacle-free trajectory (blue line) and the actual trajectory (red line).

The actual joint velocities (red and green lines) and the reference joint velocities (black lines) with the first set of tuning parameters.

The joint actual velocities (red and green lines) and the joint reference velocities (black lines) with the second set of tuning parameters.
7. Conclusions
In this paper, a path planner suitable for industrial applications has been proposed. It is capable of driving the manipulator in a cluttered environment toward the desired position while avoiding collisions.
The proposed technique is computationally light and solely based on the robot kinematic model. Hence, it is suitable for on line applications and does not require the manipulator dynamic model. This solution is thus very useful when, as is usual in industrial contexts, it is difficult to model the manipulator dynamics or to control the joint torques.
The proposed solution works properly both with redundant and non-redundant manipulators.
A new pseudoinverse Jacobian has been proposed in order to solve the inverse kinematic problem for several points along the manipulator kinematic chain. Using the weighted pseudoinverse, the manipulator capability of turning around obstacles and moving in narrow passages is increased.
Once a potential field formulation was chosen, we tested the control system on both planar and spatial redundant manipulators with successful results.
Finally, the proposed solution has been experimentally tested on a real industrial robot by implementing the algorithm on a motion control industrial PLC driving two industrial brushless servomotors. The obtained results confirm its effectiveness. It is remarkable that the performance remains satisfactory also when the control parameters span over a wide range.
Footnotes
8. Acknowledgement
The authors gratefully thanks Mr. Michele Pagani for his valuable help.
The research leading to these results has received funding from the European Community's Seventh Framework Programme (FP7/2007-2013) under Grant Agreement n222107.
