Abstract
A redundant robot has more degrees of freedom (DOF) than those required to accomplish a given motion task. This fact allows the possibility of achieving an additional task, such as avoidance of joint limits or singularities, besides the primary one. Different criteria have been proposed in the literature for the selection of such a secondary task. This paper first recalls some of those criteria and then proposes a two-loop scheme for the motion control of redundant robots. In order to validate the proposed scheme, some experiments are carried out in a direct-drive redundant planar arm which has been designed and built in our laboratory.
1. Introduction
Redundant manipulators have been a theme of study for researchers and engineers in the last years. Kinematic redundancy appears in robot manipulators which have more degrees of freedom than those necessary for achieving a given task. This can be considered a source of more dexterity for the robot since, due to the extra degrees of freedom, some additional tasks, such as the avoidance of obstacles or singularities, can be performed while executing the primary motion task [1, 2].
A very common task in robotics is to control the pose (that is, the position and orientation) of the robot end–effector. And it is a well–known fact that the pose is specified by means of six independent variables for motion in 3D space, while only three are required if the motion is constrained to the plane (2D). According to this, a redundant robot for pose control should have either more than six degrees of freedom for spatial motion or more than three for planar motion. However, there are some cases in which the desired task is not to control the whole pose of the end–effector; in such cases we talk about functional redundancy [3]. For example, a 3-dof robot manipulator is functionally redundant if the desired task involves controlling only the position (two coordinates) of the robot end–effector, but it is not if both position and orientation are specified as part of the task.
In an n-dof serial robot manipulator the configuration of the end–effector is determined by means of n joint coordinates. On the other hand, the desired motion task to be performed by the robot is specified by m operational coordinates, where it is assumed that m≤n so that the task can be achieved. Notice that in this paper we use the term operational coordinates, instead of pose coordinates, in order to include cases such as the aforementioned planar robot, in which we have three joint coordinates and only two operational coordinates.
The function which allows to obtain the operational coordinates q̇ ∈ ℝ m from the joint coordinates q̇ ∈ ℝ n is known as direct kinematics. In a serial robot (either redundant or not) a unique solution to the problem of direct kinematics always exists; however, that is not true for the inverse kinematics problem (to obtain the joint coordinates from the operational coordinates). In the case of a non-redundant robot the inverse kinematics can have either no solution, only one solution, or multiple isolated solutions; if the robot is redundant then an infinite number of solutions can be found for the same operational configuration of the end–effector. The fundamental problem of redundant robots is to find the best solution to inverse kinematics that allows not only the fulfillment of the primary motion task, but also the accomplishment of a secondary task.
Several schemes for inverse kinematics of redundant manipulators have been proposed in the literature, as indicated in recent works such as [4] or [5]; among these, the so–called closed–loop inverse kinematics, or CLIK algorithm, proposed by [6], is one of the most commonly employed.
In this paper we propose the use of a two–loop scheme for the control of redundant robots which is based on the CLIK algorithm. It is important to mention that similar controllers have already been proposed (see, e.g., [7]) but using a different inner loop. The proposed controller is completed using the well–known gradient projection method for dealing with the secondary task.
The aim of this paper is then twofold. First after recalling the main aspects related with redundancy resolution, we propose the two–loop controller and show how it ensures the convergence to the primary and secondary tasks. Secondly, in order to validate the performance of the proposed controller on a real robot, we show the results of some experiments carried out in a planar functionally redundant arm which is in our laboratory.
The remainder of the paper is organized as follows. A review of the basic methods of redundancy resolution can be found in Section 2. The two–loop control scheme, including its stability analysis, is proposed in Section 3. The characteristics and mathematical model of the planar arm employed in the experiments are described in Section 4, while the results of testing different secondary tasks are shown in Section 5. Finally, Section 6 is devoted to the conclusions of the work.
2. Redundancy Resolution
There exist two main approaches for obtaining the inverse kinematics in redundant manipulators [8]: local optimization and global optimization. This paper only considers the local optimization approach [9], which is explained in this section.
Let us start from the robot direct kinematics function, given by
where q̇ ∈ ℝ m is the vector of joint coordinates and xeR m is the vector of operational coordinates. Taking the time derivative of (1) we get:
where q̇ ∈ ℝ n is the analytical Jacobian of the robot. Figure 1 shows the mapping between the space of joint velocities q̇ ∈ ℝ n and the space of operational velocities q̇ ∈ ℝ m , given by matrix J in (2).

