Redundancy analysis of cooperative dual-arm manipulators

This paper presents the redundancy analysis of two cooperative manipulators, showing how they can be considered as a single redundant manipulator through the use of the relative Jacobian matrix. In this way, the kinematic redundancy can be resolved by applying the principal local optimization techniques used in the single manipulator case. We resolve the redundancy by using the Jacobian null space technique, which permits us to perform several tasks with different execution priority levels at the same time; this is a useful feature, especially when the manipulators are to be mounted on and cooperate with a mobile platform. As an illustrative example, we present a case study consisting of two planar manipulators mounted on a smart wheelchair, whose degrees of redundancy are employed to move an object along a pre-defined path, while avoiding an obstacle in the manipulator’s workspace at the same time.


Introduction
In the last few years the study of dual-arm manipulation has become a subject of interest among the scientific community. Dual-arm manipulation has been defined in several ways, but it generally refers to the cooperation of two manipulation robotic systems that physically interact with an object, exerting forces on it in order to move or reshape it. 1 The dual-arm manipulation system was first introduced to replace workers in dangerous manufacturing processes. Early robotic manipulators were constructed by Goertz in the 1940s for handling radioactive goods. 2 Later, they were employed for marine and space exploration, where the dual-arm manipulators were considerably improved. In 1969, NASA's Johnson Space Center introduced anthropomorphic dual-arm teleoperators, since their performance is closer to that of human operators. 3 Today, modern technological progress and the increasing acceptance of technology by users has encouraged the scientific community to focus on the development of dual-arm manipulators that are adapted to work in user centered environments, for example surgery or ambient assisted living (AAL). An example of dual-arm surgical application concerns the ''Active Project'', which is a European project that exploits ICT and other engineering methods and technologies for the design and development of a dual-arm platform for neurosurgery. 4 As for AAL applications, dual-arm manipulators could be mounted on a wheelchair in order to assist disabled people to reach and handle objects, or to perform more complex tasks. 5,6,7,8,9 Cooperation between two robotic arms manipulating an object is not easy, since their relative motions have to be adequately controlled in order to perform the desired operation (i.e. solve a specific task). Moreover, the two arms and the object realize a closed kinematic chain, where the degrees of mobility of the system are greater than those generally required to perform the task, therefore the inverse kinematics problem admits an infinite number of solutions. 10 For this reason the dual-arm manipulators become a kinematically redundant system during the cooperation, where the redundant variables are employed to perform tasks such as collision avoidance, 11 or satisfy specific performance criteria such as singularities avoidance, 12 mechanical joint limit avoidance, 13 or improvement of manipulability along a chosen direction. 14 There are several approaches in the literature that permit resolving the inverse kinematic problem for single redundant manipulators. They are mainly based on global and local optimization of a specific objective function. In particular, the global optimization permits calculation of the optimal path that satisfies a performance criterion (off-line mode), 15 such as avoiding obstacles whose positions are known a priori. The local optimization permits calculation of the current desired joint velocity in order to locally satisfy the performance criterion (real time mode). 16 The simplest local optimization technique is represented by the pseudo-inverse solution, 17 which provides the joint velocity with the minimum norm among those which satisfy the task constraint. Since the obtained joint movement does not provide global velocity minimization along the whole path, this technique does not guarantee the avoidance of a kinematic singularity. Moreover, it does not permit the use of the redundant joints for any secondary task. This is instead possible by adopting a task augmentation technique. 18 This technique consists of augmenting the task vector so as to tackle additional objectives by implementing two different methods: extended Jacobian 19,20 and augmented Jacobian. 21 The disadvantage of this technique is due to the presence of possible conflicts among the various tasks. Moreover, if the Jacobians associated with the tasks are linearly dependent, the task augmentation technique generates algorithmic singularities. 19 In order to overcome these problems, the Jacobian null space technique was proposed in Dubey et al. 22 It is based on a task priority strategy that projects the gradient of joint velocity tasks into the analytic Jacobian null space of the higher priority task, and is often referred to as the gradient projection scheme. 22 Generally, the end effectors task is identified as the main task, namely the primary task, so that it has a higher priority with respect to other tasks (denominated secondary tasks), in order to obtain a hierarchical structure, as described in Antonelli et al. 23 Moreover, the Jacobian null space method can be implemented to manage the constraints on the joint velocities. 24 In this case, the redundancy is resolved so that the redundant joints, whose velocities do not violate the constraints, are used to correctly execute the task. Since the velocities of the joints associated with the secondary tasks, obtained through the gradient projection method, generate self-motions in the robot, they do not affect the primary task motion. On the other hand, the Jacobian null space technique requires a relevant computing effort due to the Jacobian pseudo-inverse, which reduces the speed of data processing. An improved version of the gradient projection scheme, which does not require determination of the pseudo-inverse, can be found in Dubey et al. 25 For the case of rank analytic Jacobians, it is possible to implement the reduced gradient method described in De Luca and Oriolo. 26 In the literature, several examples of null space algorithms are implemented on single redundant manipulators that are individually controlled. Ž lajpah et al. present a highly kinematic redundant planar manipulator that is able to avoid obstacles online in an unstructured environment by using a mono-dimensional obstacle avoidance task. 11 Park et al. propose a method to accommodate multiple tasks for redundancy utilization, which is based on a specific weighted pseudo-inverse. 27 Since the control of cooperative manipulators is more complex than the control of a single manipulator, it is useful to employ the method based on the relative Jacobian matrix. 28,29 This method permits the consideration of two redundant manipulators like a unique redundant manipulator, whose number of joints is equal to the sum of the joints relative to each manipulator, while the end effector motion variables correspond to the relative motion between the two grippers. This method presents more advantages than those based on the individual control of each manipulator. First of all, a dual-arm system modeled according to the relative Jacobian method can be controlled by the same algorithms used for controlling single manipulators. Secondly, the compact expression of the relative Jacobian matrix is simple to calculate when Jacobians of the individual manipulators are known and, if a manipulator is replaced with another one, it is sufficient to change the respective Jacobian without recalculating the entire relative Jacobian matrix. 28 A dual manipulator system can be seen as a redundant system, and this paper is focused on the resolution of redundancy by projecting the maximum number of the secondary tasks into the Jacobian null space of the primary task, as in the single manipulator case. The main contribution is to control a dual-arm manipulation system as a single redundant manipulator through the use of the relative Jacobian, exploiting the degrees of redundancy to perform secondary tasks by using the Jacobian null space technique. The proposed approach permits the use of a dual-arm manipulation system to perform a primary task (e.g. hold an object, as presented in the case study) by using a simple control law which can account for secondary tasks as well (e.g. obstacle avoidance in the case study) as long as the system has one or more redundancy degrees. The capability of performing tasks with different execution priorities levels and the possibility of controlling the dual-arm manipulators as a single manipulator is useful, especially in the case of cooperation with a mobile base.
The paper has the following structure. Section 2 presents the theoretical background on the resolution of the kinematic redundancy problem based on the null space of the relative Jacobian. Section 3 shows a case study, in order to evaluate the system performances with different dimensions of the null space. Conclusions and future work complete the paper in Section 4.

