Continuity of Varying-Feature-Set Control Laws

Nicolas Mansard, Anthony Remazeilles, Franc ¸ois Chaumette Abstract-Classical sensor-based control laws are based on the regulation of a set of features to a desired reference value. In this paper, we focus on the study of control laws whose feature set varies during the servo. In that case, we first show that the classical control laws that use an iterative leastsquare minimization are discontinuous. We then show that these discontinuities are due to the pseudo-inverse operator, which is not continuous at matrix rank change. To solve this problem, we propose a new inversion operator. This operator is equal to the classical pseudo-inverse operator in the continuous cases, and ensures the continuity everywhere. This operator is then used to build a new control law. This general control scheme is applied to visual servoing, in order to ensure the continuity of the control law when some visual features leave the camera field of view. The experiments prove the interest and the validity of our approach.

Index Terms-Sensor-based control -velocity control -control continuity -linear algebra -least-square inverse -visual servoing -visibility constraint

I. INTRODUCTION

A generic task function may be defined by a set of features computed from the sensor output that should be regulated to a desired value. Various control laws have been proposed to regulate such tasks to zero. For example, a generic approach to build stable control laws is proposed in [START_REF] Samson | Robot Control: the Task Function Approach[END_REF]. Usually, the number and the type of features in the set are constant. The continuity of the control law and the stability of the system are then generally obtained outside some singularities that have to be avoided [START_REF] Nelson | Strategies for increasing the tracking region of an eye-in-hand system by singularity and joint limits avoidance[END_REF].

In this paper, we focus on task-based control schemes whose input set is not constant. Some works have already been proposed that consider servo schemes based on such a varying feature set. In [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], the features are removed from the set when they can not be computed anymore due to sensor-visibility lost. Similarly, the features detected as outliers are removed from the set in [START_REF] Comport | Statistically robust 2d visual servoing[END_REF]. On the opposite, a feature can be removed when it is close enough from its desired value, in order to give more freedom to the robotic system [START_REF] Cheah | Region-reaching control of robots[END_REF], [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF]. In [START_REF] Boulic | Combined direct and inverse kinematic control for articulated figure motion editing[END_REF],

Manuscript submitted October 15, 2007;revised Jully, 15, 2008 andaccepted January, 29, 2009, under reference number 07-401. This paper was recommended for publication by Associate Editor X. Name and Editor M. Egerstedt upon evaluation of the reviewers' comments.

At the time of writting, the authors were all with the Institut Nationnal d' Informatique et d'Automatique (INRIA) Rennes, Campus de Beaulieu -35 042 Rennes cedex, France (nicolas.mansard@laas.fr, francois.chaumette@irisa.fr,anthony.remazeilles@fatronik.com)

Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org Digital Object Identifier 00.0000/TAC.2009.000000

the system is controlled from learning-based joint control, and half-plane constraints are temporarily added to enforce situation-dependent constraints. Some specific features can also be added to enforce locally the system constraints, such as joint limits [START_REF] Raunhardt | Progressive clamping[END_REF], occlusion [START_REF] Mansard | Task sequencing for sensor-based control[END_REF] or obstacle avoidance [START_REF] Peinado | Accurate on-line avatar control with collision anticipation[END_REF]. In these papers, the properties of the obtained control scheme are studied on a case-by-case basis, in particular by using some hypotheses specific to the studied system. The results are thus difficult to generalize. In the following we thus propose to study such control laws as a generic control scheme called varying-feature-set control scheme. In particular, we will prove that the control laws computed directly from the varying feature set are not continuous in the general case. From this observation, a solution that ensures the continuity will be proposed.

Some classical control laws are firstly recalled and unified in Section II. Based on this unification, the varying-featureset control scheme is defined in Section III. We then prove in Section IV that the classical control laws coming from this definition are unable to ensure the continuity everywhere. To remove these discontinuities, a new inverse operator is proposed in Section V. Some visual-servoing experiments finally presented in Section VI, as an experimental comparison of the classical control laws and the proposed solution.

II. STATE OF THE ART

In this section, we quickly recall some classical control laws whose feature set is varying during the servo. An effort is made here to homogenize the different notations used by each author.

A. Classical control law

Let us consider an error function e such that:

ė = J q (1)
where q is the system configuration and J = ∂e/∂q is the Jacobian of e. The Jacobian J is a k ×n-matrix, where n is the number of degrees of freedom (DOF) of the system (n = dim q) and k is the size of the error function (k = dim e). The rank of J is denoted m. In [START_REF] Baerlocher | An inverse kinematic architecture enforcing an arbitrary number of strict priority levels[END_REF], it is implicitly supposed that e(q) is derivable everywhere and in not dependant on time but through the configuration q. A classical controller is then:

q = -λ J + e ( 2
)
where λ is a positive parameter used as a gain to tune the convergence velocity, A + stands for the pseudo inverse (or least-square inverse) of matrix A [START_REF] Ben-Israel | Generalized inverses: theory and applications[END_REF], and A is an approximation of A. Control law (2) ensures an exponential decrease of each component of e until regulation e = 0 if J J + = I m (since in that case ė = -λJ J + e = -λe). The global asymptotic stability can be obtained as soon as J and J are full-rank (i.e. k = m) and J J + > 0 [START_REF] Samson | Robot Control: the Task Function Approach[END_REF]. In all other cases (i.e. k > m), only the local asymptotic stability can generally be demonstrated. This classical control scheme has been widely used for sensorbased control [START_REF] Espiau | A new approach to visual servoing in robotics[END_REF], [START_REF] Siciliano | A general framework for managing multiple tasks in highly redundant robotic systems[END_REF], [START_REF] Hutchinson | A tutorial on visual servo control[END_REF], [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF], [START_REF] Malis | 2 1/2 D visual servoing[END_REF].

In the following, all the computations will be realized using the hypothesis that J is perfectly known. We will show in the experiments that the obtained control scheme is robust to this hypothesis.

B. Evidence of discontinuities

We now underline the discontinuities that can occur when modifying the feature set. Let us consider a task e 1 , controlling m 1 of the n DOF of the system. At time t, we increase the task by adding a term e 2 , controlling m 2 DOF. The task is now e 1 e 2 . If the feature set is abruptly modified, is it possible to keep the control law continuity? If m 1 < n, then, obviously, the DOF not controlled by e 1 and that are now controlled by e 2 are subject to a discontinuity (passing from a zero control input to a non-zero control input). If m 1 = n, the problem is the same, whatever the value of m 2 . Before time t, all the DOF of the system are controlled only by e 1 . After time t, a trade-off is realized by the pseudo inverse to fulfill at the same time e 1 and e 2 , which produces a discontinuity in the general case. For example, when realizing a visual servoing based on a multi-point target, the control law is different when considering a four-point target or a five-point target. Therefore, passing from four points to five points causes a discontinuity (an example of such a discontinuity is given in Section VI).

In the following, we will present several works where the classical control scheme (2) has been modified to take into account the varying dimension of the task e [START_REF] Comport | Statistically robust 2d visual servoing[END_REF], [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF], [START_REF] Cheah | Region-reaching control of robots[END_REF]. We will emphasize the solutions that have been proposed in these articles to prevent this discontinuity to happen, and unify these works in an unique mathematical formulation. The common idea is to smooth the discontinuity that happens at feature activation and inactivation by introducing at the activation border a buffer area where the feature is partially active. This buffer area is defined by introducing a smooth activation function H, as explained in the following paragraphs.

