# Positioning with respect to a cylinder using proximity-based control

John Thomas, François Chaumette

► To cite this version:

John Thomas, François Chaumette. Positioning with respect to a cylinder using proximity-based control. IROS 2025 - IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, Oct 2025, Hangzhou, China. pp.1-8. hal-05289868

HAL Id: hal-05289868

https://hal.science/hal-05289868v1

Submitted on 30 Sep 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>
Positioning with respect to a cylinder using proximity-based control

John Thomas, François Chaumette

*Abstract*— In this paper, we present how a proximity array attached as an end-effector can perform a positioning task with respect to a cylinder. We develop the complete modeling of the system from which a classical control law is designed. Positioning with respect to the outside of a cylinder can be used for non-contact inspection of the exterior of pipes in chemical plants or in oil/gas industries, while positioning with respect to the inside of a hollow cylinder can be used for guidance inside a pipe for non-contact inspection. We provide simulation and experimental results to validate the presented theory.

*Index Terms* - Sensor-based Control, Proximity-based Control, Pipe inspection.

I. INTRODUCTION

Various types of proximity sensors have been used in the past for achieving specific tasks in robotics. In [1], proximity sensing is used for contactless material detection and identification, which becomes relevant for human-robot interaction and grasping. In [2] and [3], proximity sensing skins are used for collision avoidance for human-robot interaction. In [4], 3D contour following task is performed using proximity sensing. In [5], proximity sensing is used to enable smooth transitions from non-contact to contact states in robotics. For example, the impact force experienced by legged robot can be mitigated using proximity sensors [6]. [7]. A comprehensive review of the potential influence of proximity sensors in human-centered robotics is provided in [8].

In this paper, we look into a specific task of positioning with respect to a cylinder. In [9], positioning with respect to the outside of a cylinder is described using a parallel arrangement of proximity sensors. In [10], for guidance of an end-effector inside a cylindrical pipe, a sensor system consisting of two rings is proposed with 4 proximity sensors each arranged in a symmetric manner. We generalize this arrangement as a proximity array consisting of various proximity rings that could either be attached to the end-effector or around the robotic arm. In [11], we proposed this proximity array to perform plane-to-plane positioning task. In this work, we consider the same sensor arrangement for positioning both to the inside or the outside of a cylinder, which can be considered as a continuation of the seminal work in [10]. In [9]–[11], realization of the tasks is done through the regulation of sensor-based task functions. An alternative approach would involve estimating the pose of the object and then performing a classical pose control. This

approach has been followed in [7] for in-hand manipulation of cylindrical objects. As classically done in visual servoing where image-based visual servoing is usually preferred to pose-based visual servoing since it is less sensitive to sensor noise [12], we rely in this paper on the sensor-based control approach that avoids any pose estimation step.

The task of positioning with respect to a cylinder can also be performed using a vision sensor: in [13], positioning of a camera with respect to a motionless cylinder is considered using visual features associated with its projection in the image plane. In non-degenerate cases, this projection is composed of two straight lines and their polar representation can be used as visual features. In [14], the same set of image features is used to perform underwater pipe inspection. Bi-normalized Plucker coordinates of cylindrical borders is considered as image features in [15] to perform pipe following task using a nonlinear visual servo control approach. In [16], points on the cylinder that cast tangential rays and remain in the sagittal plane of a quadrotor system where used to perform high-speed aerial grasping task. However, detection of the cylinder using vision sensors requires a large distance relative to the radius of the cylinder due to the limited field of view in detecting the edges involved. While using proximity sensors, points on the surface of the cylinder can be perceived at much closer distances. This enables achieving much closer positioning of the system wrt. cylindrical target.

In this work, we build sensor-based task functions directly from proximity signal information. We provide various interaction matrix models that enable positioning wrt. a cylinder. We compare these models through simulation. We also perform experimentation where a secondary task of surface following is performed after achieving positioning.

This paper is divided into four sections. In Section II, we introduce a multi-sensory system designated as proximity array and propose the modeling related to two sensor-based task functions used for positioning wrt. a cylinder. In Section III, we provide simulation results and select two interaction matrix models for executing the task. In Section IV, we provide experimental results while utilizing these two models to converge to the desired pose wrt. the cylinder and then perform a contactless surface following task. The paper is concluded in Section V.

II. MODELING

In this section, we first give a brief description on the proximity array considered. A detailed description is provided in our previous work [11]. This proximity array is an arrangement of proximity sensors that can be attached to arms of robot like a skin or as an end-effector. It consists of

This work was supported by BPI France Lichie project. Experiments presented in this paper were carried out thanks to a platform of the Robotex 2.0 French research infrastructure.

The authors are with Inria, Univ Rennes, CNRS, IRISA - Rennes, France.
john.thomas@inria.fr
n parallel circular rings of radius r with $m_j$ sensors on each ring where $j = \{1, ..., m\}$.

<figure><img src="image_2.png" /><figcaption>Fig. 1: Proximity sensor array consisting of 2 rings detecting an arbitrary object</figcaption></figure>

Let us consider the modeling of a generic sensor, that is, the ith proximity sensor on jth ring. We look at a thin film range finder in which detection occurs along the axis of sensor. As depicted in Fig. 1, $n_{S_{ij}}$ denotes the unit vector indicating sensor axis and $\delta_{ij}$ the distance measured by the sensor with respect to the target. $n_{T_{ij}}$ is the unit vector direction of target surface normal at point of detection $T_{ij}$. We consider model parameters associated to the sensor in end-effector frame $\mathcal{F}_E$. Let us now consider the sensor feature as the distance $\delta_{ij}$ measured by the proximity sensor. As usual in sensor-based control [9], [12], the design of the control scheme is based on the interaction matrix $\mathbf{L}_{\delta_{ij}}$ that relates the time variation of the sensor feature $\delta_{ij}$ to the end-effector spatial velocity $\mathbf{v}_E$ under the form

