1 Introduction

With the development of manufacturing, demands for the surface processing of workpieces increase in machinery, automotive, electronics, aerospace, and other industries. In order to obtain good surface quality and product appearance, grinding, sanding, and polishing are widely applied in surface processing. However, the surface treatment is one of the least automated processes, and it remains to be mainly carried out by skilled workers, which has many drawbacks, including unstable quality, inefficiency, and poor working environment [1, 2].

On the other hand, industrial robots have obvious advantages such as good flexibility, low cost, small volume, and mechanical re-configurability. Therefore, robots become the effective and economical solutions for processing of geometrically complex workpieces, including spraying, welding, assembling, and polishing [3, 4]. It is well known that the polishing is a complicated process involved rubbing, plowing, and cutting simultaneously. Hence, the material removal and surface roughness of the polished workpiece depends on several factors including normal polishing force, relative speed, and machining time [5]. To obtain accurate material removal and improve the roughness over the uneven surface, it is necessary to control the position and force simultaneously during the robotic polishing.

In recent years, researches on robot polishing based on force control are increasing [6, 7]. Force control can be implemented by either passive compliance control or active force control. Whitney and Rourke [8] designed the Remote Center Compliance (RCC) which is the most representative example of passive compliance device. Huang et al. [9] developed a passive compliance tool with passive force control for robotic grinding and polishing of turbine-vane overhaul. Giublin et al. [10] designed a passive compliance device using a pneumatic actuator to realize the force control of robotic sanding. Chen et al. [11] designed a smart end-effector based on two-axis electric positioning table to control the contact force in robotic blisk polishing. The passive compliance control solves the problem of robotic polishing to a certain extent. However, the compliance devices are usually large, heavy, and designed for the specific application, which limits their scope of application. Considering the limitation of the passive compliance control, more researches focus on the active force control of robot which has greater potential in not only polishing but also almost all robot applications.

A number of active force control approaches have been proposed, including hybrid position/force control, impedance control, admittance control, stiffness control, implicit force control, and explicit force control [12]. However, most of the aforementioned methods can be divided into the two main categories: impedance control and hybrid position/force control [13]. The fundamental philosophy of impedance control is that the robot control system should be designed to regulate the mechanical impedance of the robot, but not to track a motion alone [14]. The main concept of hybrid position/force control is that the motion control and force control can be designed separately by dividing the task space into two orthogonal subspaces [15, 16].

Specific to the field of surface processing, Dai et al. [17] developed a linear fourth-order autoregressive moving average with exogenous variable model for the robotic disc-grinding process and then an adaptive pole placement controller for active force control was proposed in the research. Minami et al. [18] presented an explicit force control law based on constrained dynamic modeling of the robot for accurate grinding tasks. Thomessen et al. [19] presented an active force feedback robot control system using a three-axis force sensor attached to the robot’s end-effector for robotic grinding large hydro power turbines, and an external force control loop was added outside the original robot position control loop. With the similar control structure, researches were further conducted by Pan et al. [20, 21], Tian et al. [22, 23], and Zhang et al. [24] for robotic grinding or polishing applications. Most of these active force control methods depend on the robot original position control loop by adding an external force control loop. Hence, the force control performance is limited by the low position accuracy of the robot.

With the develop of the inner-loop joint torque sensing and control technology, more and more robots are equipped with joint torsion torque sensors on the joints of the arm to measure the reducer output torques which can be used as feedback to realize closed-loop joint torque control [25,26,27,28,29]. A different way to realize active force control is to develop the direct force control method based on the closed-loop joint torque control without the position control loop. Albu-Schäffer and Hirzinger [30] proposed a globally stable state feedback controller with the idea of remaining the system passivity, which can provide joint torque control and had been implemented on the DLR’s lightweight robot (the predecessor of KUKA LBR iiwa) [31, 32] and the torque-controlled humanoid robot TORO [33]. The globally stable state feedback controller is actually a PD controller with the input feedforward which can be interpreted as a scaling of the apparent motor inertia by model-based parameter setting. Hur et al. [34] used a time delay control (TDC) method to control the joint torque by estimating and eliminating the nonlinear friction and other unknown disturbance. TDC method is a PD controller with a delay control term added, which does not require the identification of actuator dynamic model; however, it is not enough to compensate for the motor friction by using only TDC method. Ren et al. [35] proposed an efficient and simple joint torque controller based on the active disturbance rejection control (ADRC). This method used a linear extended state observer (ESO) [36] to estimate and compensate for the motor friction and other unknown disturbance without explicit modeling of the system or perturbations.