C. Some varying-feature-set control laws 1) Robust visual servoing: In [START_REF] Comport | Statistically robust 2d visual servoing[END_REF], the problem of outliers in the input set is addressed by associating to each feature a weight computed from the confidence that this feature is not an outlier. The proposed error function is e q = He, where e = (ss * ) is the error between current and desired feature values, and H = Diag(h 1 , ..., h k ) is a weighting matrix used to remove the outliers from the feature set. The weights h i are computed from a robust estimation algorithm. They vary from 1 when the robust estimation gives full confidence to 0 when the feature is doubtlessly an outlier. The derivative of the task e q is ėq = H ė + Ḣe. In [START_REF] Comport | Statistically robust 2d visual servoing[END_REF], it is assumed that H is varying slowly. The second term of the derivative is thus neglected 1and the control law is computed by analogy with (2):

q = -λ(HJ) + He (3)
When the confidence in a feature decreases, it is smoothly removed from the control law by decreasing the value of the corresponding vector component h i e i . Simultaneously, it is also smoothly removed from the feature set by nullifying the corresponding line of the matrix HJ. The weighting matrix H is thus used to smoothly remove or add a feature to the task. It will be proved in Section IV-C3 that this is enough to ensure the control law continuity as long as (HJ) + H is full rank.

2) Continuous visual servoing despite changes of visibility: In [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], the authors directly address the problem of the controllaw continuity when the number of features varies, in the particular case where this variation is due to visibility loss. When a feature leaves the camera field of view (fov), it has to be removed from the feature set, which thereof causes the control law to be discontinuous. As previously, the use of a weighting matrix enables to take care of these features leaving the fov. The error vector is written e q = We where W = Diag(w 1 , ..., w k ) is the weighting matrix used to smoothly remove a feature that is going to be non visible. The weight w i is null when the feature is out of the fov, and is equal to 1 when the feature is at the center of the image frame.

It is possible to show [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] that the control law used in [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF] is equivalent to: q = -λ(HJ) + He (

where H = √ W is a diagonal matrix whose coefficients vary continuously between 0 and 1. This control law is identical to the one obtained in [START_REF] Comport | Statistically robust 2d visual servoing[END_REF].

3) Region reaching control: In [START_REF] Cheah | Region-reaching control of robots[END_REF] the main purpose is to bring the end-effector of the robot to a region instead of a point. The goal region is defined as the intersection of a set of k simple regions, each one being analytically defined by an inequality:

∀i = 1..k, e i (X) ≤ 0 ( 5
)
where X is the position of the end effector in the Cartesian space. The control aims at reducing the value of the left part of each inequality until they are all negative. When an inequality is respected, the corresponding part of the control is stopped. If the control law was developed to ensure e = 0, the robot would be controlled toward the intersection of all the contours of the regions [START_REF] Chaumette | Potential problems of stability and convergence in imagebased and position-based visual servoing[END_REF]. In order to bring the robotic system inside this region, the task vector is defined to be e q = H( 1 2 e 2 1 , ..., 1 2 e 2 k ), where H is a diagonal matrix whose components are null if the corresponding regions have been reached, and equal to 1 otherwise. Using these notations, it can be shown [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] that the control law proposed in [START_REF] Cheah | Region-reaching control of robots[END_REF] is equivalent to: q = -λ(HJ) ⊤ He (6)

The form is similar to the two previous control laws, but with the transpose (HJ) ⊤ instead of the pseudo inverse (HJ) + . 4) Qualitative servoing: The main objective of the qualitative servo control proposed in [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF] is to enlarge the convergence area, by explicitly requiring that the error e converges toward a confident interval, instead of a particular desired value as it is usually performed. In this sense, the system is thus required to perform a qualitative convergence.

The error function e q is defined by e q = H(e -ē), where ē is the limit of the convergence area: when a component of e is below its corresponding threshold ē, the associated part of the control is inactivated. The activation matrix H is a diagonal matrix whose coefficients vary continuously between 0 to 1 as the system enters or leaves the convergence area.

The control law that regulates the error e into the confidence interval proposed in [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF] is:

q = -λ(HJ) + H(e -ē) (7)
Once more, we recognize the same form of the previous control laws.

D. Synthesis

Several control laws that deal with varying feature set have been presented in the previous subsections. All have been written using an equivalent framework, with similar notations, as a matter of comparison. A common control law equation can be noticed:

q = -λ(HJ) ⊞ He ( 8
)
where ⊞ is a matrix operator (the pseudo inverse or the transpose). The control law is a composition of three parts: the matrix HJ, the matrix operator ⊞ , and the vector He. The diagonal activation matrix H is used to smoothly remove or add features of e and also to nullify the corresponding lines of the Jacobian matrix. When ⊞ is the pseudo inverse, this second point is fundamental. Indeed, if the Jacobian line is not nullified (i.e. if q = -λJ + He is used), then the feature is taken into account into the least-square minimization, and the control law tries to minimize the motion of the inactivated feature, by imposing the velocity ėi = 0 (which is a control in itself, and the result is very different to not constrain ėi at all).

To ensure the continuity of the control law, the simplest solution is to ensure the continuity of each of the components. In particular, it is not sufficient to ensure the continuity of HJ and He if the matrix operator ⊞ is not continuous. Thanks to a correct definition of H, both the task vector and the Jacobian matrix are continuous at feature activation or inactivation. To ensure the control law continuity, it is then enough to ensure the continuity of the matrix operator ⊞ . The pseudo inverse operator is continuous when the rank of the matrix is constant. It is very important to notice that this is the basic hypothesis in the three control laws presented above. This is a sufficient condition to ensure the continuity of the control law.

However, the pseudo inverse operator is not continuous at rank change. This means that these control laws are not continuous if the number of features decrease below a certain level (which is not considered in [START_REF] Comport | Statistically robust 2d visual servoing[END_REF], [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF]). In [START_REF] Cheah | Region-reaching control of robots[END_REF], this case can happen. The continuity of the control law is then obtained by using the transpose operator instead of the pseudoinverse operator (the transpose is always continuous, even at matrix-rank change). However, using the transpose can lead to a very non-optimal control, and the pseudo inverse is often a much more efficient solution [START_REF] Espiau | A new approach to visual servoing in robotics[END_REF].

In the following sections, the generic control law (8) will be proved to be continuous as long as the number of active features is sufficient (in a sense that will be defined precisely in the following). It will also be shown that strong discontinuities can appear when the number of active features is not sufficient. Based on this observation, we will build a new matrix operator that is continuous in all cases, and acts like the pseudo inverse outside of its discontinuities. From this new operator, a control law with a similar form will be proposed and proved to be continuous in all cases.

III. DEFINITIONS

In this section, we define all the notions that are required for the following study. We firstly propose a global definition to refer to the tasks whose form is similar to those presented in the previous section. Then we propose formal definitions to characterize some classical notions of the redundancy of a system with respect to a given task.

A. Varying-feature-set task Definition 3.1 (Varying-feature-set task): Let e be any feature vector which is called task in the following. Its Jacobian is supposed to be of constant rank. The task e q is a varyingfeature-set task based on e if it respects:

e q = He (9)
where H is a diagonal matrix whose coefficients continuously vary within the interval [0, 1].

Remark 3.1:

The four control schemes (3), ( 4), ( 6) and ( 7) recalled in the previous section are based on a varying-featureset task.

B. Input redundancy and decoupling Definition 3.2 (Full-rank matrix):

The matrix A is full row rank (FRR) iff the number of its rows is equal to its rank. It is full-column rank (FCR) iff the number of its columns is equal to its rank.

Definition 3.3 (Non-redundant input):

Let e be any task. The task e is said to be non redundant in input (or to have a non-redundant input) if its Jacobian matrix is FRR.

Definition 3.4 (Redundant input): On the opposite, a task has a redundant input if its Jacobian is not FRR.

Remark 3.2:

If the matrix J is not FRR, it is possible to separate its lines into a generator set J 0 and a redundant set J 1 that can be defined as a linear combination of J 0 : J 1 = χJ 0 . The couple (J 0 , χ) is called factorization. Its formal definition is the following. Definition 3.5 (Matrix factorization): Let J be a non-FRR matrix. Let P be a permutation matrix, J 0 a FRR matrix and χ a matrix such that:

J = P J 0 χJ 0 , (10)
then the set P, J 0 , χ is called factorization of the matrix J by J 0 . J 0 is the generator matrix of J, and χ is the multiplier of the factorization. In order to simplify notations, the permutation P will be often omitted. Thereby, a factorization of J is denoted J 0 , χ (P is easily deduced from J, J 0 and χ). Remark 3.3: If some columns of the multiplier χ are null, the factorization can be developed:

J =   J A J B χ B J B   (11)
with

J 0 = J A J B and χ = [0 χ B ].
Features corresponding to J B and χ B J B are the redundant part of the input vector. J A corresponds to the non-redundant part, because none of the features can be defined as a linear combination of the features associated to J A . On the opposite, if the multiplier χ does not have any null column, then the factorization is said to be fully redundant.

Definition 3.6 (Full-redundant input):

The task e has a full-redundant input if all partitions of its Jacobian J of the form [START_REF] Espiau | A new approach to visual servoing in robotics[END_REF] result in J A = 0.

Corollary 3.1 (Characterization of a full-redundant input):

The task e has a full-redundant input iff its Jacobian J can be written J = P J 0 χJ 0 , where P is a permutation matrix, J 0 is FRR and none of the columns of the multiplier χ is null.

Proof: The proof is given is [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF]. Definition 3.7 (Decoupled input feature): Let e be a feature set. The feature e 2 is distinguished2 from the other features denoted e 1 . Let J 1 and J 2 be the Jacobians of e 1 and e 2 respectively. The feature e 2 is said decoupled from the other features e 1 of e if:

R(J + 1 ) ⊥ R(J + 2 ) (12)
where R(A) is the range of matrix A. Corollary 3.2: Two feature sets e 1 and e 2 are decoupled iff :

J 2 J + 1 = 0 (13a) and

J 1 J + 2 = 0 (13b)
Proof: A well-known result concerning the kernel and the range of a matrix A is:

R(A ⊤ ) = N (A) ⊥ (14)
where N (A) is the kernel of A, and E ⊥ is the orthogonal complementary of subspace E. Using [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], we obtain

R(J 1 ⊤ ) ⊂ N (J 2 ). Since R(J 1 ⊤ ) = R(J 1 + ), this proves (13a). Reciprocally, if (13a) is true, then R(J 1 ⊤ ) = R(J 1 + ) ⊂ N (J 2 ). Since R(J 2 + ) = R(J 2 ⊤ ) = N (J 2 ) ⊥ , then R(J + 1 ) is orthogonal to R(J + 2 )
. The dual equation is obtained by the same way.

Remark 3.4:

If all the features of e are decoupled, then it is easy to show that e has a non-redundant input. Moreover, if one feature is decoupled, e can not have a full-redundant input.

Intuitively, the behavior of the control law when progressively inactivating a feature will differ if a redundant feature, a non-redundant or a decoupled one is considered. The four characterizations of the features that have been defined upper (redundant, non redundant, full redundant and decoupled) can be enlarged to the varying-feature-set tasks.

Definition 3.8 (Charasteristics of a varying-feature-set task): Let e q be a varying feature set. The corresponding active task e A is constructed by considering only the input features whose weight in H is not null. Furthermore:

• The varying-feature-set task e q has a non-redundant active input if the associate active task e A has nonredundant input. • The varying-feature-set task e q has a redundant active input if the associate active task e A has a redundant input. • The varying-feature-set task e q has a full-redundant active input if the associate active task e A has a fullredundant input. • An active feature e 2 is decoupled from the other active features if e 2 is decoupled from the other features belonging to the associate active task e A . Using these definitions, we will now study the control laws based on varying feature set (such as those recalled in Section II) in the general case.

IV. VARYING-FEATURE-SET CONTROL SCHEME

This section considers the continuity of different control laws derived from Definition 3.1, and presented in Section IV-A. It will be shown in Sections IV-B to IV-D that when the Jacobian of the task is not fully redundant, none of these control laws is continuous.

A. Control laws based on a varying-feature-set task

Let e q be a task characterized by a varying feature set such that e q = He. Its derivative is:

ėq = H ė + Ḣe ( 15
)
As seen above, it is usually considered that H varies slowly. With the approximation Ḣ = 0, we obtain the simple expression J eq = HJ where J and J eq are respectively the Jacobians of e and e q . Knowing J eq , it is possible to apply directly the classical control scheme (2), obtaining thus:

q = -λ J + eq e q = -λ HJ + He (16)
Several choices can be considered for J + eq . Apart from the classical approximation of J (see [START_REF] Malis | Improving vision-based control using efficient second-order minimization techniques[END_REF] for a review), we will focus on five possible choices concerning H, in order to try to get the global continuity of the control law:

q = -λ HJ + He (17) q = -λ HJ + He (18) q = -λ HJ † He (19) q = -λ HJ + He (20) q = -λ HJ + He (21)
H is an approximation of H defined as: H = Diag 1 if h i = 0 0 otherwise , and A † is the damped least square inverse of A [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF], [START_REF] Deo | Robot subtask performance with singularity robustness using optimal damped least squares[END_REF] (the interest of this inverse operator will be given in Section IV-D). It is trivial to obtain ( 18), ( 19) and ( 20) from the general relation [START_REF] Malis | 2 1/2 D visual servoing[END_REF]. Since H + H = H, Eq. ( 17) and ( 21) are respectively obtained by approximating J + eq by HJ + H + and HJ + H + . Even if these two derivations do not seem to be intuitive, their final formulations correspond to easily understandable situations, e.g. a full approximation and a partial one. In particular, the use of both H and H in ( 20) and ( 21) is explained in Section IV-E.

The following sections study the behavior of these different control laws, and especially their continuity at Jacobian-rank change.

B. Full approximation (17)

This first control law corresponds to the naive way to consider a task with a varying feature set: a component getting inside the activation area is directly considered within the minimization scheme, without any progressive activation. Of course, this kind of control law is not continuous [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], as explained in Section II-B. The importance of the discontinuity depends on the value e 2 and also on the way the addition of the line J 2 modifies the singular values of the Jacobian.

C. No approximation (18)