$$ \dot{\delta}_{ij} = \mathbf{L}_{\delta_{ij}} \mathbf{v}_E \quad (1) $$

with $\mathbf{L}_{\delta_{ij}} = [\mathbf{u}_{ij}^T \mathbf{H}_{ij}(E)^T]$. Here, $\mathbf{H}_{ij} = (\mathbf{H}_{ij}(\cdot), \mathbf{u}_{ij})$ denote the interaction screw with $\mathbf{u}_{ij}$ as its vector and $\mathbf{H}_{ij}(\cdot)$ as the value of the corresponding vector field. For the sensor feature considered we have [11]

$$ \mathbf{u}_{ij} = - \frac{\mathbf{n}_{T_{ij}}}{\mathbf{n}_{T_{ij}} \cdot \mathbf{n}_{S_{ij}}} \qquad (2) $$
$$ \mathbf{H}_{ij}(E) = \mathbf{m}_{T_{ij}} \times \mathbf{u}_{ij} $$

where, $\mathbf{m}_{T_{ij}}$ is the displacement vector from target location $T_{ij}$ to the end-effector $E$. This form was easily obtained from [9], [17].

While positioning with respect to a cylinder using task functions composed of sensor features $\delta_{ij}$, only 4 DoF of the proximity array can be controlled. This is because, at any given relative pose of the proximity array wrt. the cylinder, there are two independent motions that do not change the value of the corresponding sensor features. These motions include a translation and a rotation about the cylinder axis. At final relative pose, a virtual sliding pivot linkage is formed between the proximity array and the cylinder [9]. This virtual linkage is categorized as class 2 or C2 [9], where 2 refers to the dimension of these motions belonging to the null space of the corresponding interaction matrix.

<figure><img src="image_3.png" /><figcaption>Fig. 2: Proximity array with minimal sensors used for the task of positioning wrt. a cylinder</figcaption></figure>

Let us assume that p such sensors are used. In this paper, we consider two sensor-based task functions, $e_m$ for minimal ($p = 4$) and $e_r$ for redundant ($p > 4$) number of sensors. For both task functions, we consider these sensors to be attached to n = 2 rings, which is the minimum number of rings required.

The standard control law for achieving both tasks $e_m$ and $e_r$ is [12]

$$ \mathbf{v}_k = -\lambda \hat{\mathbf{L}}_{e_k}^+ \mathbf{e}_k, \quad k = m, r \quad (3) $$

where, as usual, $\mathbf{v}_k$ is the velocity of the end-effector sent to the low-level robot controller, $\hat{\mathbf{L}}_{e_k}$ is an estimation or an approximation of the interaction matrix $\mathbf{L}_{e_k}$, and $\hat{\mathbf{L}}_{e_k}^+$ is the Moore-Penrose pseudoinverse of $\hat{\mathbf{L}}_{e_k}$.

Let us first note that there is a situation where the interaction matrix $\mathbf{L}_{e_k}$ would be close to singularity. Imagine all detection points are within a small neighbourhood. In that case, the target normal could be approximated as $\hat{\mathbf{n}}_{T_{ij}} \approx \mathbf{n}_T$, where locally there would be an attempt to perform a plane-to-plane positioning task whose class is C3. Indeed, in that case, the interaction screws can be locally approximated as

$$ \mathbf{u}_{ij} = \left(-\frac{1}{\mathbf{n}_T \cdot \mathbf{n}_{S_{ij}}}\right) \mathbf{n}_T \qquad (4) $$
$$ \mathbf{H}_{ij}(E) = \left(-\frac{1}{\mathbf{n}_T \cdot \mathbf{n}_{S_{ij}}}\right) \mathbf{m}_{T_{ij}} \times \mathbf{n}_T $$

The interaction screws would become linearly dependent and the interaction matrix would experience a loss of rank. In a practical case, it is possible to be close to such a situation as explained later in Section III-A.

### A. Minimal sensors

As already said, the minimal set of sensors is 4 with 2 sensors each on 2 rings (see Fig. 2). Both proximity rings
are defined with a 2D coordinate system with x and y axes being parallel respectively to the x and y axes of $\mathcal{F}_E$. The centers of these rings lie on the z-axis of $\mathcal{F}_E$. In this paper we consider, $\hat{i}$, $\hat{j}$, $\hat{k}$ as unit vectors along positive directions of x, y and z axes of Cartesian coordinate system. The task function $\mathbf{e}_m$ for the case of minimal sensors is built based on the current proximity signal values $\delta_{ij}$ and their desired value $\delta_{ij}^*$

$$ \mathbf{e}_m = \mathbf{s} - \mathbf{s}^* \quad (5) $$

where $\mathbf{s} = (\delta_{11}, \delta_{21}, \delta_{12}, \delta_{22})$ and $\mathbf{s}^* = (\delta_{11}^*, \delta_{21}^*, \delta_{12}^*, \delta_{22}^*)$. The interaction matrix corresponding to the above task function is built based on the interaction screw (2) with parameters

$$ \mathbf{n}_{S_{ij}} = c(\alpha_{ij}) \hat{\mathbf{i}} + s(\alpha_{ij}) \hat{\mathbf{j}}, \quad (6) $$

$$ \mathbf{m}_{T_{ij}} = (\delta_{ij} + r)\mathbf{n}_{S_{ij}} + d_j \hat{\mathbf{k}} \quad (7) $$

where $c(.)$ and $s(.)$ indicates the cosine and sine of an angle respectively. As denoted in Fig.2, $\alpha_{ij}$ is the angle between sensor axis and x-axis of frame attached to each ring and $d_j$ indicates the distance of ring j from end-effector E along z-axis of $\mathcal{F}_E$. The interaction matrix $\mathbf{L}_{e_m}$ is directly obtained from (1) and (2)

