Human-Robot Cooperation for Surface Repair Combining Automatic and Manual Modes

This article develops a human-robot cooperation to carry out treatments such as sanding, polishing, etc. on the surface of a known rigid object. For this purpose, a vision system is considered to get the object location to ensure not only the perpendicularity of the robot tool to the object surface but also a smooth approach of the tool to the surface. In order to add flexibility, the proposal includes the simultaneous combination of automatic and manual modes of operation. Thus, the human user can guide the robot tool to treat arbitrary areas (manual mode) and, when the operator releases the tool, the robot goes into the automatic mode to treat prior established areas. The method uses a task prioritization framework and three types of controllers: an admittance controller for the tool guidance; a hybrid controller to modify the tool orientation and, in the automatic mode, the tool position; and a sliding mode controller to limit the velocity at which the tool approaches the object surface. The applicability and efficacy of the proposed method is demonstrated experimentally using a conventional 6R robot arm.


I. INTRODUCTION A. MOTIVATION
It is common knowledge that the manufacturing industry is becoming increasingly automated. This general tendency makes industrial production faster, more precise and more efficient, and it also creates the potential to replace human operators by machines in the most tedious, hard and dangerous tasks. Moreover, the new wave is not just seeking to replace the human operator by a robot, but rather allowing them to cooperate and collaborate in order to obtain the best from both, i.e., the adaptability of the human and the strength and accuracy of the robot, which opens new perspectives in the field of the manufacturing industry.
One of the key factors in this sector is quality control, i.e., the detection and correction of anomalies of the product. Specifically, quality control of surfaces is a critical process for the manufacturing sector since, at the very least, it affects the customer's perception of the product. However, this process remains one of the least automated ones in the manufac-The associate editor coordinating the review of this manuscript and approving it for publication was Bohui Wang . turing industry [1]. In particular, whereas there are industrial solutions for detecting surface defects using machine vision systems [2], the elimination of surface defects by surface treatment is still largely depending on manual labor and the personal skills of the human operator.

B. LITERATURE REVIEW
The complete or partial automation of surface treatment tasks, such as polishing, sanding or deburring, has been the main focus of a growing number of research contributions in the last years. For instance, some works addressed the automation of surface treatment using robotic systems [3], [4], whereas other works tackled some specific issues, such as detecting wether a polishing operation is complete or the polishing tool needs to be changed [5]. Furhtermore, [6] proposed a human-robot collaboration strategy so that the user guides the robot to perform the treatment on a specific area.
Note that, to properly apply the surface treatment, not just contact, but also perpendicularity between the tool and the surface must be kept [7].
Moreover, the use of machine vision systems in robotic applications with an industrial perspective has been extensively carried out, for it gives the robot controller feedback about its environment, providing accuracy and flexibility. On the one hand, some applications use eye-in-hand configurations (i.e., camera attached to the robot end-effector), as in [8], where computer vision is used to improve the accuracy of a welding operation, or in [9], where the tool of the robot is automatically changed thanks to an image-based visual servoing. On the other hand, other applications use eye-to-hand configurations, i.e., the vision system is attached to some rigid structure and observing the robot workspace, so as to localize pieces to perform operations such as pick and place [10], or to keep track of the environment of the robot for safety purposes [11].
The visual data can be obtained using 2D cameras, estimating depth by processing the images [8]- [10], or can be directly read from 3D sensors [11], such as Microsoft Kinect.
Registration is the process of getting the transformation needed to express two views of an object under the same coordinate system [12]. This is typically used to get the location (position and orientation) of an object by matching the 3D sensor data from the real object (point cloud) with a 3D virtual model, as considered in this work.
Regarding the control strategy, Sliding Mode Control (SMC) provides the key advantages of computational efficiency and robustness [13], so it has been extensively used for robotic applications. For instance, in [14] SMC is combined with fuzzy control theory to control a robotic shoulder, whereas in [15] an adaptive backstepping based SMC is used to control a robot manipulator with position commands.