Literature research found that that previous study rarely paid attention to the effect of inherent strong vibration disturbance from the eccentrically rotating tool on the force control performance, which is vital to successful robotic polishing but poses great challenge to robot control. This paper attempts to explore a method of contact force detection and practical force control of robot for polishing curved surfaces in the presence of strong vibration disturbance caused by the rotating polishing tool. Instead of usual direct measurement using a wrist or hand mounted six-axis force/torque sensor, this paper proposes an algorithm to detect the contact force indirectly using joint torque sensors. The contact force is estimated by a modified extended state observer (MESO) in real time, and a new adaptive filter combining insights of the notch filter and the tracking differentiator is designed to process the strong vibration disturbance of torque signals. On the basis of accuracy force detecting, a hybrid position/force control method based on the inner joint torque controller is proposed to realize the force control for robotic polishing. The experiments of robotic polishing for a curved surface are carried out to validate the effectiveness of the proposed method.

The paper is organized as follows. In Section 2, the MESO and the adaptive filter for joint torque signals are designed to estimate the contact force. Section 3 describes the design of the hybrid position/force control method based on an inner joint torque controller. Section 4 shows the experiment results to verify the effectiveness and practicability of the proposed contact force detection and control method in the harsh environment of big vibration disturbance when the polisher is rotating in high speed. Finally, conclusions are given in Section 5.

2 Detection of contact force

In most of previous work on robotic polishing, the contact force between the polishing tool and workpiece is measured by an external six-axis force/torque sensor mounted at the robot end. However, the development of the joint torque sensors makes it possible to detect the contact force under the equivalent precision only using the built-in sensors, i.e., motor encoders and joint torque sensors.

2.1 Dynamic model of the robot manipulator

The robotic polishing system is constructed as shown in Fig. 1, and the Dexterous Collaborative Robot Arm (DCRA) is a specially developed prototype of 7-DOF robot manipulator. This robot is equipped with a joint torque sensor at the load side of each actuator to measure the joint torsion torque directly [37].

Fig. 1
figure 1

The dexterous collaborative robot arm (DCRA) and the robotic polishing system

The dynamic model of an n-degrees-of-freedom robot manipulator is usually expressed in joint space coordinates as,

$$ M(q)\overset{..}{q}+C\left(q,\overset{.}{q}\right)\overset{.}{q}+g(q)=\tau +{\tau}_{\mathrm{ext}}{\tau}_{\mathrm{ext}}=J{(q)}^T{F}_{\mathrm{ext}} $$
(1)

where the n × 1 vectors \( q,\dot{q},\ddot{q} \) are the joint angle, velocity, and acceleration, respectively, M(q) is the n × n inertia matrix, \( C\left(q,\dot{q}\right)\dot{q} \) is the n-vector torques containing Coriolis and centrifugal torques, and g(q) represents n-vector gravitational torques. τ is the n × 1 vector of joint output torque measured by the joint torque sensor. τext is the n × 1 vector of external joint torques acting on the robot, and Fext is the 6 × 1 vector of contact generalized forces exerted on the manipulator by environment. Therefore, the polishing force acting on the workpiece is the reacting force of Fext in the paper. J(q) is the 6 × n Jacobian matrix which represents the relationship between virtual end-effector displacements and virtual joint displacements. The dynamic parameters of the DCRA can be identified accurately benefited from the existence of joint torque sensors, and the identification method can be found in the research of Albu-Schaffer, and Hirzinger [38].

The robot dynamic model given in Eq. (1) has the following property which is important for the subsequent analysis.

Property 1

The Matrix M(q) is symmetric and the matrix\( \dot{M}(q)-2C\left(q,\dot{q}\right) \)is antisymmetric, and then it can be obtained that [39],

$$ \overset{.}{M}(q)=C\left(q,\overset{.}{q}\right)+{C}^T\left(q,\overset{.}{q}\right) $$
(2)

2.2 Design of the extended state observer

In order to obtain the contact force Fext based on only the motor encoders and joint sensors, the external torque acting on the robot joint τext needs to be estimated firstly. The external torque can be derived from Eq. (1) as,

$$ {\tau}_{\mathrm{ext}}=-\tau +\left(M(q)\overset{..}{q}+C\left(q,\overset{.}{q}\right)\overset{.}{q}+g(q)\right) $$
(3)

However, the noise of robot angular acceleration \( \ddot{q} \) is usually very large in practical computation of second order derivative, which makes it almost impossible to calculate the external torque τext through the Eq. (3) directly. Therefore, an external torque observer based on the extended state observer (ESO) is designed.

The robot dynamic model in Eq. (1) can be rewritten as follows,

$$ \overset{..}{q}=M{(q)}^{-1}\left(\tau -C\left(q,\overset{.}{q}\right)\overset{.}{q}-g(q)\right)+M{(q)}^{-1}{\tau}_{\mathrm{ext}} $$
(4)