$$ \mathbf{L}_{e_m} = \begin{bmatrix} \mathbf{u}_{11}^T & \mathbf{H}_{11}(E)^T \\ \mathbf{u}_{21}^T & \mathbf{H}_{21}(E)^T \\ \mathbf{u}_{12}^T & \mathbf{H}_{12}(E)^T \\ \mathbf{u}_{22}^T & \mathbf{H}_{22}(E)^T \end{bmatrix} . \quad (8) $$

In the next subsection we consider an approximation of the above interaction matrix.

1) *Approximated Model:* In the above model (8), the target normal at detection point is unknown. This parameter must be estimated or a suitable approximation must be chosen. One simple way to approximate the model is to assume that the sensor axis is locally orthogonal to the surface of detection

$$ \hat{\mathbf{n}}_{T_{ij}} = -\mathbf{n}_{S_{ij}}. \quad (9) $$

This assumption is more valid for positioning inside a cylinder if the task is designed to align with the axis of the cylinder. Indeed, at the equilibrium position, the target normal aligns with the negative direction of the sensor axis due to the geometry of a cylinder. The above assumption simplifies the interaction screw of proximity sensor to

$$ \mathbf{u}_{ij} = -c(\alpha_{ij}) \hat{\mathbf{i}} - s(\alpha_{ij}) \hat{\mathbf{j}}, \\ \mathbf{H}_{ij}(E) = d_j s(\alpha_{ij}) \hat{\mathbf{i}} - d_j c(\alpha_{ij}) \hat{\mathbf{j}}. \quad (10) $$

In practice, we consider a symmetrical sensor arrangement with the extrinsic parameters given in Table I.

<table><caption>TABLE I: Extrinsic parameters of proximity array.</caption><thead><tr><th colspan="2">e<sub>m</sub></th><th colspan="2">e<sub>r</sub></th></tr></thead><tbody><tr><td>α<sub>11</sub> = 270° - β</td><td>α<sub>12</sub> = 270° - β</td><td>α<sub>11</sub> = 0°</td><td>α<sub>12</sub> = 0°</td></tr><tr><td>α<sub>21</sub> = 270° + β</td><td>α<sub>22</sub> = 270° + β</td><td>α<sub>21</sub> = 90°</td><td>α<sub>22</sub> = 90°</td></tr><tr><td></td><td></td><td>α<sub>31</sub> = 180°</td><td>α<sub>32</sub> = 180°</td></tr><tr><td></td><td></td><td>α<sub>41</sub> = 270°</td><td>α<sub>42</sub> = 270°</td></tr></tbody><tfoot><tr><td colspan="4">d<sub>1</sub> = d, d<sub>2</sub> = -d</td></tr></tfoot></table>

<figure><img src="image_4.png" /><figcaption>Fig. 3: Special cases while positioning outside the cylinder</figcaption></figure>

The model parameters of the proximity array system for minimal case therefore reduces to $(\beta, d)$ and the interaction matrix simplifies to

$$ \hat{\mathbf{L}}_{e_m} = \begin{bmatrix} s(\beta) & c(\beta) & 0 & -dc(\beta) & ds(\beta) & 0 \\ -s(\beta) & c(\beta) & 0 & -dc(\beta) & -ds(\beta) & 0 \\ s(\beta) & c(\beta) & 0 & dc(\beta) & -ds(\beta) & 0 \\ -s(\beta) & c(\beta) & 0 & dc(\beta) & ds(\beta) & 0 \end{bmatrix}. \quad (11) $$

From the above interaction matrix it is clear that its nullspace corresponds to pure translation and rotation along the z-axis of $\mathcal{F}_E$, which, due to the approximation done, corresponds only to the expected one when the array is aligned on the cylinder axis. This is why we will use this model only for positioning inside a cylinder.

Another approximate model is obtained by evaluating the interaction matrix for the desired configuration. This approach is classical in visual servoing [12] and was already followed in [11] for plane-to-plane positioning. Here we consider the desired configuration in such a way that either z-axis or x-axis of $\mathcal{F}_E$ aligns with the axis of the cylinder since they correspond to the most efficient poses for inspecting the surface of the cylinder. These two configurations are respectively denoted desired pose $A^*$ and $B^*$ (see Fig. 3).

2) *Model Computed at Desired Pose A*\*: Let us consider $d_s$ as the distance measured along the negative y-axis in $\mathcal{F}_E$ till the surface of cylinder with $r_{cy}$ as its radius. It is to be noted that $r_{cy}$ is an unknown parameter and the interaction matrix is evaluated based on the measurement or suitable approximation $\hat{r}_{cy}$ of this value. At desired pose $A^*$, the axis of the cylinder and the z-axis of frame $\mathcal{F}_E$ are separated by distance $(d_s + \hat{r}_{cy})$. Desired value of proximity sensors $\delta_{ij}^*$ can then be evaluated from the two right angled triangles $\Delta EIC$ and $\Delta T_{ij}IC$.

$$ \delta_{ij}^* + r = \tilde{\delta}_{ij}^* = |\vec{E}I| - |\vec{T}_{ij}I| \quad (13) $$