Redundancy resolution by Jacobian null space method
In this section we revise the main literature results that are necessary to formulate the kinematic inverse solution for cooperative manipulators. Let us first recall the definition of redundancy for robotic manipulators.
Kinematic redundancy: a manipulator is kinematically redundant when the number of its possible motions n (degree of motion) is higher than the number of variables m that are necessary to describe a given task (dimension of the task space), n > m. 30 Intrinsic redundancy: a manipulator is intrinsically redundant when its degree of motion n is greater than the dimension of the space in which the manipulator operates (dimension of the operational space s), n > s. Functional redundancy: a manipulator is functionally redundant when its degree of motion is equal to the dimension of the operational space, that is n ¼ s, and the dimension of the operational space is greater than that of the task space, s > m (from which it follows n > m).
The first definition depends on the specific task, which implies that the same manipulator can be redundant with respect to a specific task and non-redundant with respect to another. It represents the main definition of redundancy, with the other two definitions referring to specific cases. In detail, the second definition does not depend on the task, since it is based on the intrinsic kinematic structure of the robot; it follows from the definition of kinematic redundancy by considering the operational space rather then the task space, whose dimension is always equal or less than that of the operational space. The third definition, instead, refers to the specific case where the number of possible motions of the manipulator is equal to the dimension of the operational space, and redundancy originates from the fact that the task is defined in a space with fewer dimensions than that of the operational space (e.g. the operational space has three dimensions, but the task is planar, which implies a task space in two dimensions). The following example provides a better understanding of the differences between the three redundancies. Consider a planar manipulator with 4 joints, which has to translate and rotate an object (m ¼ 3) on a plane (s ¼ 3). Since in a generic open-chain manipulator the degree of motion n is equal to number of its joints, we have n ¼ 4, and the considered planar manipulator results intrinsically redundant, that is n > s. Therefore, the manipulator can reach the desired end effector pose by assuming infinite configurations. On the contrary, a planar manipulator with 3 joints, n ¼ 3, which has to translate an object on a plane (m ¼ 2, s ¼ 3) is functionally redundant, because it can perform the task by assuming an arbitrary end effector orientation.
In the following, the generalized form of the Jacobian pseudo-inverse solution for a single redundant manipulator is derived, then the analytic Jacobian is replaced by the relative Jacobian. The kinematic inverse solution for cooperative manipulators is presented at the end of the section.