To solve the discontinuity of [START_REF] Mansard | Task sequencing for sensor-based control[END_REF], a logical solution is to use an activation matrix H. When a feature gets inside the activation area, it is thus progressively (or smoothly) added within the control scheme, until full activation. The control law (18) can be found in [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], [START_REF] Comport | Statistically robust 2d visual servoing[END_REF], [START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF], as presented in Section II.

This section shows that this control law is continuous as long as enough features are activated so that the input is fully redundant. It is also shown that the smoothness brought by H is not effective when the number of active features is not sufficient. More precisely, it will be shown that control laws [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] and ( 17) are surprisingly equivalent when the task is non redundant. Three cases are separately studied, whether the task is not redundant, redundant or fully redundant.

1) Non-redundant input signal: Theorem 4.1: Let e q be a varying-feature-set task whose active input is non redundant. The two control laws [START_REF] Mansard | Task sequencing for sensor-based control[END_REF] and [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] are equal.

Proof: Let us first introduce another inverse of matrix A, the generalized inverse [START_REF] Ben-Israel | Generalized inverses: theory and applications[END_REF]. It has been introduced in linearfeedback control in [START_REF] Whitney | The mathematics of coordinated control of prosthetic arms and manipulators[END_REF], and widely used since [START_REF] Chang | A weighted least-norm solution based scheme for avoiding joints limits for redundant manipulators[END_REF], [START_REF] Baerlocher | An inverse kinematic architecture enforcing an arbitrary number of strict priority levels[END_REF]. A very good analysis of such an inverse can be found in [START_REF] Doty | A theory of generalized inverses applied to robotics[END_REF]. Let W be a full-rank square matrix. The weighted generalized inverse matrix of A weighted on the left by the weights W is defined to be [START_REF] Doty | A theory of generalized inverses applied to robotics[END_REF]:

A W# = (WA) + W (22)
The (full-rank) weight matrix H f is defined from H by:

H f = Diag h i if h i = 0 1 otherwise ( 23
)
Using this definition, we can write:

(HJ) + H = (H f HJ) + H f H = ( HJ) H f # H (24)
By a simple feature reordering, we suppose that the Jacobian can be written:

HJ = H 1 J 1 0 ( 25
)
where J 1 is FRR since the active input of e q is non redundant. One of the major results of [START_REF] Doty | A theory of generalized inverses applied to robotics[END_REF] is to prove that the weighted inverse ( 22) is invariant to the choice of

W if A is FRR. Since A 0 + = [A + 0],
this result can easily be generalized to the case [START_REF] Samson | Robot Control: the Task Function Approach[END_REF]. Thus, since H 1 J 1 is FRR (J 1 is FRR and H 1 is invertible), it is possible to write using ( 24):

(HJ) + H = ( HJ) H f # H = ( HJ) + H (26)
This last result proves that if the active input features are non redundant, the two control laws ( 17) and ( 18) are equal. If the active input is not redundant, the weights of H are not taken into account. The discontinuities are thus the same than when using the simple matrix H.

2) Redundant input signal:

The previous result can be easily extended to the case of a redundant input as long as the input is not fully redundant.

Theorem 4.2 (Weighted least square invariance): Let J be any matrix, and W be a diagonal and invertible weight matrix. Let J be a factorization such that:

J = P   J 0 J 1 χ 1 J 1   (27)
where (J 0 , J 1 ) is FRR. The same factorization can also be applied to the weighting matrix

W = P Diag W 0 , W 1 , W 2 .
Then the non-redundant part J 0 of J is invariant to the weights W when computing the weighted general inverse J W# :

J W# = J f W# (28)
where W = P Diag(I, W 1 , W 2 ). This result can be proved by using a full-rank decomposition of the Jacobian J. The demonstration is technical and fastidious, and is thus not given here. The interested reader is referred to [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] for additional details.

Using the Theorem 4.2, the following corollary is immediate.

Corollary 4.1: Let e q be a varying-feature-set task whose active input is redundant but not fully redundant. Then the nonzero weights h i corresponding to the non-redundant features are not taken into account in the control law [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF], that is to say a partially active feature h = 0 is taken into account as a fully active feature h = 1.

Let us consider a task e q whose first feature is non redundant. The activation matrix is H = h 0 0 H 1 . Using Corollary 4.1, we can write if h is not null:

(HJ) + H = ( 1 0 0 H 1 J) + 1 0 0 H 1 -→ h→0 ( 1 0 0 H 1 J) + 1 0 0 H 1 (29)
However, if h is null:

(HJ) + H = ( 0 0 0 H 1 J) + 0 0 0 H 1 (30)
The matrix (HJ) + H is not continuous when h → 0. The control law is thus not continuous when some features that are non redundant are inactivated.

3) Full-redundant input signal: On the opposite, it is easy to show that ( 18) is continuous when the activated input is fully redundant. In this case, the activation or inactivation of any feature will not modify the rank of HJ. The pseudoinverse operator is continuous when the rank of the matrix is constant [START_REF] Ben-Israel | Generalized inverses: theory and applications[END_REF]. Since HJ is continuous, this proves that the control law is continuous.

In conclusion, the behavior of the system controlled by ( 18) is continuous when enough features are activated so that the input is fully redundant, and discontinuous when the input is only redundant or non redundant. The discontinuity of the classical solution [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] is due to to the discontinuity of the pseudo-inverse operator when the rank of the Jacobian matrix changes [START_REF] Ben-Israel | Generalized inverses: theory and applications[END_REF].

D. Using the damped least square inverse (19)

To compensate the discontinuities of the pseudo-inverse operator, it has been proposed to use the damped-least-square inverse [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF], [START_REF] Kelmar | Automatic generation of forward and inverse kinematics of a reconfigurable modular manipulator system[END_REF], [START_REF] Deo | Robot subtask performance with singularity robustness using optimal damped least squares[END_REF]. This operator is defined by:

A η † = VΣ η † U ⊤ (31)
where (U, Σ, V) is the singular-value decomposition (SVD) of A and Σ η † is a diagonal matrix whose coefficients σ η † i are computed from the singular values σ i by:

σ η † i = σ i σ 2 i + η 2 (32)
Theoretically, the introduction of η does not bring any new parameter to tune, since it only replaces a threshold used when computing the pseudo inverse to bound the singularvalue inversion. We thus denote A η † = A † in the following.

This operator can be used instead of the pseudo inversion in the classical control laws [START_REF] Ben-Israel | Generalized inverses: theory and applications[END_REF]. As proposed in [START_REF] Chiaverini | Singularity-robust task-priority redundancy resolution for real-time kinematic control of robot manipulators[END_REF], the damped least square inverse reduces the effect of the control singularities. On the opposite, it also reduces the precision of the control. In particular, when the damped least squares are used with (2), the effect is not the nice decoupled decrease ė = -λe since JJ † is not the identity. The higher the value of η, the better the smoothing, but the more the reference behaviour will be disturbed.

In the control law [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF], the damping factor acts as a smoothing of the discontinuity. The smoothing is effective at rank changes (when a singular value passes from non zero to zero), that is to say at activation or inactivation of a nonredundant feature. In theory, the introduction of the damping factor thus solves the problem of the discontinuity encountered in [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF]. However this is not the case in practice. Practically, the damping is only effective around the threshold η.