$$ = (d_s + \hat{r}_{cy})c(\beta_{ij}) - \sqrt{\hat{r}_{cy}^2 - (d_s + \hat{r}_{cy})^2 s(\beta_{ij})^2}. \quad (14) $$
$$ \hat{\mathbf{L}}_{\mathrm{e}_m}^{B^*} = \frac{1}{c(\theta)c(\beta)} \begin{bmatrix} 0 & c(\theta) & s(\theta) & -d & c(\theta) - \tilde{\delta}^* s(\theta)c(\beta) & \tilde{\delta}^* s(\theta)s(\beta) & -\tilde{\delta}^* s(\beta)c(\theta) \\ 0 & c(\theta) & s(\theta) & -d & c(\theta) - \tilde{\delta}^* s(\theta)c(\beta) & -\tilde{\delta}^* s(\theta)s(\beta) & \tilde{\delta}^* s(\beta)c(\theta) \\ 0 & c(\theta) & -s(\theta) & d & c(\theta) + \tilde{\delta}^* s(\theta)c(\beta) & -\tilde{\delta}^* s(\theta)s(\beta) & -\tilde{\delta}^* s(\beta)c(\theta) \\ 0 & c(\theta) & -s(\theta) & d & c(\theta) + \tilde{\delta}^* s(\theta)c(\beta) & \tilde{\delta}^* s(\theta)s(\beta) & \tilde{\delta}^* s(\beta)c(\theta) \end{bmatrix} \quad (12) $$

The desired value of target normal is (see Fig. 3a)

$$ \mathbf{n}_{T_{ij}}^* = -s(\theta_{ij}) \hat{\mathbf{i}} + c(\theta_{ij}) \hat{\mathbf{j}} \quad (15) $$

where $s(\theta_{ij}) = \frac{\tilde{\delta}_{ij}^* s(\beta_{ij})}{\hat{r}_{cy}}$, $c(\theta_{ij}) = \sqrt{1 - s(\theta_{ij})^2}$ and $\beta_{ij} = 270^\circ - \alpha_{ij}$. The desired value of the interaction screw is thus

$$ \mathbf{u}_{ij}^* = \frac{1}{c(\theta_{ij} + \beta_{ij})} \left( -s(\theta_{ij}) \hat{\mathbf{i}} + c(\theta_{ij}) \hat{\mathbf{j}} \right), \\ \mathbf{H}_{ij}(E)^* = \mathbf{m}_{T_{ij}}^* \times \mathbf{u}_{ij}^* \quad (16) $$

where $\mathbf{m}_{T_{ij}}^* = \tilde{\delta}_{ij}^* \mathbf{n}_{S_{ij}} + d_j \hat{\mathbf{k}}$. For the simulation results presented in Section III we consider a symmetrical configuration with extrinsic parameters given in Table I for which $\beta_{1j} = -\beta_{2j} = \beta$ and $\theta_{1j} = -\theta_{2j} = \theta$. By denoting $\gamma = \theta + \beta$, the interaction matrix corresponds in this case to

$$ \hat{\mathbf{L}}_{\mathrm{e}_m}^{A^*} = \frac{1}{c(\gamma)} \begin{bmatrix} -s(\theta) & c(\theta) & 0 & -d & c(\theta) & -d & s(\theta) & -\tilde{\delta}^* s(\gamma) \\ s(\theta) & c(\theta) & 0 & -d & c(\theta) & d & s(\theta) & \tilde{\delta}^* s(\gamma) \\ -s(\theta) & c(\theta) & 0 & d & c(\theta) & d & s(\theta) & -\tilde{\delta}^* s(\gamma) \\ s(\theta) & c(\theta) & 0 & d & c(\theta) & -d & s(\theta) & \tilde{\delta}^* s(\gamma) \end{bmatrix}. \quad (17) $$

As expected from Section II, the nullspace of this matrix corresponds to a translation along the z axis of $\mathcal{F}_E$, which is also the axis of the cylinder, represented as $\mathbf{v}_1 = (0 \ 0 \ v^* \ 0 \ 0 \ 0)^T$, and to a rotation around z axis combined with a translation along x axis of $\mathcal{F}_E$, represented as $\mathbf{v}_2 = -(d_s + \hat{r}_{cy})\omega^* \ 0 \ 0 \ 0 \ 0 \ \omega^*)^T$, which corresponds to a pure rotation around the axis of the cylinder. Indeed, by applying law of sines to $\triangle ET_{ij}C$ in Fig. 3a, we have $s(\theta)/\tilde{\delta}^* = s(\pi - (\theta + \beta))/(d_s + \hat{r}_{cy})$, which leads to $d_s + \hat{r}_{cy} = -\tilde{\delta}^* s(\gamma)/s(\theta)$.

3) Model Computed at Desired Pose $B^*$: While using the proximity array it is also interesting to consider the desired final configuration where x-axis of frame $\mathcal{F}_E$ is aligned with the cylinder axis. This configuration is depicted in Fig. 3b. The desired value of proximity sensors $\tilde{\delta}_{ij}^*$ can be evaluated by considering the length of line segment $|\vec{EC}|$.

$$ \tilde{\delta}_{ij}^* = \frac{1}{c(\beta_{ij})} (d_s + \hat{r}_{cy}(1 - c(\theta_{ij}))) \quad (18) $$

where $\theta_{ij} = \arcsin(d/\hat{r}_{cy})$, is obtained by considering triangle $\triangle CT_{ij}I$. The desired value of target normal is

$$ \mathbf{n}_{T_{ij}}^* = c(\theta_{ij}) \hat{\mathbf{j}} + s(\theta_{ij}) \hat{\mathbf{k}}. \quad (19) $$

The desired value of interaction screw is now

$$ \mathbf{u}_{ij}^* = \frac{1}{c(\theta_{ij})c(\beta_{ij})} (c(\theta_{ij}) \hat{\mathbf{j}} + s(\theta_{ij}) \hat{\mathbf{k}}), \\ \mathbf{H}_{ij}(E)^* = \mathbf{m}_{T_{ij}}^* \times \mathbf{u}_{ij}^*. \quad (20) $$

For the simulation results presented in Section III, we utilize the same symmetrical configuration as before for which

<figure><img src="image_5.png" /><figcaption>Fig. 4: Proximity array with redundant sensors for positioning inside a cylinder</figcaption></figure>

