Automation of Train Cab Front Cleaning With a Robot Manipulator

In this letter we present a control and trajectory tracking approach for wiping the train cab front panels, using a velocity controlled robotic manipulator and a force/torque sensor attached to its end effector, without using any surface model or vision-based surface detection. The control strategy consists in a simultaneous position and force controller, adapted from the operational space formulation, that aligns the cleaning tool with the surface normal, maintaining a set-point normal force, while simultaneously moving along the surface. The trajectory tracking strategy consists in specifying and tracking a two dimensional path that, when projected onto the train surface, corresponds to the desired pattern of motion. We first validated our approach using the Baxter robot to wipe a highly curved surface with both a spiral and a raster scan motion patterns. Finally, we implemented the same approach in a scaled robot prototype, specifically designed by ourselves to wipe a $1/8$  scaled version of a train cab front, using a raster scan pattern.


Automation of Train Cab Front Cleaning With a Robot Manipulator
João Moura , William Mccoll , Gerard Taykaldiranian , Tetsuo Tomiyama , and Mustafa Suphi Erden Abstract-In this letter we present a control and trajectory tracking approach for wiping the train cab front panels, using a velocity controlled robotic manipulator and a force/torque sensor attached to its end effector, without using any surface model or vision-based surface detection.The control strategy consists in a simultaneous position and force controller, adapted from the operational space formulation, that aligns the cleaning tool with the surface normal, maintaining a set-point normal force, while simultaneously moving along the surface.The trajectory tracking strategy consists in specifying and tracking a two dimensional path that, when projected onto the train surface, corresponds to the desired pattern of motion.We first validated our approach using the Baxter robot to wipe a highly curved surface with both a spiral and a raster scan motion patterns.Finally, we implemented the same approach in a scaled robot prototype, specifically designed by ourselves to wipe a 1/8 scaled version of a train cab front, using a raster scan pattern.Index Terms-Kinematics, industrial robots, motion control, force control.

I. INTRODUCTION
T HE current cleaning process of the trains exterior includes mechanized washers, that successfully wash the trains' body side panels but fail to clean the train cab front and bodyend panels between carriages.Due to the train cab front curved shapes, even specialized automatic front washers fail to achieve consistent washing quality.Moreover, such machines lack flexibility being, in general, unsuitable for different train cab front shapes.As a result, train cleaning operations still comprise depot workers manually washing the front train panels, as shown in Fig. 1.A flexible robotic manipulator could replace this laborious manual work, in which depot operatives work in nonergonomic postures and subject to an highly humid environment.In this letter we present a control and trajectory tracking approach that allows using a velocity controlled robotic manipulator, typically found in industrial applications, to wipe the train cab front surface, assuming smooth but unknown geometry and only relying on force/torque feedback and the arm odometry.The control strategy is an adaptation from [1], [2] that use the Operational Space Formulation [3] to adjust the end-effector orientation according to the local three dimensional surface inclination.Furthermore, we develop a strategy for tracking a prespecified pattern of motion, while moving along the unknown surface geometry, by tracking a planar path that corresponds to the projection of the path to be followed on the 3D surface.
Experiments using one of the 7 degrees of freedom (dof) Baxter arms from Rethink Robotics validate the proposed strategy.A force/torque sensor attached to the arm's end-effector allows to measure the contact forces and torques, and to control the interaction force between the end-effector and the surface.A sponge attached to the force/torque sensor guarantees a compliant interaction between the arm and the surface.Finally, we tested our strategy with a scaled prototype robot, shown in Fig. 2(a), specifically designed and built by ourselves for the purpose of cab front cleaning.A study on the conceptual design and systems development and a proposal for a torque control approach for the purpose of the train cab front cleaning application were presented in [4], [5], respectively.However, none of these concept designs or control strategy has been validated in practice, and as we will further discuss, the torque control approach has several limitations for this specific application and, therefore, we replace it with an admittance based kinematic control approach in the current letter.