Redundancy resolution for a single manipulator
Given an open chain manipulator with n joints and a task described by m variables in the operative space, it is possible to calculate the end effector velocity vector _ x d ðtÞ necessary to perform the task by multiplying the joint velocity vector _ qðtÞ with a linear transformation matrix, which depends on the current manipulator configurationqðtÞ. 30 If the end effector velocity vector is defined in terms of linear velocity _ pðtÞ and angular velocityωðtÞ, the transformation matrix is geometric Jacobian JðqðtÞÞ, and the end effector velocity vector is Otherwise, if the end effector orientation velocity _ φ ðtÞ is expressed as the derivative of a minimal orientation representation in the operational space (i.e. Euler angles) with respect to time, the transformation matrix is analytic Jacobian J A ðqðtÞÞ, 30 and the end effector velocity vector is Since the dimension of the end effector velocity vector requested by task, namely dimð _ x d ðtÞÞ, is equal to m (where in three-dimensional space m 6) and the dimension of the joints velocity vector _ qðtÞ is equal to n, the dimension of the analytic Jacobian matrix is equal to m Â n. In the case of non-redundant manipulators, m ¼ n and the Jacobian matrix is a square matrix. Otherwise, in the case of redundant manipulators m < n, the Jacobian matrix is a lower rectangular matrix. The two different Jacobian matrix forms become relevant to calculate the inverse kinematic solutions that are studied in the following.
Kinematic inverse solution for a non-redundant manipulator.
Since the task variables are generally defined in the operative space, kinematic inverse algorithms are necessary to obtain the manipulator joint velocity. When the manipulator is not redundant, the joint velocity vector _ qðtÞ can be calculated simply by inverting the Jacobian If the initial joint positionqð0Þ is known, it is possible to calculate the new manipulator configurationqðtÞ by time integration of the joint velocitỹ Since the kinematic inverse algorithms generally run on digital processors, the joint position is discretized intoqðt k Þ (where k indicates the kth discrete time instant) by discretetime numerical approximation of the continuous-time integral shown in equation (4). In the following the mathematical approach will be based on discrete-time. In order to obtain an accurate discrete-time approximation of equation (4), a high-order algorithm is required. However, a highorder algorithm implicates an undesired large finite time delay in real time applications, which can be reduced by shortening the time step Dt. 21 A good choice consists of a first order algorithm as the Euler forward rectangular method, which can give an acceptable accuracy of the numerical integration with suitable Dt value. The Euler forward rectangular method is used to transform the integral shown in equation (4) in the following recursive form where _ q k indicates the calculated joint velocity at the time instant k, while _ x d kÀ1 is the desired end effector motion at the time instant k À 1. In spite of the kind of implemented interpolation, the end effector posex k obtained by direct kinematic functions is different from the desired end effector posex d k , because any numerical integration is mainly affected by two sources of errors. The first consists of an unavoidable drifting error, which increases at each numerical integration step, while the second depends on uncertainty in the initial value of the joint position. Thus, the pose errorẽ k can be defined as Defining the joint velocity vector in the function of the pose error of the end effector pose _ q k ðẽ k Þ, it is possible to ensure the convergence of the pose error to zero. This choice permits us to find several inverse kinematics algorithms which are based on the use of a feedback correction term called closed-loop inverse kinematics (CLIK). 31 A well-known first-order kinematic algorithm is the Jacobian inverse, which permits calculation of _ q k as follows 31 where K is a constant positive-define gain matrix. Since (7) can be rewritten as follows where the velocity of the pose error convergence depends on the eigenvalues of matrix K, so that higher eigenvalues correspond to faster pose error convergence. However, the convergence velocity cannot be chosen arbitrarily due to the limitation of band given by the sample time Dt. Finally, if the initial error pose is equal to zero, that isẽ k¼0 ¼ 0, then the feed-forward action ensures a zero error along the whole trajectory.
Kinematic inverse solution for a redundant manipulator. In the case of a redundant manipulator, the previous inverse Jacobian algorithm cannot be implemented, because the Jacobian matrix is a lower rectangular matrix (m < n) and its inversion admits multiple solutions. For this reason, a criterion of solution choice should be adopted. If the Jacobian matrix has full rank, the solution is based on the right pseudo-inverse of the Jacobian matrix. 30 This allows us to obtain the solution that locally minimizes the norm of the joint velocity, in accordance with Moore-Penrose properties.
The right pseudo-inverse of the Jacobian matrix J y A ðq k Þ is obtained as follows Replacing the inverse Jacobian matrix with its pseudoinverse in equation (7), it is possible to obtain the CLIK pseudo-inverse expression where _ q Ã k is the joint velocity solution that satisfies the criteria of choice at time instant k. Such a solution presents two main advantages: it reduces the joint velocity close to singularity configuration, and it allows us to minimize the norm of the joint velocities. Thus from an engineering point of view, this saves electric energy when the manipulator is mounted on an electric mobile vehicle (e.g. a smart wheelchair).
However, the simple CLIK pseudo-inverse expression does not allow us to manage the redundant joints (joints not required by the task), which could be used to perform other secondary tasks that must not affect the performance of the primary task. A possible strategy consists of projecting the redundant joints velocity vector _ q k þ in the Jacobian null space, which is an r-dimensional orthogonal complement of the Jacobian image space. In the case of a redundant manipulator, r is non-zero and its value can be calculated via the rank-nullity theorem 30 as follows where dim½ImðJ A ðq k ÞÞ, dim½KerðJ A ðq k ÞÞ and dim½q k are the dimensions of the Jacobian image space, the Jacobian null space and the joints velocity vector space, respectively. Remembering that dim½ImðJ A ðq k ÞÞ ¼ dim½ _ x d ¼ m and dim½ _ q k ¼ n; r can be immediately calculated to be The maximum number of tasks that can be executed simultaneously by the system depends on the dimensions of each task space, 23 that is if m i is the dimension of the ith task space, then where l indicates the maximum number of tasks that can be fulfilled simultaneously by the cooperative manipulators (namely one primary task) and l À 1 indicates the secondary tasks executable at the same time. Since a secondary task may influence the primary task motion, it is necessary to project it into the null space of the primary task by orthogonal projector matrix P, such that According to the right pseudo-inverse Jacobian, an n Â n matrix P can be obtained at each time instant by the following expression where I indicates the identity matrix of suitable dimensions. Therefore, it is possible to add in equation (10) the term relative to the projection of where the _ q Ã k solution is different from the one obtained from equation (10), because now it is the minimal norm joint velocity solution that satisfies both the primary task and the secondary tasks. Since the _ q þ k vector can also be used to execute some objective function wðq k Þ, such as obstacle avoidance, it is also possible to use the gradient projection scheme. 22 This method permits the projection of the gradient of a specific objective function rwðq k Þ (calculated in joint space) into Jacobian null space, as shown below where k a is a real scalar value which indicates the gain, and is positive when wðq k Þ has to be maximized. Otherwise it is a negative value if wðq k Þ has to be minimized. 22 However, the choice of k a is critical for the performance of the redundancy resolution. In particular, a small step size may slow down the minimization of the performance criterion wðq k Þ. At the same time, a large value may even lead to an increase in it. An appropriate value of k a could be chosen by using a simplified line search technique as described in Luenberger and Ye. 32