$\beta_{1j} = -\beta_{2j} = \beta$ and $\theta_{1j} = -\theta_{2j} = \theta$. The interaction matrix in this case corresponds to (12) given at the top of this page. As expected, the nullspace of this matrix now corresponds to a pure translation along x axis of $\mathcal{F}_E$ represented as $\mathbf{v}_1 = (v^* \ 0 \ 0 \ 0 \ 0)^T$, and to a rotation around this axis combined with a translation along z axis represented as $\mathbf{v}_2 = (0 \ 0 \ (d_s + \hat{r}_{cy})\omega^* \ \omega^* \ 0 \ 0)^T$. Indeed, we have $d_s + \hat{r}_{cy} = d/\tan\theta + \tilde{\delta}^* c(\beta)$ since, from $\triangle CT_{ij}I$ in Fig. 3b, we have $\tan\theta = d/[(d_s + \hat{r}_{cy}) - \tilde{\delta}^* c(\beta)]$.

## B. Redundant Sensors

Let us now consider a sensor configuration consisting of two rings with each containing $m = 4$ proximity sensors, as shown in Fig. 4. One adequate choice of task function is

$$ \mathbf{e}_r = \mathbf{C}(\mathbf{s} - \mathbf{s}^*) \quad (21) $$

$$ \text{where } \mathbf{C} = \begin{bmatrix} 1 & 0 & -1 & 0 & 1 & 0 & -1 & 0 \\ 0 & 1 & 0 & -1 & 0 & 1 & 0 & -1 \\ 0 & -1 & 0 & 1 & 0 & 1 & 0 & -1 \\ 1 & 0 & -1 & 0 & -1 & 0 & 1 & 0 \end{bmatrix}^T, $$

$\mathbf{s} = (\delta_{11} \ \delta_{21} \ \delta_{31} \ \delta_{41} \ \delta_{12} \ \delta_{22} \ \delta_{32} \ \delta_{42})^T$ and $\mathbf{s}^* = (\delta_{11}^* \ \delta_{21}^* \ \delta_{31}^* \ \delta_{41}^* \ \delta_{12}^* \ \delta_{22}^* \ \delta_{32}^* \ \delta_{42}^*)^T$. $\mathbf{C}$ is a combination matrix that is chosen to obtain a task of dimension 4 and $\mathbf{Cs}^*$ becomes its associated reference vector. Since $\mathbf{C}$ is constant, the interaction matrix $\mathbf{L}_{e_r}$ for
<figure><img src="image_6.png" /><figcaption>Fig. 5: Special case while positioning inside a cylinder</figcaption></figure>

this task is directly obtained from (1)

$$L_{e_r} = C \begin{bmatrix} \mathbf{u}_{11}^T & \mathbf{H}_{11}^T \\ \mathbf{u}_{21}^T & \mathbf{H}_{21}^T \\ \mathbf{u}_{31}^T & \mathbf{H}_{31}^T \\ \mathbf{u}_{41}^T & \mathbf{H}_{41}^T \\ \mathbf{u}_{12}^T & \mathbf{H}_{12}^T \\ \mathbf{u}_{22}^T & \mathbf{H}_{22}^T \\ \mathbf{u}_{32}^T & \mathbf{H}_{32}^T \\ \mathbf{u}_{42}^T & \mathbf{H}_{42}^T \end{bmatrix} . \quad (22)$$

In the next subsection, we consider the particular case studied in [10] with a symmetrical arrangement of the sensors and where the task consists in aligning the end-effector with the axis of the cylinder. This leads to strong decoupling properties of the system.

1) Special Case: In this case we consider the final configuration when proximity array is positioned inside the cylinder such that its z-axis coincides with the axis of the cylinder. Fig. 5 depicts this scenario where the target normal aligns with the negative direction of the sensor axis at desired pose, which was also the assumption for the approximation considered in Section II-A.1. The desired sensor features in this case can be evaluated as

$$\delta_{ij}^* = r_{cy} - r. \quad (23)$$

This simplifies the reference vector as $\mathbf{C}\mathbf{s}^* = \mathbf{0}$, resulting in a simple task function

$$\mathbf{e}_r = \begin{pmatrix} (\delta_{11} + \delta_{12}) - (\delta_{31} + \delta_{32}) \\ (\delta_{21} + \delta_{22}) - (\delta_{41} + \delta_{42}) \\ (\delta_{41} + \delta_{22}) - (\delta_{21} + \delta_{42}) \\ (\delta_{11} + \delta_{32}) - (\delta_{31} + \delta_{12}) \end{pmatrix} . \quad (24)$$

For the symmetric sensor arrangement considered in [10], the value of the extrinsic parameters is given in Table I. From these values, the interaction matrix at the desired configuration has a very nice decoupled form

$$\mathbf{L}_{e_r}^* = \begin{bmatrix} -4 & 0 & 0 & 0 & 0 & 0 \\ 0 & -4 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & -4d & 0 & 0 \\ 0 & 0 & 0 & 0 & -4d & 0 \end{bmatrix} . \quad (25)$$

It also clearly illustrates the fact that, as expected, the translational motion $v_z$ along the cylinder axis and the rotational motion $\omega_z$ around this axis belong to the null space of $\mathbf{L}_{e_r}^*$.

### C. Stability Analysis

Uniqueness of equilibrium point of the tasks exists iff

$$\mathbf{e}_k = \mathbf{0} \iff \mathbf{s} = \mathbf{s}^* . \quad (26)$$

This is ensured for $\mathbf{e}_m$ that is based on a minimal number of sensors (see (5)). However for $\mathbf{e}_r$ that is based on redundant sensors, there could be a situation for violating condition (26) when

$$\mathbf{s} - \mathbf{s}^* \in \mathrm{Ker} \, \mathbf{C}. \quad (27)$$

As part of future work an analysis requires to be done to understand if any physically consistent configuration satisfying (27) exists.