Mapping between joint and operational velocity spaces.
Figure 1 also shows two subspaces of great interest [10]. One, the range space of J, ℜ(J), defined as
is a subspace of ℝ m that physically represents all the operational velocities which can be reached by the manipulator; the other is a subspace of ℝ n known as the null space of J, ℵ(J), defined as
which physically represents the joint velocities that produce no operational velocity in the end–effector.
The existence of a subspace ℵ(J) ≠ Ø in a redundant manipulator allows the possibility of using methods for handling the redundant degrees of freedom and carrying out additional tasks while the primary motion task is executed.
The general method for the solution of (2) was first proposed by [11] using generalized inverses. When using the right pseudoinverse of J, denote here J† and defined as J†=JT(JJT)1, so that JJ+=I, such general solution becomes
Notice that if (3) is left-multiplied by J then (2) is obtained, independently of q̇0. This is because the term (I-J†J) acts as the orthogonal projection matrix onto the null space of J; in other words, the second term of the right–hand side of (3) always belongs to ℵ(J). In particular, if J is full rank, all the joint velocities of the form (3) exactly produce the same operational velocities in the end–effector. Moreover, q̇0 acts as a joint velocity which can be chosen so that it makes possible to complete a secondary task, without affecting the motion of the end–effector.
Several methods have been proposed in the literature in order to select a suitable q̇0 for a given task. In the following subsection we recall a very common strategy which is based on the optimization of a cost function.
2.1 Gradient-projection method
Introduced by [11]; this method starts from considering that vector q0 is the gradient of a cost function H(q̇), and is weighted by the parameter α, that is to say: q̇0=α∇H(q).
In this way, if α>0 then q̇0 represents a joint velocity which makes H(q̇) to maximize; on the contrary, if α < 0 then q̇0 leads to the minimization of H(q̇)
The general expression for redundancy resolution using the gradient projection method is:
Some cost functions that are commonly employed in the literature are:
Distance from joint limits:
where (qi,max - qi,min) is the available range of operation for the i-th joint, and qi,c is the central point in such a range; by minimizing, this function we keep all of the joints near of their corresponding central points, that is, far from the joint limits.
Potential energy:
where U(q) represents the potential energy of the manipulator; maximizing or minimizing this measure can be useful to improve the performance of the robot.
Manipulability measure:
maximizing this measure causes the robot to move away, as far as possible, from singular configurations.
The three cost functions previously mentioned are the ones employed during the experiments described in Section 5.
3. Two–Loop Control of Redundant Robots
The dynamics of a serial n-joint robot manipulator without friction can be described as [12]:
where M(q)∈ℝ n×n is the symmetric and positive definite manipulator inertia matrix, C(q,q̇) ∈ ℝ n×n is the matrix of centrifugal and Coriolis torques, g(q) ∈ ℝn is the vector of gravitational torques, which turns out to be the gradient of the potential energy of the robot (i.e., g(q) = ∇U(q)), and τ is the vector of external torques applied to the robot.
There exist several schemes for the control of redundant robots, although most of them employ a two–step procedure: first, using an inverse kinematics algorithm such as (3), the desired joint velocities q̇ d are computed from both the desired operational velocities ẋ d , required for the motion task, and q̇0, which is chosen according to the desired redundant task; secondly, a joint-space controller using as input q̇ d (or both q̇ d and its time integral qd), produces the required torques for each of the robot joint actuators. Figure 2 shows a general diagram of this two–stage controller.