C. PROPOSAL
As mentioned above, previous works [3] developed the automation of surface treatment tasks using a robot system with force feedback in order to control both the contact and the orthogonality between the robot tool and the treated surface. In contrast, the approach proposed in this study considers a computer vision system to get the position and orientation of the object to be treated in order to ensure not only the orthogonality between the tool and the surface but also to guarantee a smooth approach of the tool to the surface.
Although the object deformations, changes in its stiffness or even sudden movements are not so easy to detect with a computer vision system as they are with force-torque data, for the scope of this work the advantages of a computer vision system outweigh its drawbacks, as long as the treatment task is assumed to be performed on a known rigid object. In particular, a major advantage of using a vision system instead of a force-torque sensor is that it allows to control also the phase where there is no contact between the tool and the treated object, e.g., to get a smooth approach to the object surface as mentioned above.
In order to add flexibility to the application, the proposal also includes the simultaneous combination of automatic and manual modes of operation. In particular, the human user can guide the robot tool to treat arbitrary points or areas (manual mode) and, when the operator releases the tool, the robot goes into the automatic mode to treat prior established points or areas.
The control strategy used in this work includes a task prioritization framework and three types of controllers, as discussed below.
Firstly, for the manual mode of operation, an admittance/impedance controller is considered in order to allow the user to guide the tool using a force-torque sensor placed at the end-effector of the robot. This type of control is a common way of using force-torque data to control the movement of robot manipulators [16].
Secondly, a hybrid controller is used to ensure the orthogonality between the robot tool and the treated surface, so that it remains aligned with the normal vector of the closest point of the surface. This normal vector is obtained from the matched virtual model of the treated object, i.e., the desired orientation is known beforehand, and regardless of the distance from the robot tool to the surface. Furthermore, for the automatic mode of operation, another hybrid controller is used to modify the tool position in order to perform the treatment on the prior established points or areas.
Thirdly, a non-conventional SMC is also developed to limit the velocity at which the tool approaches the object surface, tending to zero at the moment of contact, thus avoiding excessive pressure on the surface while applying the treatment as well. This non-conventional SMC is only active when the tool is advancing towards the surface at high speed, and it remains inactive both when the tool moves away from the surface or when it moves to the surface at low speed. Hence, the operator can freely and quickly move the tool away from the object surface. The speed at which the tool approaches the surface is also obtained from the data of the matched virtual model.

D. STRUCTURE OF THE PAPER
The content of the paper is as follows. Section II introduces some background theory used in this work. Next, Section III develops the proposed controller for the target application, while its implementation is presented in Section IV. Then, the applicability and efficacy of the method is shown in Section V with real experimentation. Lastly, some conclusions are drawn in Section VI.

II. BACKGOUND THEORY A. ROBOT KINEMATIC EQUATIONS
The robot kinematics and its derivatives (velocity and acceleration) are given by: where vector p = x y z α β γ T is the robot pose (orientation is given by roll α, pitch β and yaw γ angles), vector VOLUME 8, 2020 q = q 1 · · · q n T is the robot configuration, n is the number of robot joints, vector l(q) is the robot kinematic function and matrix J is the robot Jacobian [17].

B. LOW-LEVEL CONTROLLER
This study assumes that the low-level controller developed by the robot manufacturer is able to achieve a particular joint accelerationq from the commanded accelerationq c with negligible (fast) dynamics. Notice that this low-level controller should take into account the robot dynamic model.

C. COMPUTER VISION SYSTEM
In this work, three 3D sensors (Kinect cameras) are used, so that the interference problem of 3D sensors working in the same environment can be easily overcome [11], whereas they allow to cover a large area without placing them far from the object to be treated. The registration used in this work to locate the object to be treated is based on the so-called Iterative Closest Points (ICP) [12], which is one of the most extensively used methodologies for its simplicity and effectiveness. In this sense, two conditions are needed to ensure a good performance of the ICP algorithm: the initial pose of the 3D virtual model and the point cloud have to be relatively similar, so that the algorithm does not get stuck in local minima; and the point cloud has to be adequately filtered, so it does not have outliers. In particular, both conditions can be easily met in the context of this work.

D. TASK PRIORITIZATION FRAMEWORK
This framework allows to simultaneously tackle several goals or tasks with different priority levels [18]. Hence, lowerpriority tasks are accomplished by utilizing the remaining degrees of freedom, i.e., those not used by higher-priority tasks. In case that an exact solution is not possible, the tasks errors are minimized. The formulation for this method is as follows [19]: where M tasks or equalities are considered in (4), which are given by matrix A i and vector b i (i = 1 and i = M denote the highest and lowest priority, respectively), and the solution x M is computed with the recursive formulation given by (5) and (6) in order to minimize the tasks errors, where x 0 = 0 (zero column vector), N 0 = I (identity matrix) and superscript † represents the Moore-Penrose pseudoinverse [20].