The system is therefore globally asymptotically stable (GAS) for task $\mathbf{e}_m$ if the following property is ensured [12],

$$\mathbf{L}_{e_m} \hat{\mathbf{L}}_{e_m}^+ > 0 . \quad (28)$$

Here, $\mathbf{L}_{e_m} \hat{\mathbf{L}}_{e_m}^+$ is a 4x4 matrix and we have $\mathbf{L}_{e_m} \hat{\mathbf{L}}_{e_m}^+ = \mathbf{I}_4 > 0$ when $\hat{\mathbf{L}}_{e_m} = \mathbf{L}_{e_m}$, i.e., when the interaction matrix used in the control scheme corresponds to the real one. This is the case when using the actual model (8) if the target normal is correctly evaluated and if no calibration errors occur. On the other hand, when using approximated models (11), (17), (12) for task $\mathbf{e}_m$ or while using both actual (22) and approximated models (25) for task $\mathbf{e}_r$ in the control scheme, we can only state that the system is locally asymptotically stable since $\mathbf{L}_{e_k} \hat{\mathbf{L}}_{e_k}^+ = \mathbf{I}_4$ only at the desired configuration $\delta_{ij} = \delta_{ij}^*$.

It can be seen from the simulation results presented below that the approximated model (11) can become unstable for particular initial poses of the proximity array. However, it can also be observed that the domain of convergence for task function $\mathbf{e}_m$ is reasonably large while using $\hat{\mathbf{L}}_{e_m}$ computed at desired pose $\mathbf{A}^*$ and $\mathbf{B}^*$. For task $\mathbf{e}_r$, the simulation results suggest a stable behavior for practical cases.

### III. SIMULATION RESULTS

In this section, simulation results for positioning outside and inside a cylinder are presented. We consider a simulation setup composed of a Franka Emika Panda robot (7 Dof serial manipulator) in CoppeliaSim [18] with proximity array involving minimal and redundant sensors as depicted in Figs. 2 and 4 respectively. The array is used to detect the outside of a solid cylinder as shown in Fig. 6 and the inside of a hollow cylinder as shown in Fig. 8. Simulation was done using FrankaSim [19], a simulator based on ROS and Coppeliasim for Panda robot with full integration with ViSP [20], which is used as the main software library for programming. The simulation results are described in two separate tasks. In Task 1, we consider a minimal set of sensors for positioning on the outside of the cylinder. For this task, positioning is performed from two initial poses with two different extrinsic parameters denoted as Array I and II as shown in Table II. Array I is chosen as the symmetrical version of the experimental setup considered in Table III. In case of Array II, the extrinsic parameter $d$ is chosen twice that of Array I to study the effect of this parameter. In Task 2, for positioning on the inside of the cylinder, we use a redundant
number of sensors with extrinsic parameters given in Table I. A uniform noise in the interval [-0.005 m, 0.005 m] is considered for the proximity signals. The gain $\lambda$ of the control scheme (3) is set to $\lambda = 0.8$. The accompanying video illustrates these simulation results.

<table><caption>TABLE II: Specific values for extrinsic parameters of proximity array used for positioning on the outside of the cylinder.</caption><thead><tr><th>Array I</th><th>Array II</th></tr></thead><tbody><tr><td>$d = 5.5$ cm</td><td>$d = 11$ cm</td></tr><tr><td>$\beta = 20^{\circ}$</td><td>$r = 7$ cm</td></tr></tbody></table>

<figure><img src="image_7.png" /><figcaption>Fig. 6: Positioning task with Array I (smaller $d$): (a) initial pose A, (b) initial pose B, (c) final pose when using desired pose $A^*$, (d) final pose when using desired pose $B^*$.</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Fig. 7: Positioning task with Array II (larger $d$): same configuration as for Fig. 6.</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Fig. 8: Positioning task inside the cylinder.</figcaption></figure>

### A. Task 1: Positioning outside the cylinder

In Fig. 6, we consider the distance $d$ as $d = 5.5$ cm, while $d = 11$ cm in Fig. 7. For each value of $d$, we consider two generic initial poses A and B with 90° rotation in-between them about y-axis of $F_E$ (see Figs. 6a, 7a, 6b and 7b). They have been chosen so that there is a large error between each initial and desired sensor value, involving a large motion for all the four degrees-of-freedom involved. Then, a pure rotation of 90° between these two initial poses has been selected to ease the interpretation of the results since the robot can converge to either desired pose $A^*$ or $B^*$ that differ from 90°. We execute the task for each value of $d$ using four interaction matrix models consisting of actual (8), approximated by (11), computed at desired pose $A^*$ (17), and computed at desired pose $B^*$ (12). We show convergence to a configuration where the desired proximity values are

$\delta_{ij}^* = 4$ cm, which is the minimum detection distance of the sensor used in experimentation.

While using desired pose $A^*$ for the interaction matrix, the final configurations shown in Figs. 6c and 7c are reached whatever the initial pose. They correspond to desired pose $A^*$, which is not surprising. Similarly, when desired pose $B^*$ is used, the final configurations correspond to desired pose $B^*$, as shown in Figs. 6d and 7d. When actual model (8) and approximation (11) are used, the final configurations correspond to the nearest desired pose when the system converges, which is also not surprising. Figs. 9 and 10 displays the plots of task function $e_m$ and end-effector velocity for both Array I and II from initial poses A and B respectively. The system converged in all cases except when using the approximation (11) due to a too large sliding motion along the cylinder before convergence, leading to a loss of measurements when reaching the cylinder extremity. This makes the approximation (11) an unreliable choice for the task considered. In plots involving smaller value of $d$, we observe the influence of noise in proximity sensor measurements, especially for angular velocity term $\omega_y$. As observed in Figs. 9a(1) and 10a(1) where the actual model is used, the influence of noise on $\omega_y$ increases close to convergence, whereas for model evaluated from desired pose $A^*$ (Figs. 9a(3) and 10a(3)) or $B^*$ (Figs. 9a(4) and 10a(4)), it is more prevalent throughout the entire execution of task as the model is evaluated at equilibrium. Interaction screws are more closer to linear dependence in these situations as their target normal values are quite close. This is related to the singularity mentioned in Section II. When positioning using Array II with larger value of $d$, the influence of noise on end-effector velocities significantly reduces (see Figs. 9b and 10b). To conclude, it is more appropriate to use an array with a large $d$ and to use the models from desired poses $A^*$ or $B^*$. Even though actual model would also lead to convergence, it can cause non-smooth trajectory as seen in the video. It can also be observed in Figs 9a(1) and 9b(1).