Kinematic inverse solution for cooperative manipulators
When two manipulators interact on an object at the same time, they make a closed-chain among the three parts. In this case, the task is generally executed by the relative end effector motions, which require fewer motion variables with than those provided by two independent manipulators. Alternatively, the two cooperative manipulators can be seen as a single redundant manipulator, having the same degree of motion of the dual arms and the same number of end effector motion variables required by the task. In this way, it is possible to implement the same control algorithm adopted in the single redundant manipulator case, with the only difference being a redefined Jacobian matrix. The Jacobian matrix associated with the equivalent manipulator depends on the two individual analytic Jacobians possessed by each manipulator, and is called the relative Jacobian.
The relative Jacobian matrix. Two cooperative manipulators A and B are shown in Figure 1, where each possesses a number of joints, n a and n b respectively. The frame integral to the base of manipulator B, namely B b , is placed on a fixed Cartesian distanced AB from the other frame integral to the base of manipulator A b Their relative rotation is described by the rotationmatrix R A b B b , which describes the set of three consecutive rotations that the frame A b must undergo to have the same orientation of the frame B b . The frame integrals to the end effector of manipulators A and B, namely A e and B e , indicate the Cartesian position between the two manipulators. In particular the B e position is defined with respect to A e by theP R vector, while their relative rotation is described by theφ R vector. Differentiating theP R and φ R vectors with respect to time, it is possible to obtain a unique vector _ x Rd k , which contains the desired relative end effector motion variables at time instant k where _ x Rd k is an m ab -dimensional column vector (m ab 6 in a three-dimensional space).
Thanks to the kinematic relations between the two manipulators, it is possible to obtain a single equivalent manipulator with a number of joints equal to n ab ¼ n a þ n b and end effector motion variables defined by the _ x Rd k Figure 1. Two cooperative manipulators.
vector. As described in the single manipulator case, it is possible to define a differential kinematic relation between the end effector motion variables _ x Rd k and the joints velocity indicated by the n ab -dimensional column vector where J R ðq ab k Þ is the m Â n-dimensional relative Jacobian matrix associated to the two manipulators' cooperative motion. In accordance with Jamisola and Roberts, 29 J R ðq ab k Þ can be expressed as with J A and J B indicating the analytic Jacobians of the standalone manipulators, where Ψ A e B e is the wrench transformation matrix, 29 while Ω A e A b and Ω A e B b are diagonal matrices, which respectively depend on the rotation matrices R A e A b and R A e B b evaluated at time k The wrench transformation matrix Ψ A e B e permits compensation of the relative end effectors translation velocity component due to the cross product of the end effector A orientation velocity _ φ A , with the end effector's distance vectorP R described by the following equation where ½P R Â is the skew matrix generated by vectorP R . In particular, high values of _ φ A increase the relative end effectors position error, as demonstrated in Jamisola and Roberts. 29 When _ φ A is low, its contribution to the relative translational velocity is negligible, and the wrench transformation matrix is approximated with the identity matrix, as commonly assumed in the literature. 33,34 The relative Jacobian null space. Since the relative Jacobian matrix is associated with the cooperative dual arms, it can define its equivalent manipulator with a number of joints equal to n ab . Since n ab > m ab , the equivalent manipulator results kinematically redundant with respect to the relative motion task. In accordance with equation (10), in this case the joints velocity vector _ q ab k can be obtained by the CLIK algorithm based on the right Jacobian pseudo-inverse where J y A has been replaced with J y R , and e R k indicates the error between the desired relative end effectors position x Rd k and the relative end effectors positionx Rd k e R k ¼x Rd k Àx R k (25) In order to obtain the joints velocity vector _ q ab k , the redundant joints velocity _ q þ k can be projected into the Jacobian null space by the orthogonal projector matrix where K R is the gain matrix which allows the relative end effectors pose errorẽ R to converge to zero, while the dimension of the relative Jacobian null space is equal to r ab ¼ n ab À m ab . However, the calculation of r ab does not consider the m-dimensional end effector velocity vector, which describes the motion of each manipulator in the operative space (i.e. m 6 in a three-dimensional space).
In particular, the end effector velocity vector describes the translational and rotational motion of each end effector in the space, and these movements are very useful for many  secondary tasks. Since the two end effectors are constrained by _ x Rd k , it is sufficient to assign _ x d to only one end effector (e.g. A manipulator) in order to move the whole dual-arm system in the space. Moreover, projecting the A manipulator joint velocity vector _ q þ Ak in the null space of the relative Jacobian, the primary task performance is not affected, thus In the case of r ab À (m ab þ m) > 0 in accordance with equation (13), it is possible to add other lower priority tasks with maximum dimensional value equal to m* ¼ r ab À (m ab þ m), in order to obtain a hierarchical structure of the tasks. Generally, given several secondary tasks with different priority levels, it is possible to obtain the _ q Ã ab k vector by projecting the joint velocity vector _ q þ i of the i-th task into the null space relative to the higher priority task. Defining x d k and a generic joint velocity task _ q þ 1 (having dimensions equal to n ab ), the general expression for the execution of the three tasks is Where P ab k is a n ab Â n ab -dimensional matrix that contains the orthogonal projectors in the null spaces of the manipulators A and B