A. Related Work
Regarding wiping a region of a surface, Hess et al. [6] proposed an algorithm to cover a region of a 3D surface using a This work is licensed under a Creative Commons Attribution 3.0 License.For more information, see http://creativecommons.org/licenses/by/3.0/redundant manipulator and minimizing the joint movements.The authors used a Kinect sensor to obtain a point cloud and generated an explicit model of the surface.Then using a search method they found an optimal trajectory to cover the scanned surface.Unfortunately, Kinect sensors perform poorly in outdoor environments under ambient infra-red radiation, making it unsuitable for the train cleaning application.Capturing the train cab front geometry, using any other type of vision or 3D scanning based system, requires covering a large area subject to varying outdoor light conditions, which makes it difficult to obtain a precise enough model to guarantee a smooth contact between the wiping tool and the surface.In addition, wind shield glass might be incorrectly captured through vision.
Polishing manipulators perform a similar job to cleaning manipulators: both have to sweep through a surface while maintaining a contact pressure.Nagata et al. [7] presented a position/force controller implementation for a polishing robot, using a CAD model of the surface.The controller compensates the polishing force to guarantee the final quality of the surface.The orientation of the polishing tool remains fixed throughout the operation, hence, the computation of the normal and friction forces requires a precise model of the surface, such as a CAD model.
Maintaining a specific contact pressure between the endeffector and the train surface through scanning the surface geometry, as in [6], would require the incorporation of precise position measurements, resulting in a complex and expensive system.One could possibly use a CAD model of the train, but those models often have significant deviation from the actual trains.However, a skilful operator wipes the front panels not by guaranteeing a precise hold of the broom but rather by adjusting its orientation and pressure force, using haptic feedback.
Jamisola et al. [1], [2] implemented the operational space formulation from Khatib [3] to solve the problem of polishing an unknown smooth but non-flat surface.The polishing tool applies a roughly constant force (10 ± 4 N) in a bidirectional motion while subject to perturbations such as the rotation of the grinder and an additional disturbance introduced by the operator moving the manipulator's base while polishing.The controller adjusts the end-effector orientation in order to minimize the torques between the polishing tool and the surface, resulting in a tool always perpendicular to the surface.By aligning the tool with the surface normal, the direction of the polishing force is known, allowing the control of the polishing force in the right direction.
There are other works using similar simultaneous force and position control methods for: keeping contact with an arbitrarily inclined plane [8], cleaning a planar surface through demonstration [9], or haptic exploration of unknown surfaces with discontinuities in a 2 dimensional space/motion [10].

B. Contributions
For the cab front cleaning robot we use the same control approach as in [1] with the adaptation that the output commands are joint velocities rather than joint torques, allowing the method to be implemented in typical industrial robots that lack torque control capabilities.Furthermore, torque control requires an accurate model of the manipulator, which would be difficult to obtain for the case of a final prototype incorporating flexible pipes transporting water and detergent to the end-effector.
Summarising, the contributions of this letter are: r We adapt the Operational Space Formulation for the simul- taneous position and force control of a velocity controlled robot; r We present a tracking strategy for performing motion patterns in non-flat surfaces with smooth but unknown geometry; r We show our framework with both a commercially avail- able robot and with a robot purposely designed for the task of cleaning the cab fronts of the trains.

C. Notation
Throughout the letter, bold lower-case letters -a -represent a column vector, bold upper-case letters -A -represent matrices, non-bold lower-case letters -a -represent single variables, and non-bold upper-case letters -A -represent constants or tunable parameters.

II. SIMULTANEOUS POSITION/FORCE CONTROL
In this section we detail the control strategy to simultaneously adjust the end-effector orientation, the interaction/cleaning force, and the end-effector wiping motion tangential to the target surface.This involves combining force and position information in a single local reference frame and specifying the force and position control axis.Then, standard inverse differential kinematics solution translates the desired end-effector motion to the robot arm joint velocity commands.The block diagram in Fig. 3 summarizes the main components and transformations described in this section.

A. Wiping Motion Description
When wiping a surface we can distinguish two distinct tasks: aligning the wiping tool with the surface and ensuring contact; moving the wiping tool along the surface with a specified pattern of motion.The first task of aligning the wiping tool would in principle require a good model of the surface geometry and its position relative to the robot.However, it is impractical to precisely position a large object such as a train, or to obtain a good scan of its geometry in an outside environment subject  to varying lighting conditions.An alternative is to use force information to ensure the contact and alignment requirements.
Fig. 4 schematically illustrates the end-effector wiping a curved surface, with its main components, their respective reference frames, and possible interaction forces and torque.If the surface geometry is unknown, the robot can use force feedback to align the tool, given that when in contact with the surface, a misalignment between the wiping tool and the surface results in a torque at the interaction point.Therefore, the robot can align the end-effector by simply minimizing this interaction torque, and guarantee a given contact pressure by controlling the normal contact force.While aligning the tool, the robot also has to perform a wiping motion along the surface, suggesting that it has to simultaneously control these interaction force and torques and the wiping motion.