E. NON-CONVENTIONAL SLIDING MODE CONTROL
This work uses the non-conventional SMC described in [3] to limit the velocity at which the robot tool approaches the object surface. This control allows to fulfill inequality constraints as detailed in Theorem 1.
Theorem 1: Consider the state equation given by: where

x(t) is the state vector, d(t) is the disturbance vector, u(t) is the control input vector, f is the drift vector field and
, is a set of control vector fields.
is the i-th constraint function. Therefore, the space compatible with these constraints is given by: Thus, considering that functions φ in,i are differentiable, the control action u that satisfies the control equation below ensures that the system converges to in in finite time and remains there henceforth: where function v2dm(·) converts a vector into a diagonal matrix, function pos(·) represents the positive function (i.e., in,i ∂x f represents the Lie derivative in the direction of f, the row vector ∂x g represents the Lie derivative in the direction of g, scalar u + in is the so-called switching gain, W in is a weighting diagonal matrix and right superscript a denotes the active constraints (that is, φ a in,i ≥ 0), whose number is equal to N a .
For the proof of the above theorem, and further details about the non-conventional SMC, see [3].

III. PROPOSED APPROACH A. CONTROL SCHEME
The control scheme of the proposed approach is shown in Fig. 1, where three tasks with different priority levels are depicted. Firstly, the highest priority task (Level 1) is used to maintain the orthogonality between the robot tool and the object surface by means of a hybrid controller. Secondly, the medium-priority task (Level 2) is used to limit the velocity at which the tool approaches the object surface by means of the non-conventional SMC described in Section II-E. Finally, the task with the lowest priority (Level 3) is employed to treat a specific point of the object surface with the robot tool, either using an admittance controller with force feedback (manual mode) or a hybrid controller to track a reference Cartesian position (automatic mode).
The input to the tasks are: the robot angles and velocities {q,q} and the pose vector of the tool p (all three levels), which are provided by the low-level controller of the  In particular, d is the distance from the tool tip P tool to the closest point of the object surface, namely P surf . Whereas n is the vector from the tool tip to point P surf , which corresponds to the normal vector of the surface at point P surf as long as it is defined (i.e., as long as the object surface is smooth at P surf ). Each task gives an equation A i x = b i (4) whose error has to be minimized, where the unknown x is the commanded accelerationq c . Hence, Eqs. (5) and (6) are employed to compute the accelerationq c,3 , which in turn is integrated twice to obtain the angles q c that are commanded to the robot. Lastly, the low-level controller of the robot closes a loop to track these angles considering the joint sensor measurements, i.e., the current values q and the torques τ . Hence, the inaccuracy of this low-level control loop is bounded and represented by d c .

B. LEVEL 1: ORIENTATION CONTROL TO ENSURE PERPENDICULARITY TO THE SURFACE
As commented previously, a key constraint in surface treatment tasks consists in keeping the tool perpendicular to the surface, i.e., the tool Z -axis must match vector n, which is the vector from the tool tip P tool to the closest point of the object surface P surf , as shown in Fig. 2. Therefore, vector n represents the reference orientation for the robot tool and can be readily converted [17] to roll α ref and pitch β ref reference values. Note that the yaw angle is not constrained in the application and can be used for other purposes, e.g., it can be guided by the user as considered in Section III-D1.
Therefore, the acceleration equality for this level is given by: and K d1 are the gains to correct tool orientation error and its derivative, respectively;α andβ are computed from the firstorder kinematics in (2); u + 1 is the gain for the last switching term; and A 1 and b 1 are the matrix and vector for the first task in (4).
Note that (11) is a hybrid control due to the last switching term, which is introduced to compensate the termJq, see (3). This hybrid control has two main advantages: the derivative of the robot Jacobian is not required; and, due to the other continuous terms in the control action, the gain u + 1 can be relatively small, reducing the chattering effects.

C. LEVEL 2: NON-CONVENTIONAL SMC TO CONTROL THE APPROACH TO THE SURFACE
The following inequality constraint is considered to progressively limit the velocity of approach of the tool tip to the object surface: where d is a tolerance which provides a safety margin between the tool tip and the surface during the surface treatment task and parameter K 2 can be freely designed to establish the maximum allowed rate of approach to the object surface. Thus, the maximum rate of reduction of the distance given by the inequality (12) tends to zero as the tool reaches the surface.
Assuming that the object to be treated remains static or moves slowly compared to the robot motion, the time derivative of d for the last term in (12) can be computed from the joint velocities as follows: where matrix J v contains the first three rows of the robot Jacobian J.
The non-conventional SMC presented in Section II-E is considered to satisfy the constraint in (12). For this purpose, a dynamical system in the form of Eq. (7) is considered with x = q TqT T , d = d c and u =q c . Thus, the model of the robot system is a double integrator given by: Taking into account the control law (9) and the constraint (12), the acceleration equality for this level results in: where u + 2 corresponds to the SMC switching gain, b 2 and A 2 are the vector and matrix for the second task in (4) and the Lie derivative L g φ d is given by:

D. LEVEL 3: MANUAL AND AUTOMATIC MODES
This level is used to treat a specific point of the object surface with the robot tool considering two modes of operation. In particular, if the module of the forces detected by the guidance sensor is above a certain threshold F th , i.e., |F| ≥ F th , the manual mode is active and an admittance controller is considered to track the user's forces. Otherwise, |F| < F th , the automatic mode is active and a hybrid controller is used to track a reference Cartesian position. Next, the control law for each mode of operation is detailed.

1) MANUAL MODE
In this mode of operation the user guides the robot tool to apply the surface treatment on a specific point of the object surface. For this purpose, and similarly to other works considering human-robot interaction [16], an admittance controller is employed to allow the operator to guide the robot tool. Thus, the forces performed by the user correspond to the desired tool velocities. Typically, an admittance controller is given by: where v n = J nq is the tool velocity vector relative to the tool frame, J n is the so-called geometric Jacobian [17] relative to the tool frame, F is vector of forces performed by the user relative to the tool frame and the parameters M 3 and C 3 are diagonal matrices of dimension 6 × 6 denoting the virtual inertia and damping, respectively. It is interesting to remark that this controller does not include the virtual stiffness due to the fact that ''restoring'' forces is not suitable for the proposed application of human-robot cooperation [16]. It is also worth noting that, since the roll α and pitch β angles of the tool are controlled in Level 1, only the Cartesian position p and yaw angle γ of the robot tool are available at this level to be guided by the user.
Replacing the relation v n = J nq in (17) and solving forq yields: In order to avoid taking the time derivative of J n for the last term in (18), the following hybrid control equation is considered for Level 2: where u + 3m denotes the gain for the last switching term and A 3m and b 3m are the matrix and vector for the third task in (4) when the manual mode is active. Note that the last term is introduced to compensate for the term M 3Jq when the steady state given by C 3 v n = F has been reached, see (17).