Task description
This section describes a case study which consists of the development of a kinematic control based on the relative Jacobian matrix of two cooperative Jaco manipulators, 35 A and B, mounted on the left and right side of a smart wheelchair, as shown in Figure 2. In this scenario, the user can autonomously reach any indoor point by using the smart wheelchair, thanks to a simultaneous localization and mapbuilding algorithm. 36,37,38 The two cooperative manipulators add manipulation capability to the wheelchair in order to transport objects along a pre-defined path. Since the aim of this paper is focused on the analysis of the kinematic performance of a dual-manipulation system, the wheelchair motion is not considered during the execution of the manipulation tasks. Moreover the case study is faced in the planar case. The reader can refer to the concluding section for an explanation of possible future work, which takes into account cooperation between the wheelchair and the manipulators and a possible extension to the threedimensional case.
The considered task is common in a daily scenario: during a meal the wheelchair user commands the two manipulators to move his/her dish from pointp 1 to point p 2 of the table. Moreover, the manipulators must avoid a nearby object (i.e. a bottle placed between them). The task is modeled in the XY-plane as follows: 1. The motion of the dish is along a straight line in the XY-plane, which is a common path to choose in order to reduce both the time of the task execution and the motor energy consumption. 2. The dish is represented by a circle of ray r 1 . 3. The bottle is represented by a circle of ray r 2 . 4. The two anthropomorphic manipulators (Figure 3(a)) are modeled as two planar manipulators having three joints each (n a ¼ n b ¼ 3), which grasp the dish so that the Cartesian distance between the two end effectors is equal to the diameter of the dish (Figure 3(b)). 5. The end effector A has a low orientation velocity, thus the wrench transformation is approximated by the identity matrix.
According to the Jacobian null space method, the proposed scenario could be decomposed into two different priority level tasks: the higher priority task (primary task) and the lower priority task (secondary task). In particular, the primary task ensures the grasping of the dish during all the motion time, that is the distance jjp R jj has to be maintained constant and, consequently, its derivative with respect to time has to be equal to zero, _ p R ¼ ½0; 0 T , so that the desired relative end effector's orientation velocity _ φ R ¼ 0. Therefore, the relative end effector's velocity vector _ x Rd k can be defined as where dim½ _ x Rd k ¼ m ab ¼ 3. Therefore, it is possible to achieve an equivalent manipulator which possesses n ab ¼ n a þ n b ¼ 6 joints and m ab ¼ 3 end effector motion variables, thus the degree of redundancy is r ab ¼ n ab À m ab ¼ 3 in accordance with equation (11).
The degree of redundancy is used to execute the first secondary task, which defines the translation of the dish between two points. It is obtained by projecting a desired Cartesian velocity _ x d k relative to end effector A (or equivalently to end effector B) in the relative Jacobian null space in accordance with equation (25). In fact, since the relative motion between end effectors is established by _ p R ¼ ½0; 0 T , the motion of only one end effector implies the motion of the whole dual-arm system. Since the rotation of both end effectors is not important for the correct execution of the this task, it is left unspecified in order to have dim½ _ x d k ¼ m a ¼ 2. If the end effector A is chosen, then the analytic Jacobian associated to it is a lower rectangular Therefore, it is possible to obtain the 6-dimensional joints velocity vector _ q þ 2 relative to the secondary task by using the CLIK pseudo-inverse expression as described in equation (10) where J y A ðq a k ;q b k Þ ¼ ½ J A ðq a k Þ0 y , due to the fact that the manipulator A has been chosen.
The final degree of redundancy of the dual-arm system r ab results in r ab ¼ n ab À m ab À m a ¼ 1 From equation (32), the dual-arm system still has one degree of redundancy, which can be used to execute a third secondary task such as obstacle avoidance. In particular, the dual-arm system is able to avoid an obstacle of unknown position, which could be detected, for instance, by using a vision system.
The obstacle avoidance task is obtained by using a projecting gradient method. 22 This method permits increasing the distance between the obstacle and the nearest manipulator by projecting the joint space velocity relative to the third task in the null space of the secondary task. Since m a ¼ 2, the third task does not affect the translation of the end effectors, but only their orientation, which is not important for the correct execution of the higher priority task. The third task can be performed by an algorithm that operates in two steps. In the first step, the algorithm detects the arm closest to the obstacle, by iteratively calculating the minimum distance vectorw betweenãðq a k Þ,ãðq b k Þ (the position vectors of two generic points along the structure manipulators) andb (the position vector of a suitable point on the obstacle) where the subscript i ¼ a, b indicates the two manipulators A and B. Suppose now that A is the arm closest to the obstacle (the same applies if B is the closest). The second step consists of maximizing the distance by calculating the gradient rjw a j in the joint space. Therefore, it is possible to obtain the 6-dimensional joint velocity vector _ q þ where the obstacle avoidance gain k a is defined as with k* being the nominal gain value and d T being the threshold distance where the the obstacle avoidance task is active. Finally, it is possible to calculate the final joint velocity vector of the equivalent manipulator by substituting equations (31) and (34) into equation (29) _ Equation (36) presents a hierarchical task structure, which is summarized in the block digram shown in Figure 4.
Thus, the final degree of redundancy of the system leads to r ab ¼ n ab À m ab À m a À m Ã ¼ 0 (37)