### B. Task 2: Positioning inside the cylinder

In this second task, we consider task $e_2$ for positioning in the inside of the cylinder from an arbitrary initial pose. The task converges effectively as seen in Fig. 11. The choice of task function and simplification in special case (25) leads to a decoupled interaction matrix. This leads to an exponentially decoupled closed-loop behavior close to equilibrium, with strong correlation between components of task function and spatial velocity vector by comparing the behaviours in the following pairs, $(e_r[1], v_x)$, $(e_r[2], v_y)$, $(e_r[3], \omega_x)$ and $(e_r[4], \omega_y)$ as observed in Fig. 11.

## IV. EXPERIMENTAL RESULTS

Experimental results have been obtained using a Franka Emika Panda robot [21] with a proximity array attached to its end-effector with minimal sensors as depicted in Fig. 2 to detect the outside of a cylinder, as seen in Fig. 12. This array contains infrared proximity sensors with Time-of-Flight technology and are tuned for a thin field of view
<figure><img src="image_10.png" /><figcaption>(a) Array I (smaller $d$)</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>(b) Array II (larger $d$)</figcaption></figure>

Fig. 9: Simulation results of Task 1 for initial pose A (a) with Array I and (b) Array II. For each value of $d$, we execute the task with the four models (8), (11), (17), (12) of interaction matrix. Task function $e_m$ components (cm) versus time (s) on the top, end-effector velocities (cm/s and deg/s) versus time (s) on the bottom.

of $5^\circ$ with measurements approximately at 60 Hz. The extrinsic parameters of the proximity array are similar to Array I and are shown in Table III. Task $e_m$ starts from the initial configuration shown in Fig. 12a within 50 cm range. When the model (17) corresponding to desired pose $A^*$ is used in the control scheme, the system converges to the configurations shown in Fig. 12b, while the system converges to the configurations shown in Fig. 12c with the model (12) corresponding to desired pose $B^*$. At convergence desired proximity measurements are $\delta_{ij}^* = 4$ cm and specific sequence of control inputs for both cases mentioned in Sections II-A.2 and II-A.3 are applied to perform surface following using $v^* = 8$ cm/s and $\omega^* = -11.5$ deg/s. As seen in Fig. 13, both control schemes ensure convergence to the final pose within approximately 8 s of execution. In Fig. 13(1), we can notice an initial rotation around the y-axis of $\mathcal{F}_E$ with significant value in $\omega_z$ to reach desired pose $A^*$. Once convergence occurs, surface following starts and as observed in the plots, the control scheme is able to still regulate $e_m$ to zero, thereby enabling the inspection of the cylindrical surface without any perturbation.

<figure><img src="image_12.png" /><figcaption>(a) Array I (smaller $d$)</figcaption></figure>

<figure><img src="image_13.png" /><figcaption>(b) Array II (larger $d$)</figcaption></figure>

Fig. 10: Simulation results of Task 1 for initial pose B (a) with Array I and (b) Array II. Same configuration as for Fig. 9.

<figure><img src="image_14.png" /></figure>

Fig. 11: Simulation results for Task 2 with interaction model from special case (25). Task function $e_r$ components (cm) versus time (s) on the top, end-effector velocities (cm/s and deg/s) versus time (s) on the bottom.

<figure><img src="image_15.png" /><figcaption>(a)</figcaption></figure>

<caption>(b)</caption>

<caption>(c)</caption>

Fig. 12: Experimental setup for surface following: initial configuration (a), final configuration using desired pose $A^*$ (b) and using desired pose $B^*$ (c)
<table><caption>TABLE III: Extrinsic parameters of proximity array used in experimentation.</caption><thead><tr><th colspan="2">e<sub>m</sub></th></tr></thead><tbody><tr><td>&alpha;<sub>11</sub> = 254&deg;</td><td>&alpha;<sub>12</sub> = 246&deg;</td></tr><tr><td>&alpha;<sub>21</sub> = 294&deg;</td><td>&alpha;<sub>22</sub> = 286&deg;</td></tr><tr><td>d<sub>1</sub> = -d<sub>2</sub> = 5.5 cm, r = 7 cm</td><td></td></tr></tbody></table>

<figure><img src="image_16.png" /><figcaption>Fig. 13: Experimental results for surface following using task function $e_m$ with models evaluated at desired pose $A^*$ and $B^*$ respectively. Task function components (cm) versus time (s) on the top, end-effector velocities (cm/s and deg/s) versus time (s) on the bottom.</figcaption></figure>

## V. CONCLUSION

In this paper, we have considered an important application of proximity array system when mounted as an end-effector. We provided various interaction matrix models that enable this array to position with respect to the outside of the cylinder. The best results where obtained while evaluating the interaction matrix at the desired equilibrium pose. The control law was shown to be locally asymptotically stable. We verified the results for two desired poses where either z-axis or x-axis of end-effector frame are parallel to the axis of the cylinder. This was verified through both simulation and experimentation. In experimentation, a surface following task was considered at convergence by providing sequence of velocities lying in the null space of the interaction matrix, which ensured that the corresponding task function remained at convergence. Additionally, it was also shown that the interaction matrix model evaluated with a common approximation considering the target normal as aligned in the negative direction of sensor axis can lead to non-convergence.