B. Control Directions Specification
The simultaneous position and force control, according to the Operational Space Formulation [3], consists in specifying the direction axis in the operational space (i.e., end-effector task space) in which we control force or position independently.So, for example, let u be the control input in the task space.The control u results from combining the desired motion u motion and desired force interaction with the environment u force .However, we must ensure that the motion component is unaffected by the force component, and vice versa.In the Operational Space Formulation, this is accomplished by specifying the generalized task matrices Ω and Ω, so that u = Ωu motion + Ωu force , where Ω = I − Ω and I is the identity matrix with the appropriate dimension.
The form of the matrix Ω depends on the particular task the robot executes and on the chosen reference frame.For the wiping motion, a trick to simplify the construction of this matrix is to specify the control input in a local end-effector frame as, for instance, S u (S is the axis with origin in the contact point and aligned with the wiping tool as shown in Fig. 4).Then, the generalized task specification matrix becomes, meaning that the position control occurs in the x and y endeffector local axis for translation (tangential directions to the surface when the tool is fully aligned), and in the z axis for rotation (no rotation along this axis when the tool is fully aligned).
The force control occurs in the z end-effector local axis for linear force (perpendicular direction to the surface when the tool is fully aligned), and around the x and y end-effector local axis for torques (torques are set to be zero to guarantee that the end-effector is always perpendicular to the surface).Here we assume a 6 dimensional operational space, composed of 3 linear positions/forces and 3 angular positions/torques.

C. Inverse Differential Kinematic Solution
In the Operational Space Formulation [3] for simultaneous motion and force control of robot manipulators, the task space control input u corresponds to the end-effector acceleration, converted to joint torques through direct dynamics.However, even though lab robots are often torque controlled, many industrial robots lack such torque control capabilities, either due to hardware limitations, such as the joints lacking torque sensors, or simply because velocity controllers are more widely available and integrated in servo motors.Moreover, the computation of the joint torques requires the dynamic model of the robot manipulator, which for industrial applications can be difficult to obtain.As previously mentioned, a final version of the cab front cleaning robot will require the flow of water and detergent through flexible pipes to the wiping tool, that might be external to the rigid links.Therefore, for this application, it is more viable to directly control the joint velocities instead of the joint torques.
Once we define the task space control input u to be the endeffector velocity S ẋ ∈ R 6 (expressed in the local frame S), a solution for the joint velocities q ∈ R n , for a robot with n joints, is simply where q ∈ R n are measured joint position values and J † ∈ R n ×6 is the pseudo inverse of the manipulator Jacobian.For a manipulator that has more degrees of freedom than the operational space variables (n > 6), which is the case for the Baxter arm, the pseudo inverse Jacobian corresponds to the mapping that minimizes the square of the joint velocities' euclidean norm q 2 .For the case that n = 6, the pseudo inverse degenerates into the inverse, and the solution of q is unique.
In summary, a manipulator velocity controller consists of the following procedure: defining the desired end-effector velocities; computing the corresponding joint velocities using the inverse differential kinematics; and sending the desired joint velocities to the motor controllers.In order to specify the endeffector position instead of the end-effector velocity, we just need to differentiate the desired position.

D. Admittance Control
Knowing how to control the end-effector velocity or position through joint velocity control, the next step is to compute the end-effector displacement in a certain direction to produce a desired force.As we perform compliant interaction with the surface through a sponge, we can set a proportional control on the force giving the resulting end-effector velocity as where S f is the desired generalized force vector, S f is the measured force, and K P is a diagonal matrix of the gains applied in each axis.For the case of the sweeping robot that only controls the force in the end-effector z direction and torques in the x and y directions, then