Results
In this section we simulate the movement of a dish, which has a ray r 1 ¼ 0.  bottle centered inc ¼ ½0:21 m; 0:74 m T and of ray r 2 ¼ 0.05 m is placed in the dual manipulation workspace, 39,40 so that an obstacle avoidance algorithm is implemented and assigned to the manipulator nearest the obstacle. This simulation is composed by three different priority level tasks.
1. Maintaining a relative distance between the two end effectors jjp R jj ¼ 0:4 m: 2. Moving the A manipulator along the defined path. 3. Avoiding an obstacle (i.e. a bottle).
In order to keep a constant end effector distance, the relative Cartesian velocity vector _ x Rd is imposed in accordance with equation (28), while the desired Cartesian A manipulator velocity is assigned as _ x d ¼ ½0:05 m; 0 m T . Finally, the obstacle-avoiding velocity is obtained in the joint velocity space by k a r q jwj, when the distance between the obstacle and manipulators is less than a threshold distance d T of 0.20 m.
The starting pose of the dual-arm system is shown in Figure 3(b), where the starting A manipulator pose is x eb ¼ ½0 m; 1 m; p=2 rad T , the starting B manipulator pose isx eb ¼ ½0:4 m; 1 m; p=2 rad T , while the distance between the manipulator bases d AB is equal to 0.50 m in accordance with the width of the wheelchair. The black and red circles represent the sections of the dish and bottle in the XY-plane respectively, while the blue line represents the minimal distance between the obstacle pointb and the nearest manipulator pointãðq i k Þ at time k. Figures 5(a) and (b) show the final pose of the dual-arm system, without and with the obstacle avoidance task, while the purple line indicates the path tracked by manipulator A. It is worth noting that since the end effector's orientation values are not specified by the task, they can arbitrary change during the motion when the obstacle avoidance task is not applied. However, the relative end effector's orientation value is kept constant by the primary task.
The variations of joint angles without and with obstacle avoidance task are shown respectively in Figures 6(a) and (b).
The performances of the first task are shown in Figures 7(a) and (b), where the relative end effector's pose and orientation errors are reported. The results obtained indicate that the primary task is independent from the other secondary tasks. The performances of the second task are shown in Figures 8(a) and (b), which indicate respectively the end effector A's position along the reference path and the relative error. Because no specification on the end effector's orientation is assigned, it can be calculated in order to maximize the distance between obstacle and manipulators in accordance with the obstacle avoidance task. In particular, Figure 9 shows the minimum distance between the two manipulators and obstacle, so that it is possible to note how the obstacle avoidance algorithm permits us to keep the minimum distance value higher than safety distance. Since the primary task imposes the same relative end effector orientation value during the motion, the B manipulator remains near the obstacle when the obstacle avoidance task is executed.