Classical controller with redundancy resolution.
Given xd and q0, the simplest algorithm for inverse kinematics with redundancy resolution would be to use
to compute qd, and then to employ numerical integration to get qd for the next iteration. The use of (8) is avoided, however, due to the fact that, as the algorithm does not depend on xd but on xd, the convergence to xd can not be ensured; moreover, due to the numerical integration, a small though unavoidable error appears, which leads to a long-term deviation of the estimated qd from the exact one.
Algorithmic solutions that overcome these problems are based on the use of a feedback correction term; these are termed closed–loop inverse kinematics (CLIK) algorithms [4]. A very common CLIK algorithm is
where K is a positive definite diagonal matrix of constant gains, and f(·) is the robot direct kinematics function.
As mentioned in [13], the structure of the CLIK algorithm can be conceptually adopted for a simple robot control technique, known under the name of kinematic control, which assumes that the control inputs to the robot joints are velocity commands, instead of torque commands. The rationale behind this assumption is the fact that most of robot actuators (usually brushless DC motors) are driven by electromechanical drives which can be configured in velocity mode, that is, with inner velocity controllers. For more information on brushless DC motors and their operation modes see [14].
Following the idea in [15], in this paper we propose the use of a two–loop control scheme for redundant manipulators. In such scheme an outer kinematic controller is devoted to generate the joint velocity commands for the inner velocity controller. Figure 3 shows a general diagram of this scheme.

Two–loop control scheme.
In this paper we consider as outer loop the following kinematic controller, based on the CLIK methodology:
where x˜ = xd-x and K is a positive definite matrix of control gains. Notice that (10) has the same structure of (9) but now we feedback the actual joint coordinates q to compute the desired joint velocities, now named vd instead of qd for the sake of clarity.
In the inner loop we propose the use of the following velocity controller, which requires the knowledge of the robot dynamic model [15]:
where v˜ = vd-q̇, v̇d is the time derivative of (10), computed numerically, and Kv is a diagonal matrix of positive gains.
3.1 Stability Analysis
This section describes the stability analysis of the two-loop controller (10)–(11) when applied to the robot dynamics (7). For the analysis, let us consider that, during the execution of the assigned task, the robot never passes through singular points (where J(q) losses its full rank);
moreover, it is assumed that J(q) is always bounded by a positive constant kJ, that is to say:
The first step is to left–multiply (10) by J, to obtain
and as v˜ = vd-q̇, then
where
The closed-loop system is thus written simply as
and it is observed that it is a non-autonomous system with a unique equilibrium in the origin of the state space [x˜Tv˜T] T ∈ℝ n+m . In order to verify the stability of this equilibrium we use the following Lyapunov function:
with γ such that
where λ m {·} stands for the smallest eigenvalue of the corresponding matrix.
It is clear that V(x˜,v˜)is positive definite, and is easy to verify that its time derivative
is negative definite whenever (13) is satisfied.
This analysis allows us to conclude that the equilibrium of (12) is locally asymptotically stable, meaning that the motion control aim is fulfilled, i.e. limx(t) lim x→+xd (t), at least for a region close enough to xd(t) which includes no singular points of the jacobian J (q). On the other hand, the use of a gradient method for redundancy resolution assures the optimization of the cost function used as a secondary task [11].
4. 3-DOF Planar Robot
This section is devoted to the description and mathematical modeling of the 3–dof robot arm that has been designed and built in our laboratory, and was used during the experiments presented in Section 5. Both a photograph of such mechanism and a diagram showing its characteristic parameters are displayed in Figure 4.