E. Reference Frames
When combining different sensing modalities, it is convenient to represent all the measurements in the same reference frame.However, the force/torque sensor returns the measurements with respect to a frame F , different from the standard end-effector local frame N , which in turn differs from the frame of interest S, with its origin at the contact point between the wiping tool and the surface.Therefore, before any control considerations we address the transformations of the measurements into the reference frame of interest.
We assume to have access to the robot forward kinematics model f which, given q, returns the end-effector position and orientation in the form of: the frame N origin Cartesian coordinates G p N ∈ R 3 ; and the rotation matrix G R N ∈ R 3×3 , relative to the global frame G, as Then, given the position of the contact point relative to N ( N p S ∈ R 3 ), its coordinates relative to the global frame are simply given by Due to the distance between the contact point and the force/torque sensor, the forces/torques are originally measured relative to a frame that is not the one of interest in the wiping application.Consider the example from Fig. 4. We are interested in minimizing the contact torque m c , which is the torque around the axis S y ( S τ y = m c ).However, due to the distance L F between the contact point and the force/torque sensor, its reading F τ y is a sum of the contact torque m c and the effect of the force f f applied to the contact point.Therefore, we can compute the contact point as m c = F τ y + L F f f .More generally, given a generalized force obtaining the forces acting on the end-effector contact point consists in applying the relation where S P F is a transformation matrix given by and N p F is the position vector of the origin of the coordinate system F relative to the coordinate system S.The operator [] × represents the transformation of a vector in a skew-symmetric matrix.

III. TRAJECTORY TRACKING
When assuming that the surface is unknown, one of the main questions is: how can we specify a trajectory?Obviously, we are unable to specify an exact trajectory on the surface without knowing its geometry, but even then we would like to cover a region following a specific pattern of motion.
The solution we propose is specifying only a planar movement rather than specifying the whole 3D trajectory.Then, the actual trajectory would be a projection of this planar trajectory onto the surface.A set of assumptions are that: the dimensions of the planar trajectory are smaller than the outer dimensions of the 3D surface; the gap between the curves of the trajectory that traverse the surface is small enough compared to the cleaning tool size (so it covers all the surface area even for the most inclined surfaces); and the robotic manipulator can reach the projected positions.Fig. 5(a) shows the result of projecting the raster scan in Fig. 5(b) onto a spherical surface.
By describing the planar trajectory as a parametric function p(θ) ∈ R 2 , we simply define the commanded velocity S ẋ ∈ R 2 in the planar space as proportional to the derivative of this function where P stands for the planar trajectory space.By definition, the norm of the parametric function derivative is always 1 for every value of θ i .Then we project this velocity onto the surface as where S T P ∈ R 6×2 is a matrix that projects the planar trajectory in the local frame S. If, while sweeping, the end-effector slips from the path, we have to compensate this deviation.Fig. 5(a) shows an example of a possible end-effector drift that, due to slipping, the endeffector position (black dot) no longer coincides with the projected trajectory.Given that the surface geometry is unknown, we will compute the deviation error in the projection plane P .
We first project the current end-effector position in the global frame G p S to the plane of the planar trajectory, obtaining P x. which minimizes the distance between the current position and the trajectory.By plugging the estimated parameter θ in the parametric function we obtain the closest trajectory position.The desired velocity in the planar space P results from adding the following two terms as where one corrects the error between the current position and the trajectory and the other is proportional to the derivative of the parametric function, so the end-effector keeps moving forward while correcting the position.Equation ( 11) transforms the result from (14) to the local surface frame S. Finally, if we wish the tangential velocity of the end-effector to the surface to be constant and equal to C v m/s, then we still need to normalize it as The advantage of using a parametric representation of the planar trajectory is that this facilitates the implementation of ∂ θ -that are themselves inputs to the trajectory tracking code, hence, isolating the specifics of this trajectories in those two functions.Changing the desired motion pattern implies changing the parametric function and it's derivative.