Conclusions and future work
This paper presents the redundancy analysis of two cooperative manipulators considered as a single redundant manipulator through the use of the relative Jacobian matrix. The kinematic redundancy is resolved through the Jacobian null space technique, which permits us to perform several tasks with different execution priority levels by projecting the lower priority tasks into the null space of the relative Jacobian matrix. Since the maximum number of lower priority tasks executable at the same time depends on the dimension of the null space of the relative Jacobian matrix, a hierarchical structure of tasks can be defined, where lower priority tasks can be added as long as the redundancy degree is not zero. The proposed approach permits us to use  a dual-arm manipulation system to perform a primary task by using a control law as simple in structure as those used for an individual manipulator, and accounting for secondary tasks as well (such as obstacle avoidance or avoiding joint limits). In the presented case study, two planar manipulators mounted on a smart wheelchair are considered, where the primary task is to keep a constant relative distance between the two end effectors, while the secondary tasks are to move one manipulator along a defined path while avoiding an obstacle. The obtained results show that the lower priority tasks do not affect the performance of the higher priority task.
Note that, due to the presence of the Jacobian pseudoinverse, the Jacobian null space technique used in this paper may present a relevant computing effort, and thus a less computationally demanding control scheme, such as the one based on the Jacobian null space projection, should be considered for implementation on a real controller of two anthropomorphic manipulators (most suitable in the AAL scenarios). The authors are currently investigating full cooperation between the dual-arm manipulators and the mobile wheelchair in three dimensions, and are considering the extension of the case study to the threedimensional case by using the kinematic model of real robotic manipulators (i.e. Jaco), and the cooperation of robotic arms with the smart wheelchair to operate the movement of grasped objects in three-dimensional space.

Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.

Funding
The author(s) received no financial support for the research, authorship, and/or publication of this article.