Let us consider the activation of a non-redundant feature from H h=0 = 0 0 0 I to H h=1 = I. The matrix (HJ) † H is numerically equal to (H 0 J) † H 0 when the corresponding singular value is very small compared to η, typically in [0, 1e -3 η]. It is numerically equal to (H 1 J) † H 1 = J + when the singular value is very large compared to η, typically in [1e +3 η, 1]. In practice, the matrix (HJ) † H passes from (H 0 J) † H 0 to J + the very small interval [1e -3 η, 1e 3 η].

For example, if η = 1e -6 as classically done, the smoothing is effective into the interval [1e -9 , 1e -3 ], that is to say on an interval whose length is only 10 -3 . On the opposite, when removing a redundant feature, the variation of (HJ) † H is smooth into [0, 1], whose length is 1. The smoothing is effective on a large interval. The comparison between the smoothness is shown on Fig. 1. As shown by Fig. 1-(a), the control law [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] is smooth in theory. However, as shown by Fig. 1-(b), both control laws ( 18) and ( 19) are equivalent in practice, and discontinuous. The direct consequence is that the damping parameter η has to be set very high which in turn reduces significally the performances of the control. The damped least squares are thus not a relevant solution to smooth the irregularities of the varying feature set.

E. Partial approximations (20) and (21)

We have shown in the previous sections that the classical control laws [START_REF] Mansard | Task sequencing for sensor-based control[END_REF] and ( 18) are unable to ensure the continuity of the control law when the input is not fully redundant. These discontinuities can be understood naively by writing that (HJ) + H = J + H + H = J + (if H is invertible and J is FRR). The use of H both inside and outside the pseudo-inverse operator induces intuitively a simplification that cancels the (b) Linear scale Fig. 1. Comparison between the smoothness of (HJ) + H (control law [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF]) and (HJ) † H (control law ( 19)) when adding a non-redundant feature, and when adding a redundant feature. The graph is shown twice, with log X-scale (a), and with linear X-scale (b). Parameter η is set to 1e -6 . smoothing. To prevent this simplification, a logical proposition is to use the true activation matrix H only once and its approximation H elsewhere. Two possibilities arise then: we can use the approximation H inside the pseudo inverse and use the exact matrix H outside of the inverse, in factor of the task e (this solution corresponds to ( 20)) ; or we can use H inside the inverse, and H outside (this gives then [START_REF] Nelson | Strategies for increasing the tracking region of an eye-in-hand system by singularity and joint limits avoidance[END_REF]).

Control law [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF] smoothly nullifies the feature values that are getting close to the activation frontier, but abruptly removes the corresponding part of the Jacobian matrix. The Jacobian matrix is thus not continuous, but it is hoped to obtain a continuous control law by correcting the discontinuities with smoothed input features. The following theorem proves that the continuity is obtained only in the very particular case of a perfect decoupling.

Theorem 4.3: Let e q be a varying-feature-set task based on e. Control law ( 20) is continuous at feature activation or inactivation iff the activated features are decoupled from the other ones.

Proof: Let us first consider a task e where all the features but one are fully activated. This last feature is denoted e 2 . Let J 2 be its Jacobian. The Jacobian of the task e can then be

written J = J 1 J 2
, where J 2 is single line. Since all the features corresponding to J 1 are fully activated, the activation matrix can be written:

H = I 0 0 h (33)
The pseudo inverse of J can be decomposed using a divide and conquer approach:

J + = J 1 J 2 + = J + 1 J + 2 + X 12 (34)
where

[J + 1 J + 2 ]
is the least-square minimization of each Jacobian J 1 and J 2 taken separately, and X 12 is the part of the least squares corresponding to the coupling between the two Jacobians. To simplify the notations in the following, X 12 is written X 12 = X 1 12 X 2 12 , where X 2 12 is simple column. Using this decomposition and (33), the inverse used in [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF] can be written:

( HJ) + H =    J + 1 hJ + 2 + X 1 12 hX 2 12 if h = 0 J + 1 0 if h = 0 (35)
The discontinuity clearly appears in this formulation since:

lim h→0 ( HJ) + H = J + 1 0 + X 1 12 0 (36)
which is different from J + 1 0 when h = 0 and if X 12 is not null. To prove the equivalence between decoupling and continuity, we thus just have to prove that X 12 is null iff e 2 is decoupled. Let us suppose that X 12 = 0, that is to say

J + = [J + 1 J + 2 ]
. The definition of the pseudo inverse gives J + JJ + = J + . By developing the value of J in this equality, we obtain J + 2 J 2 J + 1 = 0 and finally J 2 J + 2 J 2 J + 1 = J 2 J + 1 = 0. We obtain similarly J 1 J + 2 = 0. Using Corollary 3.2, this proves that e 1 and e 2 are decoupled. Reciprocally, if e 2 is decoupled, then

J + = (J + 1 J 1 +J + 2 J 2 )[J + 1 J + 2 ] [2]. Corollary 3.2 finally proves that J + = [J + 1 J + 2 ]
and thus X 12 = 0. In fact, [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF] manages to smooth the part of the control corresponding to the minimization of e 2 . However, it is unable to smooth the part X 1 12 of the control that corresponds to the coupling between e 2 and the other features. When h is not null, the space corresponding to the coupling matrix X 1 12 is used as a trade-off to realize both e 1 and e 2 . As soon as h really becomes null, X 1 12 becomes instantaneously available for e 1 alone, which results in a strong discontinuity in the control law.

Finally, control law [START_REF] Nelson | Strategies for increasing the tracking region of an eye-in-hand system by singularity and joint limits avoidance[END_REF] may not be realizable due to ill conditioning. Indeed, when some components of H are small, the matrix HJ can be very ill conditioned. Its pseudo inverse (HJ) + is thus very large. In [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF], the large coefficients of (HJ) + are diminished when multiplied with H. If the approximation H is used instead, no correction is brought since the small coefficients of H are approximated by 1. The matrix coefficients of (HJ) + H can thus be very large, and the result on the control is unpredictable.

F. Conclusion

In this section, several control laws have been proposed, based on the classical methods in the state of the art. The continuity of these control laws has been investigated when the number of visual features varies, and the general characteristics observed are summarized on Table I. None of these control laws is continuous when the task is not fully redundant, i.e. when at least one feature can not be expressed as a combination of the others. Indeed, when this feature is activated or inactivated, the system earns or looses a degree of freedom. In this situation, the nice properties of continuity or stability demonstrated in [START_REF] Samson | Robot Control: the Task Function Approach[END_REF] can not be obtained directly anymore.

V. BUILDING A NEW INVERSE OPERATOR

Since the classical control schemes based on the pseudoinverse operator are not able to ensure the continuity, a control law based on a new inversion operator is proposed in this section. We first propose a formal specification of the continuity properties that this operator should fulfill to ensure the control-law continuity. We propose then an implementation that respects these specifications, and we use it to build a new control law that is proved to be continuous. We finally prove that the obtained control law has similar properties of local stability than the classical pseudo-inverse-based control laws.

A. Formal definition

In a first time, let us define the properties of the operator we are looking for. This operator should be equivalent to the classical pseudo-inverse when all the features are fully active or inactive (i.e. when ∀i = 1..k, h i ∈ {0, 1}). The operator should maintain the continuity when h smoothly evolves from 0 to 1. This is formalized through the following definition: Definition 5.1 (Continuous inverse): Let A be a matrix of size (k × n) and H be a diagonal activation matrix of size (k × k), whose components belong to [0, 1]. The continuous inverse A ‡H of a matrix A subject to an activation H respects the two following properties:

• if ∀i = 1..k, h i ∈ {0, 1}, then:

A ‡H = (HA) + = (HA) + H (37) • The function (A, H) → A ‡H is continuous wrt. H.

B. Construction of a continuous inverse

We now propose an implementation of this definition, based on the study of ( 20) and particularly on the discontinuity observed in (36). The goal is to build an inverse of the following form:

J ⊕H = h 1 J + 1 h 2 J + 2 + h 1 h 2 X 12 ( 38
)
The generalization of such relation requires a more general definition of the coupling matrices. Definition 5.2 (Coupling matrices of a matrix J): The coupling matrices of a k × n-matrix J are indexed by the subspaces P of the k first integers. They are defined recursively:

if P = ∅, X ∅ = 0 n×k otherwise ∀P ∈ P(k), X p = J + P -Q P X Q ( 39
)
where P(k) = P(1..k) = P| P ⊂ 1..k are all the subsets composed of the k first integers, and J P = HJ where h i is equal to 1 if i ∈ P, and to 0 otherwise (i.e. J P is the Jacobian matrix J whose only activated lines are those of P).

Remark 5.1:

If J has two lines (J = J 1 J 2
), then the definition of the coupling matrix X 12 corresponds to the notation given in (34). this definition, it is now easy to build an inverse J ⊕H that respects the specification given in Definition 5.1.

Definition 5.3 (Continuous inverse J ⊕H ): Let J be a matrix of size (k × n) and H the corresponding activation matrix whose components h i i∈1..k belong to the interval [0, 1]. The continuous inverse of J activated by H is defined by:

J ⊕H = P∈P(k) i∈P h i X P ( 40
)
Remark 5.2: The continuous inverse of a double-line Jacobian J = J 1 J 2 , activated by H is:

J ⊕H = h 1 h 2 X {1,2} + h 1 X {1} + h 2 X {2} = h 1 J + 1 h 2 J + 2 + h 1 h 2 X 12 (41)
This last equation matches exactly the preliminary goal written in (38). Definition 5.3 proposes a new operator to inverse a matrix J activated by a diagonal activation matrix H. This operator will now be proved to respect the specification given in Definition 5.1.

Theorem 5.1 (Continuity of J ⊕H ): The inverse J ⊕H of J activated by H fulfills the specifications of a continuous inverse given in Definition 5.1.

Proof: Two points have to be proved. First of all, we prove that J ⊕H is equal to the classical pseudo inverse (HJ) + H when the components of H are binary (i.e. no feature is within the transition region). Let P be the set of non-zero components of H. Using the notations of Definition 5.2, we have thus to prove that J ⊕H = J + P . Using (40), it is possible to write:

J ⊕H = X P + Q P X Q (42)
From (39), it is known that X P = J + P -Q P X Q . Introducing (39) in (42), it is finally possible to obtain J ⊕H = J + P . The second point to prove is the continuity of the inverse with respect to the variation of H. All the coupling matrix X p Algorithm 1 Calculate J ⊕H Parameters: Jacobian J, activation H, coupling matrices X ∅ . . . X 1..k Ensure: R = J ⊕H 1: (k × n) ⇐ dimJ 2: R ⇐ 0 n×k 3: for all P ⊂ 1..k do 4:

P rod ⇐ 1

5:

for all i in P do 6:

P rod ⇐ P rod × H(i, i)

7:
end for 8:

R ⇐ R + P rod × X P 9: end for 10: return R are independent to H (by Definition 5.2). Thus the inverse ( 40) is simply a polynomial form of the h i . Since a polynomial is always continuous, the continuity of the inverse with respect to the variations of H is demonstrated.

C. Computation of the continuous inverse

As given by (42), the continuous inverse operator is based on a sum of the coupling matrices. Algorithm 1 details the computation of the continuous inverse based on the values of all the coupling matrices. The computation of the coupling matrices is then detailed in Algorithm 2.

To perform the scan of all the members of P(k) (as expressed in Line 3 of the algorithm), two solutions are possible. The first one is to exhaustively describe off-line all the subparts of 1..k, and to store the result in a list, which can then be scanned during the control. The exhaustive description is costly, but has to be done only once. The second solution is to use the binary representation of the integers as a unique representation of each subpart of 1..k by defining the following bijective association: x = k i=0 b i 2 i → i, so that b i = 1 , where (b 0 ...b k ) is the binary representation of x. Using this bijection, the set of all subparts can be scanned directly by covering all the integers fro 0 to 2 k . On the opposite, the scan of P expressed by Line 5 of the algorithm is simply realized by expressing P as a list.

As already said, each specific coupling matrix X P can be computed as detailed in the recursive Algorithm 2. As previously, the loop Line 7 is performed by using the equivalent integer representation of the subset. The computation of each matrix X P has to be performed only once, by storing the already-computed value in an appropriate structure.

D. Continuous control law

Based on this new inversion operator, it is possible to propose the following control law:

q = -λJ ⊕H e (43)
Thanks to the nice properties of the continuous inverse, the control law (43) is continuous everywhere. Moreover, when all the features are fully active or fully inactive (i.e. ∀i = 1..k, h i ∈ {0, 1}), the control law (43) is equivalent to the classical control law (2) (i.e. q = -λJ + A e A , where e A is the active part of e). As shown in the following paragraph, (43) has thus the same stability property of the equivalent task. In Algorithm 2 Calculate the coupling matrix X P Parameters: Jacobian J, subset P Ensure:

X P is computed 1: (k × n) ⇐ dimJ 2: H ⇐ 0 k×k 3: for all i in P do 4:
H(i, i) ⇐ 1 5: end for 6: X P ⇐ HJ + 7: for all Q P do 8:

X P ⇐ X P -X Q 9: end for particular, if all the features are active at the desired position, the control law (43) is locally asymptotically stable at task completion.

E. Stability of the control law Theorem 5.2 (Asymptotical statibility at binary activation):

Let e be a task whose activation is denoted by the diagonal matrix H and whose Jacobian J = ∂e/∂q is full rank. Let e q denote the equivalent active task (e q = He) whose Jacobian is denoted J q . Then, when all the components of H are binary (i.e. ∀i = 1..k, h i = 0 or h i = 1), Control Law (43) has the same local properties of stability than the equivalent active task function e q :

• it is stable in the sense of Lyapunov.

• it is asymptotically stable in the sense of Lyapunov if J q is full rank. Proof: The control law associated to the task e q is q = -λ HJ + He (44)

From the first point of Definition 5.1, control law (43) is equal to (44) when the components of H are 0 or 1. Then locally it has the same properties of stability as given by [START_REF] Samson | Robot Control: the Task Function Approach[END_REF]. This last result is particularly interesting when the activation is binary around the desired position, as formalized by the following corollary.

Corollary 5.1: (Local asymptotical stability around the desired position): Consider the task e, H, J , whose desired position is a submanifold of the activation area, i.e. for all configurations q, if e(q) = 0, then H(q) = I. Then the control law (43) is asymptotically stable in a neighborhood around the desired position if the matrix HJ is full rank at the desired position.