IV. EXPERIMENTS
In this section we validate the control and trajectory tracking strategies using two different robots.In the first experiment, we used one of the 7 degree of freedom (dof) Baxter arms ,from Rethink Robotics (Fig. 6(a)), to wipe a curved surface, validating the implementation on a tested, reliable, and commercially available platform.In the second experiment, we used a scaled functional prototype specifically built for this project to wipe the front panel of a 1/8 scaled train cab front (Fig. 2(a)).We tested two different motion patterns with the Baxter -a spiral and a raster scan -and applied the raster scan pattern in the Cab Front Cleaning robot experiment.The pattern tracking procedure initializes when the wiping tool touches the surface, event that is triggered by the force/torque sensor.
To integrate the force/torque sensor reading with the robot commands and the implemented control unit, we used the Robotics Operative System (ROS) framework running at a frequency of 100 Hz.For the forward and inverse differential kinematics we used the Orocos Kinematics and Dynamics library (KDL).

A. Baxter Experiments
For reliably obtaining the forces and torques applied by the Baxter's end-effector we used the Gamma F/T sensor from ATI industrial automation, shown in Fig. 6(b).This sensor measures forces and torques along the x, y, and z axis -6 values in total.Fig. 6(a) also shows the surface used in the tests.Fig. 6(b) shows the sponge used to guarantee a compliant contact with the surface.This compliance allows to accommodate some error in the positioning of the end-effector.However, this material also reduces the stiffness of the end-effector, adding some oscillations to the movements.
We initially used a spiral motion as the motion pattern.During the observation of the manual cleaning process of the train cab fronts, one of the simpler movements widely repeated resembled a spiral motion, as shown in Fig. 1.If the wiping tool can itself provide this rotational motion -which is the case for the Cab Front Cleaning robot -then it is reasonable to propose a raster scan motion instead, for covering the surface.Therefore, we also tested the raster scan pattern.Fig. 7 shows the position and force measurements corresponding to the spiral motion.Fig. 8 and 9 show the position and force measurements corresponding to the raster scan motions with turning diameters of 3 and 6 cm, respectively.Each figure is composed of three sub-figures with: (a) the projection of the end-effector trajectory on the x − y plane and the two dimensional reference path; (b) the three dimensional endeffector trajectory on top of the model of the surface; (c) and the unfiltered zth component of the measured force, which should correspond to the force perpendicular to the surface, when the wiping tool is perfectly aligned.
Note that the reference raster scans shown in Fig. 8 and 9 have the parallel lines connected by semi-circles instead of straight lines as in the example of Fig. 5.The requirement of using a smooth curve as a motion pattern comes from the chosen parametric representation for trajectory tracking, where we use the derivative of this curve to indicate the direction where the end-effector should move.Therefore, this derivative has to be well defined in all points of the trajectory.Furthermore, we are currently using gradient descent for computing (12), which again requires access to the derivative of the reference curve.The controller gains used to achieve a smooth movement were: K z = −0.03m/(sN); K xy = −7.0rad/(Ns 2 ); K D = 1.0; and K P = 100.0Hz.These are ad-hoc determined for the Baxter robot and the cleaning setup in Fig. 6(a) through trial-anderror.The set points C v = 0.02 m/s and F z = −10 N were also chosen to give a visually smooth motion.For example, the motion's smoothness would degrade when using too high or too low contact forces.This happens because the orientation mechanism depends on measuring the tangential torque so to adapt the end-effector orientation to be perpendicular to the surface.If the force applied to the surface is small, then the reading of the tangential torque measurements will be small, becoming at some point indistinct from the signal noise.Therefore, the end-effector needs to apply sufficient pressure so that the torque resulting from the misalignment is greater than the noise.However, if the force applied to the surface is too large, then the motion becomes too sticky due to the unmodelled effects of friction.
As the end-effector transverses throughout the surface, the surface inclination changes significantly in relatively short distances, having variations of up to 90 • from the left to the right sides of the surface in the y direction.Therefore, the robot has to cope with large variations of its end-effector orientation for being able to correctly align itself with the surface.When unable to perfectly align the end-effector with the surface normal we observe that: we are no longer controlling the force normal to the surface (Fig. 4 shows the tool slightly misaligned to help visualize this effect); and the distance L f between the surface and the force control sensor changes, becoming different from the constant value we use in the transformation computations.As a result, the velocity commands are no longer fully tangential to the surface, having a component that is either against it, increasing the friction, or away from it, making the end-effector slip out of the intended path and increasing the tracking error.
Furthermore, the proportional control to maintain the force level might also be amplifying the sensor noise, given that the interface material (the sponge) introduces some unmodeled compliance/dynamics into the system.This could explain the increase in the standard variation of the zth component of the force from 0.35 N, when not in contact, to 1.35 N for the spiral motion and 1.45 N and 1.35 N for the raster scan motion with lower and larger curvature radius, respectively.A more careful tuning of the control gains as in [11] could attenuate the force variance.However, the larger force standard deviation for the motions with narrower turns and higher tracking error suggests that the performance of a controlled quantity depends both on its respective control gains and the performance of the other controlled quantities, such as the position and the tangential torques.Table I summarizes the mean μ and standard deviation s of the tracking error ε and the zth component of the measured force f z .