2) AUTOMATIC MODE
Similarly to (11), the following hybrid control equation is considered to track the desired reference pose p ref in the automatic mode: where vector e = p ref − p represents the error of the tool pose; K p3 and K d3 are the gains to correct the tool pose error and its derivative, respectively;ṗ is computed from the firstorder kinematics in (2); u + 3a is the gain for the last switching term; and A 3a and b 3a are the matrix and vector for the third task in (4)  However, as before, the values used for roll and pitch angles have no effect since these angles are already constrained in Level 1. Whereas, the reference value used for the yaw angle remains fixed to the value that this angle had when the automatic mode became active, i.e., the objective is to keep the yaw angle still during the automatic mode.
Regarding the reference values used for the Cartesian position of the robot tool, four phases are considered to treat a specific point of the object surface. Firstly, an approach movement is generated to place the robot tool at a certain distance from the surface point to be treated. Secondly, a slow linear movement is used to place the robot tool on the surface point. Thirdly, the tool remains still for a certain time lapse to guarantee that the treatment has been completed. Fourthly, a slow linear movement is generated to departure from the object surface. Thus, these four phases are cyclically repeated for each surface point to be treated. Since the manual mode can interrupt this automatic process, when the automatic mode becomes active again, it resumes the mentioned phases for the surface point being considered before the interruption. Additionally, when the automatic mode becomes active, the reference for the tool Cartesian position stays still at the current value for a brief time lapse in order to deal with sudden switching between manual and automatic modes.