Proof: Let D * = q : e(q) = 0 denote the goal position, and V = 1 2 e ⊤ He. V is a positive continuous function of the configuration q. In the manifold D * , we have H = H 2 and Ḣ = 0: thus the derivative V is equal to V = -λe ⊤ HJ HJ + He = -e q ⊤ J q J q + e q < 0 (with e q the equivalent active task function whose Jacobian is J q ). Since V is continuous with respect to the configuration in the closed set D * , there exists an open neighborhood N of D * such that V < 0 inside N . In N , the control law (43) is asymptotically stable in the sense of Lyapunov. Remark 5.3: The case of Corollary 5.1 is the one considered in the experiments presented in Section VI: as explained in the following, at the desired position, all the visual features are in the fov of the camera and are thus active in the control law. On the opposite, it has not been possible yet to demonstrate the stability of the system when 0 < h < 1. In particular, when the desired position is inside the activation border, we have only be able to verify experimentally that the behavior of the system seems appropriate. Remark 5.4: (Bounded-input bounded-output Stability) If the Jacobian J is considered constant, the continuous inverse J ⊕H is simply a polynomial form:

J ⊕H = P olyn(h 1 , . . . , h n ) = P∈P(k) monom P [h i ] X P (45)
where monom P [h i ] is a product of the subpart of the h i . Since the h i are bounded by [0, 1], the polynomial form is k-Lipschitz continuous, with a constant k that depends on the coupling matrices X P . It is therefore possible to prove the bounded-input bounded-output (BIBO) stability. However, the better bound that we have found for the constant k is 2 k , where k is the number of features, which is not relevant in practice.

VI. EXPERIMENTAL RESULTS

We present in this section several experiments that study the behavior of the system running the new control law presented in the previous sections. The experiments have been realized in simulation, using the classical visual servoing scheme based on feature points [START_REF] Hutchinson | A tutorial on visual servo control[END_REF], which is first recalled. Three typical experiments are then presented in details. During the execution, some points may leave the camera fov. They are then removed from the feature set. As done in [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF], an activation buffer is defined at the image border to smoothly inactivate the feature that are leaving the fov.

A. Visual servoing implementation

The work presented above is general and could be applied to any robotic task defined by a derivable error e. In the following, the error function is computed from visual features [START_REF] Hutchinson | A tutorial on visual servo control[END_REF]:

e = s -s * ( 46
)
where s is the current value of the visual features for task e and s * their desired value. In the experiments, the visual features are the 2D positions p i = (x i , y i ) of a set of points, whose 3D positions within the camera frame are denoted

P i = (X i , Y i , Z i ). ṡi = L s i v,
where v is the instantaneous camera velocity. For one point p i , L p i is the well-known matrix given in [START_REF] Espiau | A new approach to visual servoing in robotics[END_REF]. The interaction matrix of the task e is finally L = (L p1 , . . . , L p k/2 ). From (46), it is clear that the interaction matrix L and the task Jacobian J are linked by the relation:

J = LMJ q (47)
where J q is the robot Jacobian (ṙ = J q q) and M is the matrix that relates the variation of the camera velocity v to the variation of the camera pose parametrization (v = Mṙ).

As already said in II-A, an approximation J has to be used in practice. In particular, different choices are possible for L [START_REF] Malis | Improving vision-based control using efficient second-order minimization techniques[END_REF]. We choose J = L * MJ q , where L * is the interaction matrix computed at the desired position. This choice is frequently done since it reduces the risk of falling in a local 19) using a too large value of η, even if the velocity is continuous, is unable to converge and thus to achieve the task. On the opposite, control laws ( 18) and (43) manage to reach the desired position. Control law [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] provides an image trajectory which is quite abrupt when the points enter the activation area. On the opposite, the trajectories using control law (43) are smooth.

minimum. However, due to this approximation, some points may leave the camera fov during the servo [START_REF] Chaumette | Potential problems of stability and convergence in imagebased and position-based visual servoing[END_REF]. These points are then removed from the feature set as proposed in [START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF]. The error task is a varying-feature-set task based on (46), defined by e q = He. H is the activation matrix whose coefficients h i are defined by h 2i = h 2i+1 = min(h x (x i ), h y (y i )) The horizontal activation function h x is defined by:

h x (x) =            1 if x-+ ǫ x ≤ x ≤ x+ -ǫ x 0 if x ≥ x+ or x ≤ x- f ǫx x -(x + -ǫ x ) if x+ -ǫ x ≤ x ≤ x+ f ǫx (x -+ ǫ x ) -x if x-≤ x ≤ x-+ ǫ x (
48) where [x -, x+ ] is the horizontal range of the image, ǫ x tunes the length of the transient interval and the transient function f ǫ is defined by f ǫ (x) = 1 2 1 + tanh( ǫ x -1 1-x/ǫ ) . The vertical activation function h y is defined similarly. H defines around the image an activation buffer where the feature that is leaving the fov is progressively and smoothly inactivated.

B. First experiment: non-redundant task

The first experiment has been realized using a two-point target. The dimension and the rank of the task are thus both equal to 4 at full activation: the task is always non redundant. At the initial position, one point is out of the fov. We mainly consider the continuity of the control law when the point enters the fov. The experiment is summed up in Figures 2 and3.

The continuity of control laws ( 17), ( 18), ( 19) and (43) are compared in Fig. 3. As shown in Section IV-C, [START_REF] Mansard | Task sequencing for sensor-based control[END_REF] and [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] are equivalent in this case. An acceleration peak appears at rank change (see and (b)). An inflection point (corresponding to a discontinuity of the derivative) also appears in the point trajectories (see Fig. 2).