B. Functional Prototype Experiments
We validated the same control and path tracking strategy with our Cab Front Cleaning Robot functional prototype.This robot is flexible to accommodate different train cab front geometries, which is a significant advantage compared to many  commercially available cleaning solutions.Moreover, the detection of the surface geometry through force sensing provides a robust solution for the outdoor environments, where the cleaning process typically takes place.Fig. 2(a) shows the cab front cleaning robot prototype wiping the surface of a 1/8 scaled train front.This is a 6 degree of freedom robot with a rotating brush as the end-effector, a OPTOFORCE HEX-58-RE force/torque sensor connected to the brush motor (Fig. 2(b)), and Dynamixel AX12 servo motors at the remaining 5 joints.
In order to better cover the train front surface we used a raster scan type of motion instead of a spiral.The brusher at the endeffector rotates along its z local axis, performing the cleaning motion similar to the spiral movement.The rotational motion of the brusher also helped reducing the friction, leading to a more fluid motion.

V. RESULTS
Table I summarizes the mean μ and standard deviation s of the tracking error ε and the zth component of the measured force f z for both experiments with the Baxter and the functional prototype.We can verify that for the raster scan with larger radius and the spiral, i.e., the patterns with smoother change of motion, both the tracking error mean and standard deviation and the force standard deviation are lower.The tracking error is defined here as ε = P x − p , i.e., the Euclidian norm of the distance between the projected sample P x and its corresponding closest position p on the reference trajectory.

VI. CONCLUSION
The goal of the present work was to propose a control and trajectory tracking approach for wiping the train cab front panels using a robotic manipulator, force/torque feedback from the endeffector, and the joint positions, without using any surface model or external vision system.We implemented a control strategy based on simultaneous position and force control using inverse differential kinematics.We integrated this control strategy with a trajectory tracking method based on projecting a 2D trajectory onto the 3D unknown surface, where the local surface slope is estimated through interaction of the end-effector with the surface.
The results show that the system is able to adapt the endeffector orientation according to the surface inclination and it follows the projection of the trajectories.The motions were reproduced using two different manipulators, the Baxter robot -a commercially available platform -and a scaled functional prototype specifically designed for the application of wiping the train cab front panels.
Future work will include: the estimation of the friction forces to improve the smoothness of the motion; the integration of the adaptation using force feedback with a feed forward control using an imperfect surface model; and finally, scaling up the prototype to a full scale robot.

Fig. 2 .
Fig. 2. Cab Front Cleaning scaled robot prototype and detail of the endeffector used in the experiment.(a) Scaled functional prototype wiping a scaled train cab front using a force/torque sensor to detect the surface slope.(b) Wiping brush and the force/torque sensor.

Fig. 3 .
Fig. 3. Simultaneous force and position control diagram, using the Inverse Differential Kinematics solution.

Fig. 4 .
Fig.4.A two dimensional illustration of a robot end-effector interacting with a curved surface, portraying two particular configurations of the robot armwith different opacity.The end-effector wiping tool includes a force/torque sensor and a soft interface material (sponge).The four coordinates systems represented are: the global coordinate system G; the standard end-effector local coordinate system N ; the force sensor coordinate system F ; and the surface contact coordinate system S.The interaction of the wiping tool and the surface causes a friction force f f , a normal force f n , and a contact torque m c , where the arrows indicate the respective directions of the values.The alignment of the tool with the surface normal n is achieved by minimizing the contact torque m c , and the contact ensured by controlling the normal force f n .