3–DOF planar robot used in experiments.
The robot consists of three direct–drive actuators, models DM1200A, DM1030B and DM1004C from Parker Compumotor, which are brushless DC motors; the drives of such motors can be configured to operate in either position, velocity or torque mode, depending on what signal is used as the command input for the drive. The robot links are made out of aluminum, due to its light weight and rigidity.
4.1 Kinematic Model
The direct kinematic model of the 3–dof arm, considering it as a non–redundant robot, is given by:
where [x y] T ∈ ℝ2 represents the position, and φ ∈ ℝ the orientation of the end–effector in the plane; li is the length of the i-th link; the simplified notation for sine and cosine functions (si = sin(qi), cij = cos(qi + qj), etc.) is used.
The inverse model of (14) is obtained in [13], and it is:
where
pwx = × − l3 cos(φ), and pwy = y − l3 sin (φ).
Now, to consider the robot as redundant, only the position part of the end-effector pose is taken into account, and the last row of (14) is discarded. In such a case, the Jacobian matrix is given by
and it should be noticed that this Jacobian loses rank when [q2 q3] T = [mπ nπ] T , for any integers m and n.
4.2 Dynamic model
To compute the dynamic model of our robot we first employed an AutoCAD model to determine the dynamic parameters of each link i, i.e., mass (mi), distance to the center of mass (lci) and moment of inertia (Ii). Then we used those parameters as inputs for the Robotica package [16], which runs under Mathematica, to obtain the components of the robot dynamics (7). The elements of the resulting matrices are:
Table 1 contains the values of the parameters used in the dynamic model of our robot.
Parameters of the 3dof robot
5. Experimental Evaluation
In order to validate the proposed two–loop control scheme (10)–(11) in a real application, we carried out some experiments, using the three cost functions mentioned in Section 2.1, on the 3–dof robot arm. In each case a trajectory tracking task was designed so that both the fulfillment of the motion task and the optimization of the secondary task were appreciated.
For the implementation and execution of the control algorithms we employ WinMechLab [17], a software tool for the simulation and execution of real–time control algorithms, under the MS-Windows operating system. Both the inner and outer controllers were programmed in such platform, running at a sampling period of 1 ms.
Diagonal positive definite gain matrices were considered in all the experiments. In the case of matrix K= diag{k1,k2} ∈ ℝ2×2,k1 = k2 = 35s−1 were always used, but in the case of the matrix Kv = diag{kv1,kv2,kv3} ∈ ℝ3×3 the gains were chosen in each case to obtain a good performance in the sense of keeping the operational error small and also optimizing the corresponding cost function. In all of the cases the execution of the two-loop controller starts at time t = 10 s; during the first 10 seconds a joint–space controller is employed to take the robot to the initial configuration, which is precomputed using the inverse kinematics given by (15).
For evaluating the controller using the cost function (4) the following circular trajectory was considered:
For this particular trajectory, the gains of the inner controller were chosen as kv1 = 20 s−1, kv2 = 25 s−1, and kv3 = 30 s−1. To show the feasibility of the controller in achieving the redundant task, experiments were carried out with α = 0 (meaning that no secondary task is considered) and α = −20.
Figures 5 and 6 show the experimental results for this case. Figure 5 depicts the time evolution of the norm of the operational error x; in Figure 6 we can observe how the cost function decreases when α= −20.

Evolution of the error norm using (4).

Evolution of the cost function (4).
For the experiments using the cost function given by (5) the following circular trajectory was considered
and the gains of the inner controller were kv1 = 16 s−1, kv2 = 16 s−1, and kv3 = 20 s−1; experiments with α = 0 and α = −0.32 were done. The results are shown in figures 7 and 8. It is remarkable how the norm of the operational error keeps small for the two values of α but the cost function (in this case the potential energy) increases when α>0.

Evolution of the error norm using (5).

Evolution of the cost function (5).
Finally, for the experiments using the manipulability measure (6) as cost function we decided to use a straight–line trajectory which goes from the point (0.311, 0.055) to the point (0.311,-0.2) [m], in 20 seconds. The initial conditions for such task were chosen as qd=[270 175 0] T degrees, and (14) was then used to obtain the initial operational values. The gains of the inner controller were kv1 = 16 s−1, kv2=20s−1, and kv3= 20 s−1. The experiments were performed using α = 0 and α = 45. The resulting graphs for this case are shown in figures 9 and 10. Notice that, again, the norm of the operational error is similar no matter the value of α, but as this parameter increases so does the manipulability measure.

Evolution of the error norm using (6).

Evolution of the cost function (6).
6. Conclusion
This paper presents the application of the CLIK algorithm and a two–loop control scheme to the control of redundant manipulators. Experiments on a planar redundant arm validate the theoretical analysis and show the feasibility of the proposed scheme in fulfilling both the motion control aim and also the redundant task, via the gradient–projection method.
Footnotes
7. Acknowledgements
This work was partially supported by DGEST, PROMEP, and CONACYT (grant 60230), Mexico.