Control law ( 19) is able to ensure the continuity if η is properly set. However, Fig 3-(c Fig. 3. Experiment 1: Comparison of the acceleration peaks when using control laws ( 17) on (a), ( 18) on (b), [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] with several tuning on graphs (c) to (e) (η = 1e -9 , 1e -3 and 1) and ( 43) on (f). The acceleration is measured at the robot end effector, i.e. at the camera focal point. Since the main relevant situation occurs when the second point enters the camera fov at iteration 200, the plots have been limited to the interval [0, 500]. Control laws ( 17) and ( 18) are unable to ensure the continuity. Concerning [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF], the greater the tuning parameter η, the smaller the acceleration peaks are. A good compromise is obtained for this experiment with η = 1e -3 (with η = 1, the behavior seems to be correct while looking the continuity, but Fig. 2 shows that it is not when considering the overall task). Control law (43) also provides a smooth control, with no peak of acceleration.

importance of the threshold η of the damped-least-square operator. When η is too small (Fig. 3-(c)), the same peak of acceleration as with ( 18) is obtained. The more η increases, the more the acceleration peak decreases (until disappearing, see Fig. 3-(d)). However, if η is too large, the convergence becomes very slow (like if using the transpose operator). In some particular cases, the robot is unable to converge (see Fig. 2). A good trade-off has to be carefully selected (it is obtained here with η = 1e -3 ). This experiment emphasizes that it is very difficult to find a correct value for any conditions. Finally, the original control law (43) provides a good behavior. The control law is continuous (see Fig. 3-(f)), and the acceleration is similar to the one obtained with [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] for the best tuning of η. The good properties of (43) are also visible on Fig. 2: the point trajectories are smooth and continuous.

C. Second experiment: oscillations at rank change

This experiment illustrates the problems that may occur if the control law is discontinuous. In the case presented below, the classical control laws oscillate when a point leaves the camera fov, which could even prevent the convergence. This problem is solved when using a continuous control law. The experiment is summed up in Figures 4, 5, and6.

The target used in this experiment is the same as for Experiment 1. Two points are considered, which gives a task of dimension and rank 4. The required displacement is mainly a large rotation around the optical axis. During the rotation, P 2 gets close to the activation border (see Fig. 4). At this point, if the two points are considered in the feature set, the computed control makes P 2 leave the camera fov. On the opposite, if considering only the point P 1 remaining in the fov, the control becomes mainly a pan-tilt motion that tends P 2 to enter again the activation zone. The oscillation observed is thus due to this dilemma: if P 2 is inactivated, it enters the image which activates it, which makes it leaves the image, etc. The oscillation occurs due to the control law discontinuity. Control laws [START_REF] Mansard | Task sequencing for sensor-based control[END_REF], [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] and [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] with η too small oscillate, (see Fig. 5). Moreover, ( 18) is unable to leave the oscillation area: the servo does not converge. On the opposite, using (43), the control is smooth, and no oscillation appears (see Fig. 6).

D. Third experiment: redundant task

This last experiment points out the discontinuities that can occur with a redundant task when a non-redundant feature is inactivated. The target is composed of eight points. The global task is thus fully redundant. The desired motion is mainly a rotation around the optical axis. While performing this motion, a large amount of points initially close to the image borders leaves the camera fov. Due to the point inactivations, the task becomes redundant, then not redundant (between iterations 150 and 500, only two points remain within the camera fov). Finally, when the robot achieves the required motion at the end of the execution, all the points enter the image frame again and the global task converges. The experiment is summed up on Figures 7, 8 and9. The behavior is equivalent when using ( 17), [START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF], [START_REF] Nakamura | Inverse kinematics solutions with singularity robustness for robot manipulator control[END_REF] or [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] with a low gain η. Therefore, we only give the graphics for [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] with different values for η.

The point trajectories obtained with control law [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] are given in Fig. 7-( activation border, causing oscillation in the control law. This is due to a similar phenomena as in the previous experiment. The point is finally detached from the border when P 1 enters the activation area (the task becomes then fully redundant). On the opposite, the trajectories using (43) are smooth, without any inflection point nor oscillation.

The required accelerations are shown on Fig. 8. When η is small, [START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] produces strong peaks of acceleration (see Fig. 8-(a)). We can notice the peak at iteration 250. At this time, three points are active. The task is fully redundant. However, it is still ill conditioned [START_REF] Chaumette | Potential problems of stability and convergence in imagebased and position-based visual servoing[END_REF], which finally also produces a discontinuity. While increasing the damping parameter η, the accelerations peaks are reduced (Fig. 8-(a) and (b)). For this experiment, the good value of η is 1e -2 . This emphasizes the difficult choice of η, that has to be tuned differently for each experiment. On the opposite, Fig. 8-(d) shows that the control law (43) is continuous. No acceleration peak appears, whatever the rank of the conditioning of the task is.

Finally, the computation cost of the control law (43) is given in Fig. 9. The computations have been realized without special optimization on a classical desktop computer (Pentium 2.3GHz monocore). Moreover, all the computations are done online: no special pre-process is perform beforehand. The cost increases with the number of features inside the activation buffer. The total cost is far below the milisecond, which makes it sufficient for application on a real robot.

VII. CONCLUSION

This paper has considered tasks defined by a set of features whose dimension is varying along the time. Such tasks have been addressed in the literature for several applications. Classically, the variation of the size of the feature set is performed by using an activation matrix whose values varie between 0 and 1. Within this context, a natural interrogation concerns the behavior of the resulting control law at the critical point of activation or inactivation of a feature. We have studied this situation, through several combinations and approximations of the Jacobian associated to such varying feature set.

The main point of this theoretical study is that using an activation matrix with a classical pseudo inverse is inefficient to ensure the continuity when the input signal is not fully redundant. It has been proved that the pseudo inverse is always discontinuous at the activation of a non redundant feature except in the particular case of a perfect decoupling.

To deal with this problem, an original inverse operator has been introduced. It insures the continuity even when the rank of the Jacobian changes. This new inversion operator has then been used to define a new control law, continuous everywhere. The good properties of this control law have finally been verified through several visual-servoing experiments.

Fig. 2 .

 2 Fig. 2. Experiment 1: points trajectories in the image. At the beginning of the servo, Point 2 is out of the image. The two desired positions are within the full-activation area. Control law (19) using a too large value of η, even if the velocity is continuous, is unable to converge and thus to achieve the task. On the opposite, control laws (18) and (43) manage to reach the desired position. Control law[START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] provides an image trajectory which is quite abrupt when the points enter the activation area. On the opposite, the trajectories using control law (43) are smooth.

Fig. 5 .Fig. 6 .

 56 Fig.5. Experiment 2: The six components of the camera velocities using control laws[START_REF] Mansard | Task sequencing for sensor-based control[END_REF] without approximation,[START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF] with a partial approximation and (19) with the damped least square inverse operator. Oscillations appear when P 2 reaches the image border (at Iteration 100).

Fig. 7 .Fig. 8 .

 78 Fig. 7. Experiment 3: point trajectories (a) using (19) (b) using control law (43). Using[START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF], P 3 then oscillates around the activation border. Using (43), the trajectories are smooth. The general form of the trajectories is similar to (a) but smoother, and P 3 does not oscillate when it is activated again.

Fig. 9 .

 9 Fig. 9. Experiment 3: Cost of the control law computation. The cost directly depends on the number of features inside the activation buffer (i.e. whose activation parameter h is such that 0 < h < 1.

  Experiment 2: image point trajectories. The main required motion is a rotation around the optical axis. With the classical control law[START_REF] Mansard | Continuity of varyingfeature-set control laws[END_REF], Point P 2 leaves the image. Due to discontinuities in the control law, oscillations appear then in the control, and P 2 oscillates around the image border. The point is stuck up at the border and the servo is even unable to converge. With an appropriate tuning of control law[START_REF] Marchand | Dynamic sensor planning in visual servoing[END_REF] or with the continuous control law (43), the servo converges.

						Image border
		200				Activation border
						Initial position
		160 180	1			Final position Control law (19), η=1 Control law (18) Control law (19), η=1e -3
		140				Control law (43)
	Y	120
		100
		80
			2
		60
		40
		50	100	150	200	250	300
				X
	Fig. 4.

Neglecting Ḣ is a classical approximation that is also found in[START_REF] Garcia-Aracil | Continuous visual servoing despite the changes of visibility in image features[END_REF],[START_REF] Cheah | Region-reaching control of robots[END_REF],[START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF]. In practice, when H and e decrease in the same direction (i.e. when the gradient of both e and diag(H) are in the same half-space, which is typically the case when the minimum of e is inside the area defined by H = 0, as done in[START_REF] Cheah | Region-reaching control of robots[END_REF], Section II-C3 or in[START_REF] Remazeilles | Qualitative visual servoing: application to the visibility constraint[END_REF], Section II-C4) this approximation does not disturb the stability of the control.

Denoted with bold font are the vectors, e.g. e 1 and matrices, e.g. J, and with non-bold font the scalar variables, e.g. e 2 .