Now the dynamic model is transformed into the general form of a second-order multi-input multi-output (MIMO) system,

$$ \overset{..}{y}= Bu+f\left(t,y,\overset{.}{y},w\right)\cdot $$
(5)

where y = q ∈ n is the position output vector of the robot system, and \( Bu=M{(q)}^{-1}\left(\tau -C\left(q,\dot{q}\right)\dot{q}-g(q)\right)\in {\mathbb{R}}^n \) is the system input, w ∈ n is the external unknown input, and \( f\left(t,y,\dot{y},w\right)=M{(q)}^{-1}{\tau}_{ext}\in {\mathbb{R}}^n \) represents the total disturbance which includes both the internal dynamics modeling errors and external disturbances. The main idea of the ESO is to use an augmented state space model that includes \( f\left(t,y,\dot{y},w\right) \) as an additional state; and thus, the system in Eq. (5) can be augmented as,

$$ {\displaystyle \begin{array}{l}{x}_1=q\\ {}{\overset{.}{x}}_1=\overset{.}{q}={x}_2\\ {}{\overset{.}{x}}_2=\overset{..}{q}={x}_3+ Bu=f\left(t,y,\overset{.}{y},w\right)+ Bu\\ {}{\overset{.}{x}}_3=\overset{.}{f}\left(t,y,\overset{.}{y},w\right)\\ {}y={x}_1=q\end{array}} $$
(6)

wherein x1, x2, x3 are the state vectors, and the total disturbance f = M(q)−1τext is treated as the extended state x3 which is assumed unknown. However, the extended state x3 can be estimated by using a simple state estimator, i.e., ESO. The ESO has been proved being capable to track different types of nonlinear disturbances in real time [40], and the observer errors monotonically decrease with the increasing of the observer bandwidth [41].

A third-order observer should be designated for the two-order plant, and the third-order linear ESO can be designed as follows,