E. LIMITATIONS OF THE METHOD
The main limitation of the proposed approach is the so-called chattering effect [13], which is present in all three levels above due to the switching terms in the control equations. In particular, discrete-time implementations of the above discontinuous control laws make the system leave the ideal sliding mode behavior and oscillate with finite frequency and amplitude inside a band around the set-point.
Several approaches can be found in the literature to theoretically avoid this drawback [3], either by softening the discontinuous control or by using a dynamical or high-order discontinuous control. However, this issue is out of the scope of this research and remains as further work. See [3] for further details.

IV. CONTROLLER IMPLEMENTATION
The pseudo-code of the proposed approach is given in Table 1, which considers several functions: robot function l(q); robot Jacobians J, J v and J n ; Moore-Penrose pseudoinverse (·) † (a threshold is considered to discard the small singular values [20]); GetRobot&Forces&VisionData, which provides the current robot angles and velocities {q,q}, the force vector F (it is assumed that the sensor electronics has filtered the force measurements) and the vision data {n, d}; OrientationOfVector(n), which provides [17] the orientation of a vector (that is, the roll α and pitch β angles); and Send-ToJointControllers(q c ), which commands to the low-level controller the desired accelerations. Furthermore, the reference pose p ref for the robot tool is supplied by the automatic mode with the procedure detailed in Section III-D2. The computational load of the proposed method (compiled C code in a modern computer) is about 15 microseconds for the case of the real experimentation in Section V.

V. REAL EXPERIMENTATION
A. SETUP Fig. 3 shows the setup considered for the real experimentation, which consists of: a Kuka KR6 r900 sixx robot; an industrial sanding tool (Mirka AROS-B 150NV 32mm 10.8V 2.0 Ah Orbit 5.0) attached to the end-effector of the robot by means of a self-developed adapter; a force/torque sensor Axia80 located between the last link of the robot and the sanding tool, which is employed by the user to guide the tool; a sanding disc consisting of a cylinder of 28 × 28 × 22 mm; a network of three RGB-D Microsoft Kinect sensors; and a car door as object to apply the surface treatment.  The proposed algorithm was implemented in an external PC workstation (Intel-R Core-TM i7-5820K CPU 3.30GHz) with: Ubuntu 16.04 as Operative System; ROS (Robot Operating System) Kinetic distribution as middle-ware to interface with the Kuka robot; and the netft_rdt_driver ROS package provided by the sensor manufacturer (ATI Industrial Automation). An Ethernet switch device was used to connect and communicate (UDP protocol) the robot, the force-torque sensor and the workstation. The Microsoft Kinect network was connected to serial ports of the PC workstation.

B. CONDITIONS FOR THE EXPERIMENTS
i) A sampling frequency T −1 s of 100Hz was used and the accelerationsq c,3 were integrated twice and commanded to the low-level controller.