As part of future work, following our discussion about the effects of the distance between the rings, it would be interesting to determine its optimal value, as well as the optimal value of the other extrinsic parameters in order to obtain a system as much stable and robust as possible. We think it could be done by optimizing the condition number of the interaction matrix while taking also into account the size of the global sensor. Future works could also be investigated to consider the positioning with respect to other objects, such as a sphere and non parallel planes. Finally, a comparison between the sensor-based control approach we considered in

this paper and the approach based on pose estimation would be interesting.

## REFERENCES

[1] Y. Ding, H. Zhang, and U. Thomas, "Capacitive proximity sensor skin for contactless material detection," in *IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS'18)*, 2018, pp. 7179-7184.

[2] Y. Ding and U. Thomas, "Collision avoidance with proximity servoing for redundant serial robot manipulators," in *IEEE Int. Conf. on Robotics and Automation (ICRA'20)*, 2020, pp. 10249-10255.

[3] K.-E. M'Colo, B. Luong, A. Crosnier, C. Néel, and P. Fraisse, "Obstacle avoidance using a capacitive skin for safe human-robot interaction," in *IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS'19)*, 2019, pp. 6742-6747.

[4] S. E. Navarro, S. Koch, and B. Hein, "3D contour following for a cylindrical end-effector using capacitive proximity sensors," in *IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS'16)*, 2016, pp. 82-89.

[5] H. Arita, H. Nakamura, T. Fujiki, and K. Tahara, "Smoothly connected preemptive impact reduction and contact impedance control," *IEEE Trans. on Robotics*, vol. 39, 2022.

[6] R. Sato, H. Arita, and A. Ming, "Pre-landing control for a legged robot based on tiptoe proximity sensor feedback," *IEEE Access*, vol. 10, pp. 21619-21630, 2022.

[7] P. Lancaster, P. Gyawali, C. Mavrogiannis, S. S. Srinivasa, and J. R. Smith, "Optical proximity sensing for pose estimation during in-hand manipulation," in *IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS'22)*, 2022, pp. 11818-11825.

[8] S. E. Navarro, S. Mühlbacher-Karrer, H. Alagi, H. Zangl, K. Koyama, B. Hein, C. Duriez, and J. R. Smith, "Proximity perception in human-centered robotics: A survey on sensing systems and applications," *IEEE Trans. on Robotics*, vol. 38, no. 3, pp. 1599-1620, 2022.

[9] C. Samson, B. Espiau, and M. Le Borgne, *Robot control: the task function approach*. Oxford University Press, Inc., 1991.

[10] B. Espiau, "Sensory-based control robustness issues and modelling techniques application to proximity sensing," in *Kinematic and Dynamic Issues in Sensor Based Control*, G. E. Taylor, Ed., 1990, pp. 3-44.

[11] J. Thomas, F. Pasteau, and F. Chaumette, "Plane-to-plane positioning by proximity-based control," in *IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS'22)*, 2022, pp. 12795-12802.

[12] F. Chaumette and S. Hutchinson, "Visual servo control. i. basic approaches," *IEEE Robotics and Automation Mag.*, vol. 13, no. 4, pp. 82-90, 2006.

[13] F. Chaumette, "Visual servoing using image features defined upon geometrical primitives," in *33rd IEEE Conf. on Decision and Control (CDC'94)*, vol. 4, 1994, pp. 3782-3787.

[14] P. Rives and J.-J. Borrelly, "Underwater pipe inspection task using visual servoing techniques," in *IEEE/RSJ Int. Conf. on Intelligent Robot and Systems (IROS'97)*, vol. 1, 1997, pp. 63-68.

[15] G. Allibert, M.-D. Hua, S. Krupínski, and T. Hamel, "Pipeline following by visual servoing for autonomous underwater vehicles," *Control Engineering Practice*, vol. 82, pp. 151-160, 2019.

[16] J. Thomas, G. Loianno, K. Sreenath, and V. Kumar, "Toward image based visual servoing for aerial grasping and perching," in *IEEE Int. Conf. on Robotics and Automation (ICRA'14)*, 2014, pp. 2113-2118.

[17] B. Espiau, "An overview of local environment sensing in robotics applications," in *Sensors and Sensory Systems for Advanced Robots*, P. Dario, Ed. Springer Berlin Heidelberg, 1988, pp. 125-151.

[18] C. Gaz, M. Cognetti, A. Oliva, P. Robuffo Giordano, and A. De Luca, "Dynamic identification of the Franka Emika Panda robot with retrieval of feasible parameters using penalty-based optimization," *IEEE Robotics and Automation Letters*, vol. 4, no. 4, pp. 4147-4154, 2019.

[19] A. Oliva, F. Spindler, P. Robuffo Giordano, and F. Chaumette, "Frankasim: A dynamic simulator for the Franka Emika robot with visual-servoing enabled capabilities," in *17th Int. Conf. on Control, Automation, Robotics and Vision (ICARCV'22)*, 2022, pp. 868-874.

[20] E. Marchand, F. Spindler, and F. Chaumette, "ViSP for visual servoing: a generic software platform with a wide class of robot control skills," *IEEE Robotics and Automation Mag.*, vol. 12, no. 4, pp. 40-52, 2005.

[21] S. Haddadin, S. Parusel, L. Johannsmeier, S. Golz, S. Gabl, F. Walch, M. Sabaghian, C. Jähne, L. Hausperger, and S. Haddadin, "The Franka Emika robot: A reference platform for robotics research and education," *IEEE Robotics & Automation Mag.*, vol. 29, no. 2, pp. 46-64, 2022.