Fig. 5 .
Fig. 5. Illustration of the result of projecting a 2D path onto a given surface geometry, originating a 3D path.Point indicating a possible projection of the end-effector position while tracking a desired trajectory.Vectors indicating the computed projected end-effector velocity.(a) Illustration of the projection of a vertical raster scan onto a spherical surface.(b) Example of a planar trajectory-A raster scan.

Fig. 5 (
b) shows the respective representation of the P x next to the planar trajectory.Then, we compute θ = arg min θ P x − p(θ) , (12)

Fig. 6 .
Fig. 6.Baxter robot and detail of the end-effector used in the experiment.(a) Baxter robot wiping a curved surface.(b) Force sensor.

Fig. 7 .
Fig. 7. Position and force measurements corresponding to the Baxter experiment and the spiral motion, for a tangential velocity of C v = 0.02 m/s and a normal force set point of F z = −10 N. (a) Projection of the end-effector trajectory on the x-y plane (solid line) and two dimensional reference path (dashed line).(b) Three dimensional end-effector trajectory overlaid on the surface.(c) Measurement of zth force component.When wiping tool is perfectly aligned with the surface, this component corresponds to the force perpendicular to the surface.

Fig. 8 .
Fig. 8. Position and force measurements corresponding to the Baxter experiment and the raster scan motion with turning diameter of 3 cm, for a tangential velocity of C v = 0.02 m/s and a normal force set point of F z = −10 N. (a) Projection of the endeffector trajectory on the x-y plane (solid line) and two dimensional reference path (dashed line).(b) Three dimensional end-effector trajectory overlaid on the surface.(c) Measurement of zth force component.When wiping tool is perfectly aligned with the surface, this component corresponds to the force perpendicular to the surface.

Fig. 9 .
Fig. 9. Position and force measurements corresponding to the Baxter experiment and the raster scan motion with turning diameter of 6 cm, for a tangential velocity of C v = 0.02 m/s and a normal force set point of F z = −10 N. (a) Projection of the end-effector trajectory on the x-y plane (solid line) and two dimensional reference path (dashed line).(b) Three dimensional end-effector trajectory overlaid on the surface.(c) Measurement of zth force component.When wiping tool is perfectly aligned with the surface, this component corresponds to the force perpendicular to the surface.

Fig. 10 .
Fig. 10.Position and force measurements corresponding to the functional prototype experiment and the raster scan motion with turning diameter of 1.5 cm, for a tangential velocity of C v = 0.025 m/s and a normal force set point of F z = −4 N. (a) Projection of the end-effector trajectory on the x-z plane (solid line) and reference two dimensional path (dashed line).(b) Three dimensional end-effector trajectory.(c) Measurement of zth force component.When wiping tool is perfectly aligned with the surface, this component corresponds to the force perpendicular to the surface.

Fig. 11 .
Fig. 11.Position and force measurements to the functional prototype experiment and the raster scan motion with turning diameter of 3 cm, for a tangential velocity of C v = 0.025 m/s and a normal force set point of F z = −4 N. (a) Projection of the end-effector trajectory on the x-z plane (solid line) and reference two dimensional path (dashed line).(b) Three dimensional end-effector trajectory.(c) Measurement of zth force component.When wiping tool is perfectly aligned with the surface, this component corresponds to the force perpendicular to the surface.

Fig. 10
Fig. 10 and 11 show the position and force measurements corresponding to the Cab Front Cleaning Robot prototype wiping the scaled train cab front using a raster scan motion pattern with diameter of 1.5 and 3 cm, respectively.As in the case of the Baxter figures, each figure is composed of three sub-figures with: (a) the projection of the end-effector trajectory on the x − z plane and the reference two dimensional path; (b) the three dimensional end-effector trajectory; (c) and the unfiltered zth component of the measured force, which should correspond to the force perpendicular to the surface, when the wiping tool is perfectly aligned.The controller gains used to achieve a smooth movement were: K z = −0.1 m/(sN); K xy = −3.0rad/(Ns 2 ); K D = 1.0; and K P = 50.0Hz.The set points C v = 0.025 m/s and F z = −4 N were also chosen to give a visually smooth motion.

TABLE I MEAN
μ AND STANDARD DEVIATION s OF THE TRACKING ERROR ε AND THE zTH COMPONENT OF THE MEASURED FORCE f z , FOR THE BAXTER AND FUNCTIONAL PROTOTYPE EXPERIMENTS