C. RESULTS
A first experiment was carried out to study the performance of the approach of the robot end-effector to the car door surface whose video can be played at https://media.upv.es/player/?id=b4e1be40-6c53-11ea-8c87-2ba15c40d192 (note that the sanding tool was removed from the robot end-effector to have a clearer view). Fig. 4 presents a few frames of the recording: Fig. 4(a) (time instant 13s in the recording) shows how the user attaches a small object with a mass of 0.15 Kg to the end-effector of the robot, giving rise to the activation of the manual mode; Fig. 4 Fig. 5 shows the quantitative behavior of the robot approach to the car door surface. In particular, it can be seen in the top plot of Fig. 5(a) that the distance from the robot end-effector to the car door surface is initially about 300mm and starts decreasing around time instant 5s, which corresponds to the moment when the user attaches the small object to the robot end-effector. Then, the rate of distance reduction is approximately constant in the interval 5s-18s, which is due to the fact that the constant weight of the small object is converted by the admittance controller of Level 3 to a negative vertical velocity for the robot end-effector, see the manual mode in Section III-D1. Around time instant 18s the inequality constraint becomes active, see the bottom plot in Fig. 5(a), and the rate of distance reduction is progressively decreased by the non-conventional SMC of Level 2 until the robot completely stops when the distance d equals the safety margin d , which occurs around time instant 32s. Fig. 5(b) shows a detailed view of the rate of distance reduction as a function of the distance, where it can be seen how the system is switching around the boundary of the inequality constraint, which is given by a straight line with a slope of −1/K 2 , see (12).
Another experiment was performed to show the generality of the proposed approach whose video can be played at https://media.upv.es/player/?id=ed3e6250-6c55-11ea-8c87-2ba15c40d192. In this experiment, two points of the car door surface have been considered for the automatic mode, whereas the user activates the manual mode several times during the experiment in order to treat other points of the car door surface. Moreover, the position and orientation of the car door is modified around time instant 6m10s of the video in order to show how the vision sensors update in real-time the information required for the surface treatment task, i.e., the positions of the points to be treated and the distance and  normal vector to the car door surface. Fig. 6 presents a few frames of the recording: Fig. 6(a) and 6(b) (interval 20s-38s in the recording) show how the tool applies the surface treatment for the first point of the automatic mode; Fig. 6(c) and 6(d) (interval 2m01s-2m10s) show how the user activates the manual mode in order to treat a specific point of the car door surface; Fig. 6(e) and 6(f) (interval 4m45s-4m58s) show how the user activates again the manual mode in order to treat a point close to a style-line of the car door surface, which is done properly by the robot despite that this point is more challenging due to the sharpness of this area of the car door; and Fig. 6(g), and 6(h) (interval 6m07s-6m29s) show how the robot keeps working properly after the relocation of the car door thanks to the real-time data provided by the vision system. Fig. 7 shows the behavior of the approach of the robot tool to the car door surface, where it can be appreciated that the activation of the inequality constraint in Level 2 (see the bottom plot) ensures that the distance d from the robot tool to the car door surface never exceeds the safety margin d (see the top plot). Forces of the user (dark-blue) and tool velocities (light-cyan) multiplied by the virtual damping C 3 : first plot, linear X-axis; second plot, linear Y-axis; third plot, linear Z-axis; and fourth plot, angular Z-axis (coordinates relative to the tool frame).   in Level 1 ensures that the roll and yaw angles follow closely the reference signals provided by the vision system, see the first and second plots. Moreover, the manual mode in Level 3 allows the user to modify the yaw angle as shown in the bottom plot. Fig. 9 shows the forces of the user and the tool velocities during the second experiment, which are very similar thanks to the admittance controller used in Level 3 for the manual mode.
The Cartesian position of the robot tool during the second experiment is depicted in Fig. 10, where it can be appreciated that the tool has covered a large area to treat not only the points of the automatic mode but also the points established by the user in the manual mode.
Finally, the control signals are shown in Fig. 11, where it can be appreciated how each level contributes to the commanded accelerations.

VI. CONCLUSION
This work developed a human-robot cooperation to carry out treatments such as sanding, polishing, etc. on the surface of a known rigid object. To achieve this goal, a vision system was used to obtain the location of the object in order to ensure not only the orthogonality of the robot tool to the object surface but also a smooth approach of the tool to the surface.
Furthermore, in order to add flexibility to the application, the proposal included the simultaneous combination of automatic and manual modes of operation. Thus, the human operator can guide the robot tool to treat arbitrary areas (manual mode) and, when the operator releases the tool, the robot goes into the automatic mode to treat prior established areas.
The applicability and efficacy of the proposed method was shown experimentally using a conventional 6R arm manipulator.
CARLOS PEREZ-VIDAL received the B.Sc. degree in industrial engineering, in 1998, the M.Sc. degree in control engineering, in 2000, and the Ph.D. degree in industrial technologies from the Technical University of Valencia and UMH, Spain, in 2008. He has been active in research and development with several projects on advanced robotics and vision since 2001. He is currently an Associate Professor of control and systems engineering with Universidad Miguel Hernández, Spain. He is also a Researcher with the Systems Engineering and Automatic Control Division. He is the author or coauthor of multiple research publications. His current research interests include robotics, direct visual servoing, and automation/control and medical applications.
JOSEP TORNERO received the M.S. degree in systems and control from The University of Manchester, in 1982, and the Ph.D. degree in electrical engineering from the Universitat Politècnica de València (UPV), in 1985. He has been a Visiting Professor with CIRSSE (NASA Center for Intelligent Robotics Systems for Space Exploration), the Rensselaer Polytechnic Institute, Troy, NY, USA, and the Department of Mechanical Engineering, University of California, Berkeley. He is currently a Professor with the Department of Systems Engineering and Control (DISA), UPV, where he is also responsible with the Design and Manufacturing Institute (IDF). His research interests include control of robot systems and multirate sampled data systems. VOLUME 8, 2020