$$ \left\{\begin{array}{l}{e}_0={z}_1-y={z}_1-{x}_1={z}_1-q\\ {}{\overset{.}{z}}_1={z}_2-{\beta}_1{e}_0\\ {}{\overset{.}{z}}_2={z}_3-{\beta}_2{e}_0+ Bu\\ {}{\overset{.}{z}}_3=-{\beta}_3{e}_0\end{array}\right. $$
(7)

where e0 is the estimation error vector which is used to denote the estimation error of the joint position, and β1, β2, β3 are diagonal matrices which contain the gains of the ESO. Moreover, if the observer is well-tuned, the outputs z1, z2, z3 can closely track the state variables x1, x2, x3 of Eq. (6), i.e.,

$$ \left\{\begin{array}{l}{z}_1={\hat{x}}_1=\hat{q}\\ {}{z}_2={\hat{x}}_2=\hat{\overset{.}{q}}\\ {}{z}_3={\hat{x}}_3=\hat{f}=M{(q)}^{-1}{\hat{\tau}}_{\mathrm{ext}}\end{array}\right. $$
(8)

The hat symbol ∧ is used to represent estimated terms. \( {z}_3=\hat{f} \) is the estimation of the disturbance f, and therefore, the estimation of external torque and contact force can be calculated as,

$$ {\displaystyle \begin{array}{l}{\hat{\tau}}_{\mathrm{ext}}=M(q)\hat{f}=M(q){z}_3\\ {}{\hat{F}}_{\mathrm{ext}}=J{(q)}^{-T}{\hat{\tau}}_{\mathrm{ext}}\end{array}} $$
(9)

It should be noted that the Moore-Penrose Inverse is used to calculate the generalized inverse matrices of J(q)T and J(q) when the Jacobian matrix J(q) is non-homogeneous.

However, according to the Eq. (8), the inverse of the inertia matrix, i.e., M(q)−1 has to be calculated in each iteration which need the large amount of calculation especially for multi-degree-of-freedom robots. Hence, it is necessary to simplify the algorithm of contact force observer.

2.3 Modification of the extended state observer

In most robot systems, the joint velocities \( \dot{q} \) can be obtained directly from the motor drivers. And the generalized momenta [42] for robot system can be defined as follows,

$$ p=M(q)\overset{.}{q} $$
(10)

Based on Eq. (2), the first-order derivative of generalized momenta can be derived as,

$$ \overset{.}{p}=\overset{.}{M}(q)\overset{.}{q}+M(q)\overset{..}{q}=M(q)\overset{..}{q}+C\left(q,\overset{.}{q}\right)\overset{.}{q}+{C}^T\left(q,\overset{.}{q}\right)q $$
(11)

Considering Eq. (1), the Eq. (11) can be written as,

$$ \overset{.}{p}={\tau}_p+{\tau}_{\mathrm{ext}} $$
(12)

where the intermediate variable \( {\tau}_p=\tau +{C}^T\left(q,\overset{.}{q}\right)\overset{.}{q}-g(q) \) can be calculated based on the data of joint torques, positions, and velocities. Compared with the second-order MIMO system of Eq. (4) and Eq. (5), the Eq. (12) is reduced to a first-order MIMO system,

$$ \overset{.}{y}= Bu+f $$
(13)

where

$$ \left\{\begin{array}{l}y=p\\ {} Bu={\tau}_p=\tau +{C}^T\left(q,\overset{.}{q}\right)\overset{.}{q}-g(q)\\ {}f={\tau}_{\mathrm{ext}}\end{array}\right. $$
(14)

According to Eq. (6), the system in Eq. (14) can be augmented as follows,

$$ {\displaystyle \begin{array}{l}{x}_1=p\\ {}{\overset{.}{x}}_1=\overset{.}{p}={\tau}_{\mathrm{ext}}+{\tau}_p=f+{\tau}_p={x}_2+ Bu\\ {}{\overset{.}{x}}_2=f\\ {}y={x}_1=p\end{array}} $$
(15)

wherein x1, x2 are the state vectors, and the total disturbance f = τext is treated as the extended state x2 which is also assumed unknown. Then the third-order linear ESO of Eq. (7) can be modified and reduced to a second-order ESO (MESO) as follows,

$$ \left\{\begin{array}{l}{e}_0={z}_1-y=p\\ {}{\overset{.}{z}}_1={z}_2-{\beta}_1{e}_0+ Bu={z}_2-{\beta}_1{e}_0+{\tau}_p\\ {}{\overset{.}{z}}_2=-{\beta}_2{e}_0\end{array}\right. $$
(16)

where

$$ \left\{\begin{array}{l}{z}_1=\hat{p}\\ {}{z}_2=\hat{f}={\hat{\tau}}_{\mathrm{ext}}\end{array}\right. $$
(17)

Then the estimation of contact force can be calculated directly as,

$$ {\hat{F}}_{\mathrm{ext}}=J{(q)}^{-T}{\hat{\tau}}_{\mathrm{ext}}=J{(q)}^{-T}{z}_2 $$
(18)

It is noted that the inverse inertia matrix M(q)−1 does not need to be calculated in the MESO method, which greatly reduces the calculation cost in contact force detection. In addition, the observer works as a kind of low pass filter, so the lower order of MESO method can reduces the undesired phase lag comparing with the third-order linear ESO method, which is crucial in force control.

2.4 Design of the adaptive filter for joint torque signals with great vibration

During practical process of polishing, the high-frequency vibration caused by the eccentrically rotating polisher is unavoidable which would heavily corrupts the joint torque signals and the contact force signals estimated by the MESO method. Figure 2 shows the comparison of the contact force measured by the ATI six-axis F/T sensor and joint torque measured by the joint torque sensor of axis 4 when the polisher is in the states of rotating and non-rotating, respectively. However, the contact force and joint torque are the feedback signals in the force closed-loop control. Therefore, the joint torque signals must be filtered to improve the signal-to-noise ratio.

Fig. 2
figure 2

The contact force and joint torque signals and their spectrograms when the polisher is rotating and not rotating, respectively

It can be found that the high-frequency vibration is narrowband disturbance through the spectrum analysis as shown in Fig. 2. Therefore, a cascaded filter combining a twin-T notch filter and a tracking differentiator is designed to process the joint torque signals, and on-line spectrum analysis by FFT is used to identify the peak frequency of polisher vibration fmax which might change with the working pressure of polisher and polishing force. Figure 3 presents the complete frame of the contact force observer containing the adaptive filter. Wherein τs is the original joint torque vector measured by torque sensors, and τN is the processed joint torque vector filtered by the notch filter.

Fig. 3
figure 3

Block diagram of the contact force observer

It is found that the peak frequency of polisher vibration fmax ranges between 100 and 120 Hz in polishing experiments. According to the Shannon theorem, the sampling frequency of FFT fs is set as 1000 Hz to ensure fs ≥ 2fmax and the number of samples per segment is chosen as N = 1024 to make the frequency resolution is about 1 Hz.

The transform function of the twin-T notch filter is,

$$ H(s)=\frac{a{s}^2+ cs+1}{a{s}^2+ bs+1} $$
(19)

where

$$ a=\frac{1}{{\left(2\pi {f}_c\right)}^2},b=\frac{k_1}{2\pi {f}_c},c=\frac{k_2}{2\pi {f}_c} $$
(20)

fc is the central frequency of the notch filter which can be determined by the peak frequency of polisher vibration fmax, and k1, k2 are the bandwidth and depth parameters of the notch filter, respectively. The notch bandwidth Bf and depth Dp can be expressed as,

$$ \left\{\begin{array}{l}{B}_f={k}_1{f}_c\\ {}{D}_p=201\mathrm{g}\frac{k_2}{k_1}\end{array}\right. $$
(21)

Therefore, the notch filter can be adjusted well by choosing proper parameters k1, k2 based on the results of spectrum analysis, and hence, the high-frequency and narrowband vibration disturbance can be filtered out perfectly.

However, there still exist the high-frequency noises in other bands besides the vibration disturbance filtered out by the notch filter. In addition, the derivatives of joint torques are required in subsequent robot force controller. Thus, a simple and efficient tracking differentiator (TD) [36] is connected after the notch filter to act as a low pass filter and output the differential signal. The tracking differentiator is designed as given below,

$$ \left\{\begin{array}{l}{f}_h=\mathrm{fhan}\left(\tau -{\tau}_N,\overset{.}{\tau },{r}_0,{h}_0\right)\\ {}\tau =\tau +h\overset{.}{\tau}\\ {}\tau =\overset{.}{\tau }+h{f}_h\end{array}\right. $$
(22)

where τ and \( \dot{\tau} \) are the filtered joint torque and its differential respectively, h is the sampling period of joint torque sensors, and fhan(x1, x2, r0, h0) is a nonlinear function employed in TD,

$$ \left\{\begin{array}{l}d={r}_0{h}_0\\ {}{d}_0={h}_0d\\ {}y={x}_1+{h}_0{x}_2\\ {}{a}_0=\sqrt{d^2+8r\left|y\right|}\\ {}a=\left\{\begin{array}{l}{x}_2+\frac{\left({a}_0-d\right)}{2}\operatorname{sign}(y),\left|y\right|>{d}_0\\ {}{x}_2+\frac{y}{h_0},\kern0.5em \left|y\right|\le {d}_0\end{array}\right.\\ {}\mathrm{fhan}\left({x}_1,{x}_2,{r}_0,{h}_0\right)=-\left\{\begin{array}{cc}r\operatorname{sign}(a),& \left|a\right|>d\\ {}r\frac{a}{d},& \left|a\right|\le d\end{array}\right.\end{array}\right. $$
(23)

The parameter r0 is called the speed factor which approximately decides the corner frequency of TD (i.e., \( {\omega}_{TD}\approx 1.14\sqrt{r_0} \)) and h0 is the filter factor of TD which is set bigger than the sampling period h to reduce the differential noise stronger.

Then the filtered joint torque signals are used for the MESO module to estimate the contact force in real time and with high accuracy. The performance of the contact force observer is demonstrated by experiment results.

3 Contact force control

Using the designed contact force observer to obtain the force feedback, a new hybrid position/force control framework is presented in this section. The presented hybrid position/force control method is based on the built-in sensors (motor encoders and joint torque sensors) and does not need the external six-axis force/torque sensor. The algorithm in upper layer of the hybrid position/force control framework is greatly simplified benefiting from the well-designed joint torque controller and contact force observer in bottom layer, and meanwhile, ideal control results can be achieved.

3.1 Design of the hybrid position/force controller

The design of the hybrid position/force controller is accomplished in the task space which is divided into two independent subspaces, i.e., the position-controlled subspace and the force-controlled subspace. The control scheme is shown in Fig. 4. Fd is the desired contact force vector in task space and \( {X}_d,{\dot{X}}_d,{\ddot{X}}_d \) are the desired position, velocity and acceleration in task space. \( S=\mathit{\operatorname{diag}}\left({s}_j\right)\kern0.5em \left(j=1\cdots n\right) \) is named as the compliance selection matrix, n is the degrees of freedom in task space and sj is set 1 or 0. Hence, the matrix S specifies the directions of position-controlled subspace, and the matrix I − S specifies the directions of force-controlled subspace. In this way, position control and force control can be decoupled.

Fig. 4
figure 4

The scheme of hybrid position/force control

In position-controlled subspace, a faster response is more desirable and hence, a PD controller together with the desired acceleration feedforward is used to generate the command acceleration which can be expressed as,

$$ {\ddot{X}}_c={K}_p^p\left({X}_d-X\right)+{K}_D^p\left({\dot{X}}_d-\dot{X}\right)+{\ddot{X}}_d $$
(24)

where \( {K}_p^p,{K}_D^p \) are the diagonal and positive definite proportional and differential gain matrices, and the superscript p represents that the gains \( {K}_p^p,{K}_D^p \) are used in the PD controller of position-controlled subspace. \( {\ddot{X}}_c \) is the command acceleration vector in task space, and then a position control law based dynamic feedforward is used to produce the desired torque in joint torque space. The relationship of end-effector velocities in task space and the joint velocities is,

$$ \dot{X}=J(q)\dot{q} $$
(25)

which can be differentiated to derived the accelerations in task space as follows,

$$ \ddot{X}=J\ddot{q}+\dot{J}\dot{q} $$
(26)

Then the joint accelerations can be represented in task space by the relationship,

$$ \ddot{q}={J}^{-1}\left(\ddot{X}-\dot{J}\dot{q}\right) $$
(27)

Considering the dynamic model in Eq. (1), the position control law based dynamic feedforward can be designed as,

$$ {\tau}_d^p=M(q){J}^{-1}\left(S{\ddot{X}}_c-\dot{J}\dot{q}\right)+C\left(q,\dot{q}\right)\dot{q}+g(q) $$
(28)

where \( {\tau}_d^p \) is the desired joint torque component from the position-controlled subspace.

In the polishing application, the control of contact force should pay more attention to accuracy and smoothness rather than fast response, and the PI controller is the simplest and qualified control method. Therefore, a PI controller together with the desired force feedforward is used to generate the command force in force-controlled subspace,

$$ {F}_c={K}_P^f\left({F}_d-{\hat{F}}_{\mathrm{ext}}\right)+{K}_I^f\int \left({F}_d-{\hat{F}}_{\mathrm{ext}}\right)+{F}_d $$
(29)

where \( {K}_P^f,{K}_I^f \) are the diagonal and positive definite proportional and integral gain matrices, and the superscript f represents that the gains \( {K}_P^f,{K}_I^f \) are used in the PI controller of force-controlled subspace. Fc is the command force vector in task space which can be direct mapped to the joint torque space to obtain the desired joint torque component from the force-controlled subspace,

$$ {\tau}_d^f={J}^T\left(I-S\right){F}_c $$
(30)

Finally, the desired joint torque is

$$ {\tau}_d={\tau}_d^p+{\tau}_d^f $$
(31)

where τd is the tracking target of joint torque controller, and in this way, position and force controls are decoupled.

3.2 Design of the joint torque controller

To overcome the disturbances like motor friction and realize accurate joint torque servo, it is necessary to study a joint torque controller with high performance. A cascaded joint torque controller including an inner ADRC velocity feedback loop and an outer PD torque loop is designed. Figure 5 shows the controller architecture of one joint.

Fig. 5
figure 5

The developed cascaded joint torque controller with inner ADRC velocity loop and outer PD torque loop (PD-ADRC method)

The dynamic model of motor rotor rotation can be simplified as,

$$ {\overset{.}{v}}_m=\frac{1}{D_m}{\tau}_m+{f}_m=b{\tau}_m+{f}_m $$
(32)

where \( {v}_m={\dot{q}}_m \) is motor velocity, b−1 = Dm is the rotor inertia, τm is the motor torque, and fm is the whole disturbances including motor friction and other unknown disturbances. Similarly, a linear second-order ESO is used to estimate the disturbances in joint actuator control,

$$ \left\{\begin{array}{l}{e}_0={z}_1-{v}_m={z}_1-{\overset{.}{q}}_m\\ {}{\overset{.}{z}}_1={z}_2-{\beta}_1{e}_0+{b}_0{\tau}_m\\ {}{\overset{.}{z}}_2=-{\beta}_2{e}_0\end{array}\right. $$
(33)

where e0 is the estimation error of the motor velocity \( {\dot{q}}_m \), β1, β2 are the gains of the ESO, and b0 is the estimation of the parameter b. If the observer is well-tuned, the outputs of ESO z1 and z2 can closely track vm and fm, respectively. Hence, the inner ADRC velocity feedback loop can be designed as,

$$ {\tau}_m={\tau}_A-\frac{z_2}{b_0}={k}_P^A\left({\overset{.}{q}}_d-{z}_1\right)-\frac{z_2}{b_0} $$
(34)

where τA is intermediate output of the inner ADRC loop, \( {k}_P^A \) is the proportional gain, and the term, and −zm/b is used to eliminate the unknown disturbances estimated by ESO. \( {\dot{q}}_d \) is the desired velocity from the output of outer PD torque loop,

$$ {\overset{.}{q}}_d={k}_P^{\tau}\left({\tau}_d-\tau \right)+{k}_D^{\tau}\left({\overset{.}{\tau}}_d-\overset{.}{\tau}\right)+{\overset{.}{q}}_{ff} $$
(35)

where \( {k}_P^{\tau },{k}_D^{\tau } \) are the gains of outer PD torque loop, and \( {\dot{q}}_{ff} \) is the optional velocity feedforward which can be calculated by the desired trajectory in task space if necessary.

4 Experiments and analysis

In order to verify the actual performance of the proposed contact force detection and control method, experiments are conducted on the robotic polishing system as shown in Fig. 1. The control update frequency of the DCRA is 4000 Hz. The six-axis force/torque sensor is ATI MINI40-E SI-80-4 and is used as the contact force reference in the contact force detection and control experiments, and the sampling frequency is 1000 Hz. The model of the polisher is the 3 M 20314 Random Orbital Sander, which is a 3-in. non-vacuum dual action sander with a 3/32 in. orbit, and its working speed is about 7000 rpm in the following experiments.

It can be found that the eccentric distance of the 3-in. polisher is only 3/32 in., i.e., 2.38 mm, which is very small compared with the polishing tool or the robot; although the vibration force is quite large compared with the normal polishing force, which is mainly due to the such high rotating speed of about 7000 rpm. Generally, only the normal contact force needs to be controlled in the polishing application, and hence, in the proposed hybrid position/force controller only the contact force in normal direction of the workpiece belongs to the force-controlled subspace. It should be noted that the eccentric motion is perpendicular to normal direction of the workpiece during polishing, which means the change of contact point caused by the eccentric motion has little influence on the normal contact force.

4.1 Contact force detection experiments

In the first set of experiments, the estimation accuracy of the designed contact force observer is tested. In the workpiece coordinate system, the z-axis is perpendicular to the surface, and the normal vector is chosen to point to the outside of the workpiece. Therefore, the negative contact force means that the compression force is exerted on the workpiece surface, and the contact force is always non-positive in the polishing application. However, the verification of bidirectional force can indicate the performance of the designed contact force observer more comprehensively. Variable external force is exerted on the polisher by the operator to simulate the polishing contact force. Firstly, the robot is controlled to move downwards to exert compression force on the workpiece, and the negative contact force is produced. Then the robot is controlled to move upwards and meanwhile, the operator exerts a downward force on the polisher to imitate a tension force and now the positive contact force is produced.

The direct measurement result of ATI F/T sensor is used to be compared with the indirect estimation value of the designed contact force observer. In addition, an ideal offline low-pass filter based on frequency domain processing is applied to process the contact force signal of ATI F/T sensor and filter out the high-frequency disturbance by polisher vibration and other noise, and as a result, only the signal components lower than 30 Hz are extracted to represent the contact force more intuitively. It should be noted in particular that estimation value is calculated online by the algorithm of contact force observer which is integrated in the robot controller, and the ideal filtering process of ATI force signal is performed offline after the signal acquisition.

Figure 6 shows the contact force detection results in z-direction when the polisher is not rotating. The direct measurement result of ATI F/T sensor is indicated in a black solid line and its ideal low-pass filtering is denoted with a blue dashed line, and the red solid line represents the estimation of the contact force observer. It can be seen that the designed contact force observer can estimate the actual external force with very high accuracy in a large range from − 50 to 50 N which is enough for the polishing application. The estimation error is basically within ± 1 N, and the mean absolute error is 0.48 N during the whole process of the experiment. With further observations of the local enlargement as shown in Fig. 6b, there are small fluctuations less than ± 0.8 N in the estimated force signal, the frequency of which is about 10 Hz. This phenomenon is physical and reasonable, because the fundamental frequency of the robot is about 10 Hz affected by joint flexibility, and the slight vibrations with the base frequency in each axis are inevitable when the robot is moving or being exerted unsteady force.

Fig. 6
figure 6

The comparison between the contact force direct measurement by ATI F/T sensor and indirect estimation by modified observer when the polisher is not rotating

The comparison between the contact force direct measurement by ATI F/T sensor and indirect estimation by modified observer when the polisher is rotating is shown in Fig. 7, and the meaning of the lines is same as that in Fig. 6. As expected, the vibration of polishing force is as large as about ± 4 N, and the same ideal offline low-pass filter is used to obtain the intuitive contact force signal by eliminating the high frequency interference. The performance of the ideal filter in Fig. 6 proves that it can exactly represent the actual contact force. It can be seen that the estimation effect of the contact force observer is still very great, and the disturbance in the estimated force only increased a little, which indicates that the designed adaptive filter is efficient, and the overall performance of the contact force observer is excellent and practical. Compared with the ideal filtering signal, the estimation error is basically within ± 1 N, and the mean absolute error is 0.30 N during the whole process of the experiment.

Fig. 7
figure 7

The comparison between the contact force direct measurement by ATI F/T sensor and indirect estimation by modified observer when the polisher is rotating

4.2 Contact force control experiments

In the second set of experiments, the force control performance of the proposed hybrid position/force control method is tested and confirmed.

Firstly, the polishing experiments based on the pure position control of the robot are carried out on the curved aluminum plate as shown in Fig. 1 to measure the act polishing force. The average velocity of the robot movement along the tangential direction of the curved surface is about 15 mm/s, and the desired polishing force is − 20 N. The CAD model of the curved aluminum plate is known and its minimum radius of curvature is 1000 mm, which is used to generate the trajectory of the robot; even though, there are still many uncontrollable and unknown factors including the machining errors and location errors of the workpiece, calibration errors, and tracking errors of the robot. As a result, the contact force errors are large, and the measurement results are shown in Fig. 8. It can be seen that the maximum force fluctuations are both about 14 N whether the polisher is rotating or not. In addition, it should be noted that besides the main fluctuation of 14 N there still are small fluctuations with the range from 1 to about 3 N even in the condition of pure position control and non-rotating polisher, which shows the difficulty and performance limits of force control in robotic polishing application.

Fig. 8
figure 8

The polishing force measurement in polishing experiments based on the pure position control of the robot

Next, the experimental conditions remain unchanged, and the proposed hybrid position/force control method is applied to replace the robot position control. The desired contact force is still set as − 20 N. For further performance verification of the proposed force detection approach and control method, the contrast force control experiments are performed based on the two contact force signals, the direct force measurement by the ATI F/T sensor (Fig. 9), and the indirect force estimation by the proposed contact force observer only using the joint torque sensors (Fig. 10). When the proposed hybrid position/force control method is activated, the polishing force fluctuation is greatly reduced to less than 3 N based on the ideal filtering of the measurement of ATI F/T sensor (Fig. 9 and Fig. 10), and the force tracking error is less ± 1.5 N.

Fig. 9
figure 9

Polishing force control experiments based on force measurement by the ATI F/T sensor

Fig. 10
figure 10

Polishing force control experiments based on the proposed contact force observer only using the joint torque sensors

In particular, when the indirect force estimation by the proposed contact force observer only relying on the joint torque sensors is used, the polishing force fluctuation can be further reduced to less than 2.7 N, which is shown in Fig. 10. The reason is that the inner joint torque controller is based on the joint torque feedback and it behaves smoother and steadier when the outer hybrid position/force also uses the same signal sources, i.e., the contact force observer based on the joint torque sensors. The force control experiment results verify the high performance and efficiency in practical robotic polishing with the big vibration disturbance.

4.3 Polishing experiments on a curved composite plate

The polishing experiment of the curved composite plate and experimental results are shown in Fig. 11. The composite sheets are fixed on the curved platform as shown in Fig. 1, to realize the surface polishing of curved composite plate. Before polishing, the composite surface is rough and dim with an average roughness (Ra) of 4.487 μm. When the force control method proposed in this paper is applied and the contact force is controlled to a constant value at 20 N, the polished surface is much smoother and glossier with an average surface roughness (Ra) of 1.215 μm. The surface roughness is measured at ten different points by the roughness measuring instrument of Taylor Hobson Surtronic 25, and each point is measured three times to obtain the average roughness. The experimental results further confirmed the practicality of the proposed force control method in robotic polishing.

Fig. 11
figure 11

The surface polishing experiment and effect

5 Conclusions

Polishing processes are used to improve the surface quality with enhanced mechanical properties. However, strong vibration of the polishing tool poses challenge to robot control. This paper proposed a novel and effective contact force detection and control method for the new kind of robots that are equipped with joint torque sensors and are getting more and more popular in recent years. Firstly, a modified extended state observer is designed to estimate the contact force in real time without the need of calculating joint accelerations or the inverse inertia matrix. Then a new and efficient adaptive filter combining insights of the notch filter and the tracking differentiator are used to deal with the strong vibration disturbance in torque signals from the rotating tool. After detecting the accurate contact force, a hybrid position/force control method based on the inner joint torque control loop is proposed to provide excellent force control in actual robotic polishing for curved surfaces.

The effectiveness of the proposed method is validated through external force estimation and robotic polishing experiments. The contact force observer uses the joint output torques to estimate the external force with high accuracy even in the harsh conditions of big vibration disturbance when the polisher is rotating at high speed. In robotic polishing experiments, the fluctuation of polishing force is reduced from 14 N to less than 2.7 N when the proposed hybrid position/force control method is used to replace the pure position control mode of the robot. Particularly, when the direct contact force measurement by ATI F/T sensor is used as the force feedback as a comparative experiment, the performance of polishing force control remains almost unchanged. The experimental results indicate that the method for obtaining contact force information from joint output torques is potential to achieve accurate and robust hybrid position/force control in the robotic polishing process. Besides, this method is tested by the polishing experiment of curved composite plate, and the surface roughness decreases obviously. Future work will focus on the challenges in force control at the moment when the polisher contacts the workpiece which is much more difficult due to the occurrence of collision, and more polishing experiments will be performed.