1 Introduction

In recent years, robotic systems have been used in increasingly complex applications that require physical contact with different types of environments or interaction with humans (Gao and Chien 2017; Mekki et al. 2018; Peters et al. 2018). For example, in space exploration tasks, robotic systems are required to operate in unknown environments and collect samples of different materials through precise manipulation that requires force regulation (Zuo et al. 2018; Schuster et al. 2019). On the other hand, in the medical area, robots must interact with humans either to support them in rehabilitation therapies, assist them with prosthetic devices or perform surgical procedures, applying in all cases appropriate force levels (Arnold and Lee 2021; Khoshdel et al. 2018; Karar 2018; Fu and Santello 2018; Osa et al. 2017). All robotic tasks or applications described above require ensuring the safety of both the robot and the environment/humans, and one way to achieve it is through control schemes with bounded actions (He et al. 2020; Zanchettin et al. 2015).

An effective approach to solving this problem is robot force control, in general interaction control algorithms can be classified into explicit and implicit force control (Winkler and Suchý 2015). In explicit force control, the desired contact forces/torques for robot–environment interaction can be predefined, thus it is possible to achieve an adequate interaction by applying a specific force level (Sheng et al. 2017). On the other hand, by mechanical impedance or stiffness in implicit force controllers, it is possible to modify the desired movement of the robot without specifying a force value required to interact correctly, then it is not necessary to directly set the desired contact force (Lakshminarayanan et al. 2021).

Within an industrial environment, several tasks require precise regulation of the contact force, including polishing, deburring and component assembly. In order to achieve a stable closed-loop response in this kind of tasks, Chávez-Olivares et al. propose a family of explicit force controllers for robot manipulators which is supported on a stability analysis in the Lyapunov sense (Chávez-Olivares et al. 2015). In addition, a study on the influence of posture in the force control of redundant robots and how it affects robot interaction capabilities is presented in Ajoudani et al. (2017). Now, for medical purposes, Karar proposes an adaptive force control scheme that uses fuzzy logic to tune a PID controller and thus let a robotic probe to interact with different desired force levels (Karar 2018). In a bilateral teleoperation system, the information flows bilaterally between the human operator and the remote environment, these systems are normally used in hostile environments or in applications that require precise haptic sensations (as robot-assisted surgery or tele-rehabilitation), then a force control scheme that seek to improve the monitoring of slave/environment contact force or the human/haptic-device interaction is quite appropriate (Na 2017). All these works focus on aspects that are aimed at improving performance in interaction tasks; however, they do not completely solve the problem of achieving safe interaction and assume that the robotic system has the torque capability to perform any type of task.

In recent years, many control schemes with bounded actions have been proposed; however, in most cases, they have mainly addressed the problems of regulation and tracking in tasks where the robot moves freely (Zavala-Río et al. 2016; López-Araujo et al. 2015; Zamora-Gómez et al. 2020, 2019). To date, very few interaction control schemes with bounded actions have been proposed. In the case of implicit force control, a couple of stiffness control algorithms have been presented, the first being a scheme requiring exact compensation of gravitational forces (Rodríguez-Liñán et al. 2017) and the second being a vision-based controller that has the limitation of working only on a plane (Vidrios-Serrano et al. 2021). On the other hand, the explicit force controllers presented in Pliego-Jiménez et al. (2019) and Ohhira et al. (2021) consider torque constraints in the robotic system. However, the structure proposed in Pliego-Jiménez et al. (2019) restricts the range of gain values that can be selected to achieve bounded actions at the cost of limiting performance or convergence to zero of force error, while the controller proposed in Ohhira et al. (2021) represents a kinematic solution that controls the interaction indirectly. Therefore, as far as we know, our proposal is one of the first to address the problem of explicit force control by ensuring the generation of bounded actions without limiting the selection of controller gain parameters. Thus, in this work, an adaptive force controller for robot manipulators is proposed, which aims to improve the robot–environment interaction in a safer way. The proposed control scheme is based on the use of generalized saturation functions, which makes it possible to ensure that the actuators of the robotic system operate within a safe region without exceeding their torque limits. Likewise, to compensate for the parametric uncertainty related to gravitational forces and the environment stiffness, the scheme includes an adaptive term within its structure. In addition, the proposed control scheme has a rigorous stability analysis that validates its proper functioning and, as an example, numerical simulation results are presented using a robot manipulator of three degrees of freedom.

2 Preliminaries

2.1 Notation and definitions

Let \(A \in \mathbb {R}^{n \times m}\) and \(y\in \mathbb {R}^n\); while \(A_i\) is the i-th row vector of matrix A, \(A_{ij}\) is the element of matrix A located in the i-th row and the j-th column, and \(y_i\) represents the i-th element of vector y. The origin of \(\mathbb {R}^n\) is denoted by \(0_n\) and the \(n\times n\) identity matrix is represented as \(I_n\). The Euclidean norm of vectors and the induced norm of matrices are denoted by \(\Vert y\Vert =\sqrt{y^Ty}\) and \(\Vert A\Vert =\sqrt{\lambda _\mathrm{max}\{A^TA\}}\), respectively, where \(\lambda _\mathrm{max}\{{A}^TA\}\) is the maximum eigenvalue of matrix \(A^TA\).

Let \(\zeta :\mathbb {R}\longmapsto \mathbb {R}\) be a continuously differentiable scalar function and \(\varphi :\mathbb {R}\longmapsto \mathbb {R}\) be a locally Lipschitz, continuous, scalar function, both vanishing at zero, i.e., \(\zeta \left( 0\right) =\varphi \left( 0\right) =0\). In addition, \(\zeta ^\prime \) represents the derivative of \(\zeta \) with respect to its argument, i.e., \(\zeta ^\prime \left( \varsigma \right) =\partial \zeta \left( \varsigma \right) /\partial \varsigma \). While the upper right-hand derivative of \(\varphi \) is given by \(D^+\varphi \left( \varsigma \right) =\lim \sup _{h\rightarrow 0^+}{[\varphi (\varsigma + h)-\varphi (\varsigma )]h}\), \(\forall \varsigma \in \mathbb {R}\), thus \(\varphi \left( \varsigma \right) =\int _{0}^{\varsigma }{D^+\varphi \left( r\right) \mathrm{d}r}\) (Khalil 2002).

Definition 1

A nondecreasing Lipschitz-continuous function \(\sigma : \mathbb {R} \rightarrow \mathbb {R}\) bounded by \(M > 0\) is a generalized saturation function (GSF) if

  1. (a)

    \(\varsigma \sigma (\varsigma ) > 0, \forall \varsigma \ne 0.\)

  2. (b)

    \(|\sigma (\varsigma )| \le M, \forall \varsigma \in \mathbb {R}\).

  3. (c)

    In addition, if \(\sigma (\varsigma ) = \varsigma \) when \(|\varsigma | \le L\), for some \(0 < L \le M\), then \(\sigma \) is a linear generalized saturation function (L-GSF) for (LM).

Furthermore, the function \(\sigma \) satisfies the following properties for a constant \(k > 0\) (Vidrios-Serrano et al. 2021):

  1. 1.

    \(\lim _{|\varsigma |\rightarrow \infty } D^+ \sigma (\varsigma ) = 0\).

  2. 2.

    \(\exists \sigma '_M \in (0,\infty )\) : \(0 \le D^+ \sigma (\varsigma ) \le \sigma '_M, \forall \varsigma \in \mathbb {R}\).

  3. 3.

    \(\frac{\sigma ^2(k\varsigma )}{2k\sigma '_M} \le \int _{0}^{\varsigma } \sigma (k r) \mathrm{d}r \le \frac{k \sigma '_M \varsigma ^2 }{2}, \forall \varsigma \in \mathbb {R}\).

  4. 4.

    \(\int _{0}^{\varsigma } \sigma (k r) \mathrm{d}r > 0, \forall \varsigma \ne 0\).

  5. 5.

    \(\int _{0}^{\varsigma } \sigma (k r)\mathrm{d}r \rightarrow \infty \) as \(\varsigma \rightarrow \infty \).

  6. 6.

    If \(\sigma \) is strictly increasing, then

    1. a.

      \(\varsigma [ \sigma (\varsigma + \eta ) - \sigma (\eta ) ] > 0, \; \forall \varsigma \ne 0, \; \forall \eta \in \mathbb {R}\).

    2. b.

      \(\bar{\sigma } (\varsigma ) = \sigma (\varsigma + a) - \sigma (a)\) is a strictly increasing generalized saturation function (SI-GSF), for any constant \(a \in \mathbb {R}\) and bounded by \(\bar{M} = M + |\sigma (a)|\).

  7. 7.

    If \(\sigma \) is a linear saturation for (LM) then, for any continuous function \(\nu : \mathbb {R} \mapsto \mathbb {R}\) such that \(|\nu (\eta )| < L\), it holds that \(\varsigma [ \sigma (\varsigma + \nu (\eta )) - \sigma (\nu (\eta )) ] >0, \; \forall \varsigma \ne 0, \forall \eta \in \mathbb {R}\).

2.2 Dynamic model of robot manipulators

The Euler–Lagrange dynamical equation in joint space for robot manipulators, with n degrees of freedom, is given by

$$\begin{aligned} H(q)\ddot{q}+C(q,\dot{q})\dot{q}+F\dot{q}+g(q)=\tau -J^T(q)f_{e} \end{aligned}$$
(1)

where \(q\in \mathbb {R}^n\), \(\dot{q}\in \mathbb {R}^n\) and \(\ddot{q}\in \mathbb {R}^n\) are the joint position, velocity and acceleration vectors, respectively. \(H(q)\in \mathbb {R}^{n\times n}\), \(C(q,\dot{q})\in \mathbb {R}^{n\times n}\) and \(F\in \mathbb {R}^{n\times n}\) are matrices of inertia, centripetal and Coriolis, and viscous friction torques, respectively. While \(J(q)\in \mathbb {R}^{m\times n}\) represents the analytical Jacobian matrix of the robot. Finally, \(g(q)\in \mathbb {R}^n\), \(\ \tau \in \mathbb {R}^n\) and \(f_{e}\in \mathbb {R}^m\) are vectors of gravitational, control and external interaction torques, respectively.

The following properties of the dynamic model (1) are useful for the further analysis (Kelly et al. 2006; Rodríguez-Liñán et al. 2017).

Property 1

H(q) and F are positive definite symmetric matrices, even F is diagonal.

Property 2

For robots with only revolute joints, g(q) is bounded on \(\mathbb {R}^n\) in such a way that \(\left| g_i(q)\right| \le B_{gi}\), \(\forall q\in \mathbb {R}^n\) and non-negative constants \(B_{gi}\), \(i=1,\ldots ,n\).

Property 3

The vector g(q) can be represented as \(g(q,\theta _g)=G(q)\theta _g\), where \(G(q)\in \mathbb {R}^{n\times p}\) is a regression matrix and \(\theta _g\in \mathbb {R}^p\) is a constant vector of parameters associated with gravity.

Property 4

For the gravity vector \(g(q,\theta _g)\), let \(\theta _{Ml}\) be an upper bound such that \(\left| \theta _{gl}\right| \le \theta _{Ml}\), \(\forall \ l\in \{1,\ldots ,p\}\), and let \(\theta _M\triangleq {(\theta _{M1}, \ldots ,\theta _{Mp}\ )}^T\) and \(\Theta \triangleq [-\theta _{M1},\theta _{M1}]\times \cdots \times [-\theta _{Mp},\theta _{Mp}]\). According to Properties 2 and 3, there are constants \(B_{gi}^{\theta _M}>0\) such that \(\left| g_i(y,w)\right| =\left| G_i(y)w\right| \le \ B_{gi}^{\theta _M}\), \(\forall \ y\in \mathbb {R}^n\) and \(\forall \ w\in \Theta \). In addition, there are non-negative constants such that \(\left| G_{il}(y)\right| \le B_{Gil}\), \(\Vert G_i(y)\Vert \le B_{Gi}\) and \(\Vert G(y)\Vert \le B_G\), \(\forall y\in \mathbb {R}^n\), \(\forall l\in \{1,\ldots ,p\}\), \(i=1,\ldots ,n\).

Property 5

For robots with only revolute joints, there are non-negative constants such that \(\left| J_{ij}^T(y)\right| \le B_{Jij}\), \(\Vert J_i^T(y)\Vert \le B_{Ji}\) and \(\Vert J^T(y)\Vert \le B_J\), \(\forall y\in \mathbb {R}^n\), \(i=1, \ldots , n\), \(j=1, \ldots , m\).

Assumption 1

For robots with bounded inputs, each element of vector \(\tau \) is bounded by \(T_i>0\), i.e., \(\left| \tau _i\right| \le T_i\), \(i=1, \ldots , n\). Assume that

$$\begin{aligned} \tau _i=T_i\mathrm{sat}\left( \frac{u_i}{T_i}\right) \end{aligned}$$
(2)

where \(\mathrm{sat}(\cdot )\) is the standard saturation function, i.e., \(\mathrm{sat}(\varsigma )=\mathrm{sign}(\varsigma ) \mathrm{min}\{|\varsigma |,1\}\) and \(u_i\) denotes the i-th control signal. In addition, assume that \(T_i>B_{gi}\), \(\forall i \in \{1,\ldots ,n\}\).

Using the forward kinematics, \(x=\mathcal {K}(q)\in \mathbb {R}^m\), the robot dynamics (1) can be rewritten in task space as

$$\begin{aligned} H_x\ddot{x}+C_x\dot{x}+F_x\dot{x}+g_x=f_x-f_{e} \end{aligned}$$
(3)

where \(\dot{x}=J(q)\dot{q}\in \mathbb {R}^m\) and \(\ddot{x}=\dot{J}(q,\dot{q})\dot{q}+J(q)\ddot{q}\in \mathbb {R}^m\) are the vectors of task-space velocity and acceleration, respectively. \(f_x \) is a vector of control forces such that \(\tau =J^T(q)f_x\). While \(H_x=[J^{-1}(q)]^TH(q)J^{-1}(q)\), \(C_x=\{[J^{-1}(q)]^TC(q,\dot{q})-H_x\dot{J}(q,\dot{q})\}J^{-1}(q)\), \(F_x=[J^{-1}(q)]^TFJ^{-1}(q)\) and \(g_x=[J^{-1}(q)]^Tg(q)\). This model is valid only if the robot is away from kinematic singularities and the right pseudo-inverse of J(q) can be considered when the robot is redundant (Canudas et al. 2012).

In order to model the forces of robot–environment interaction, the following assumption is considered:

Assumption 2

The external forces \(f_{e}\) can be represented as a generalized spring such that

$$\begin{aligned} f_{e}=K_{e}\left[ x-x_{e}\right] \end{aligned}$$
(4)

where \(K_{e}\in \mathbb {R}^{m\times m}\) is a positive definite diagonal stiffness matrix and \(x_{e}\in \mathbb {R}^m\) is the spring rest position.

The dynamic model (3) has the following properties (Chávez-Olivares et al. 2015; Vidrios-Serrano et al. 2021):

Property 6

For some constants \(\mu _M\ge \mu _m>0\), \(H_x\in \mathbb {R}^{m\times m}\) satisfies \(\mu _mI_m\le H_x\le \mu _MI_m\).

Property 7

For some constant \(k_{c}\ge 0\), \(C_x\in \mathbb {R}^{m\times m}\) satisfies \(\Vert C_x\dot{x}\Vert \le k_{c} \Vert \dot{x}\Vert ^2\), \(\forall \dot{x}\in \mathbb {R}^m\).

Property 8

For some constants \(f_M\ge f_m>0\), \(F_x\in \mathbb {R}^{m\times m}\) satisfies \(f_mI_m\le F_x\le f_MI_m\).

Property 9

The matrices \(C_x\) and \({\dot{H}}_x\triangleq \mathrm{d}H_x/\mathrm{d}t\) satisfy \({\dot{x}}^T\left[ {\dot{H}}_x-2C_x\right] \dot{x}=0\), \(\forall \dot{x}\in \mathbb {R}^m\), and actually \({\dot{H}}_x=C_x+C_x^T\).

Property 10

The dynamic equation (3) is linear with respect to its parameters, therefore, by considering Assumption 2 and Property 3, the gravitational and interaction forces can be rewritten as

$$\begin{aligned} g_x+f_{e}=Y_x\theta \end{aligned}$$
(5)

where \(Y_x\in \mathbb {R}^{m\times r}\) is a regression matrix and \(\theta \in \mathbb {R}^r\) is a constant vector of gravitational and stiffness parameters associated with the robot and the environment, respectively.

Assumption 3

Because \(\tau =J^T(q)f_x\) and according to Property 5 and Assumption 1, each element of \(f_x\) is bounded by \(\mathcal {F}_j>0\), i.e., \(\left| f_{xj}\right| \le \mathcal {F}_j\), \(j=1, \ldots , m\). Assume that

$$\begin{aligned} f_{xj}=\mathcal {F}_j\mathrm{sat}\left( \frac{u_{xj}}{\mathcal {F}_j}\right) \end{aligned}$$
(6)

Therefore, \(u=J^T(q)u_x\).

3 Adaptive force controller with active damping

In order to control the robot–environment interaction while respecting the saturation limits of the robotic system, the following adaptive structure is proposed:

$$\begin{aligned} u_x=-s_F(K_F\bar{f})-s_D(K_D\dot{x})+Y_x\hat{\theta } \end{aligned}$$
(7)

where \(\bar{f}=f_{e}-f_d\) with \(f_d\in \mathbb {R}^m\) being any constant desired interaction force; \(K_F=\mathrm{diag}[k_{F1},\ldots ,k_{Fm}]\) and \(K_D=\mathrm{diag}[k_{D1},\ldots ,k_{Dm}]\) are positive definite matrices of gain parameters; \(s_F(y)={(\sigma _{F1}(y_1),\ldots ,\sigma _{Fm}(y_m))}^T\) with \(\sigma _{Fj}(\cdot )\) being SI-GSFs bounded by \(M_{Fj}\); \(s_D(y)={(\sigma _{D1}(y_1),\ldots ,\sigma _{Dm}(y_m))}^T\) with \(\sigma _{Dj}(\cdot )\) being GSFs bounded by \(M_{Dj}\) and the active damping function \(s_D(\cdot )\) satisfying

$$\begin{aligned} s_D(K_D\dot{x})\le \kappa \Vert \dot{x}\Vert \end{aligned}$$
(8)

\(\forall \dot{x} \in \mathbb {R}^m\) with \(\kappa >0\); and \(\hat{\theta }\in \mathbb {R}^r\) is the estimated parameter vector obtained from the following auxiliary dynamics:

$$\begin{aligned} \dot{\phi }= & {} -\Gamma Y_x^T\left[ \dot{x}+\epsilon s_F(K_F\bar{f})\right] \end{aligned}$$
(9)
$$\begin{aligned} \hat{\theta }= & {} s_a(\phi ) \end{aligned}$$
(10)

where \(\Gamma \in \mathbb {R}^{r\times r}\) is a constant positive definite diagonal matrix, \(\epsilon >0\) is a constant, \(s_a(y)={(\sigma _{a1}(y_1),\ldots ,\sigma _{ar}(y_r))}^T\) with \(\sigma _{al}(\cdot )\) being SI-GSFs bounded by \(M_{al}\) such that

$$\begin{aligned} \left| \theta _l\right|< & {} M_{al} \end{aligned}$$
(11)
$$\begin{aligned} B_{gi}^{M_a}\triangleq & {} \sum _{l=1}^{p}{B_{Gil}M_{al}}<T_i \end{aligned}$$
(12)

3.1 Closed-loop analysis

Suppose that there exists a constant vector \(\phi ^*\) such that \(s_a(\phi ^*)=\theta \), or equivalently \(\phi _l^*=\sigma _{al}^{-1}(\theta _l)\), \(\forall l\in \{1,\ldots ,r\}\). Therefore, \(Y_xs_a(\phi ^*)=g_x+f_{e}\), then by combining the robot model (3), the environment model (4) and the control scheme (7)–(10), the closed-loop dynamics can be represented as

$$\begin{aligned} \dot{\bar{f}}= & {} K_{e} \dot{x} \end{aligned}$$
(13)
$$\begin{aligned} H_x\ddot{x}= & {} -s_F\left( K_F\bar{f}\right) -s_D\left( K_D\dot{x}\right) +Y_x{\bar{s}}_a\left( \bar{\phi }\right) -C_x\dot{x}-F_x\dot{x} \end{aligned}$$
(14)
$$\begin{aligned} \dot{\bar{\phi }}= & {} -\Gamma Y_x^T\left[ \dot{x}+\epsilon s_F(K_F\bar{f})\right] \end{aligned}$$
(15)

where \(\bar{\phi }=\phi -\phi ^*\) represents the vector of parameter estimation error and \({\bar{s}}_a\left( \bar{\phi }\right) =s_a(\phi )-s_a(\phi ^*)=s_a(\bar{\phi }+\phi ^*)-s_a(\phi ^*)\). Now, under stationary conditions \(\dot{\bar{f}}=\ddot{x}=\dot{x}=0_m\) and \(\dot{\bar{\phi }}=0_r\), we obtain that

$$\begin{aligned} -s_F\left( K_F\bar{f}\right) +Y_x{\bar{s}}_a\left( \bar{\phi }\right)= & {} 0_m \end{aligned}$$
(16)
$$\begin{aligned} Y_x^Ts_F(K_F\bar{f})= & {} 0_r \end{aligned}$$
(17)

Then, \(\bar{f}=\dot{x}=0_m\) is the unique equilibrium vector, while the parameter estimation error equilibrium vector \(\bar{\phi }_E\) turns out to be defined by the solutions of the equation \(Y_{xE}{\bar{s}}_a\left( \bar{\phi }_E\right) =0_m\) and consequently \({\bar{s}}_a\left( \bar{\phi }_E\right) \in \mathrm{ker}\{Y_{xE}\}\).

3.2 Lyapunov stability analysis

Proposition 1

Consider the closed-loop system (13)–(15) and Assumptions 1 and 3. Thus, for any positive definite diagonal matrices \(K_F\) and \(K_D\), and any \(\epsilon \) fulfilling the following inequality:

$$\begin{aligned} \epsilon < \epsilon _M\triangleq \min \left\{ \epsilon _1,\epsilon _2\right\} \end{aligned}$$
(18)

where

$$\begin{aligned} \epsilon _1\triangleq & {} \sqrt{\frac{\mu _m}{\mu _M^2\beta _F}} \end{aligned}$$
(19)
$$\begin{aligned} \epsilon _2\triangleq & {} \frac{4f_m}{4\beta _M+\left( f_M+\kappa \right) ^2} \end{aligned}$$
(20)

with

$$\begin{aligned} \beta _F\triangleq & {} \max _j{\{\sigma ^{\prime }_{FjM}k_{Fj}k_{ej}\}} \end{aligned}$$
(21)
$$\begin{aligned} \beta _M\triangleq & {} k_{c}\sqrt{\sum _{j=1}^{m}M_{Fj}^2}+\mu _M\beta _F \end{aligned}$$
(22)

where \(\sigma ^{\prime }_{FjM}\) are the positive bounds of \(D^+\sigma _{Fj}(\cdot )\) (see item 2 of Definition 1), \(\mu _m\), \(\mu _M\), \(k_{c}\), \(f_m\) and \(f_M\) as defined in Properties 6, 7 and 8, respectively, and \(\kappa \) as defined in (8); the asymptotic stability of the closed-loop equilibrium vector is guaranteed.

Proof

In order to analyze the stability (in the Lyapunov sense) of closed-loop equilibrium vector consider the following scalar candidate function:

$$\begin{aligned} V\left( \bar{f},\dot{x},\bar{\phi }\right)= & {} \frac{1}{2}{\dot{x}}^TH_x\dot{x}+\int _{0_m}^{\bar{f}}{s_F^T\left( K_Fz\right) K_{e}^{-1}\mathrm{d}z}+\epsilon {\dot{x}}^TH_xs_F\left( K_F\bar{f}\right) \nonumber \\&+\int _{0_r}^{\bar{\phi }}{{\bar{s}}_a^T\left( z\right) \Gamma ^{-1}\mathrm{d}z} \end{aligned}$$
(23)

Note that this function is positive definite and to prove it we can lower bound some terms, according to Property 6 and item 3 of Definition 1, so that

$$\begin{aligned} V\left( \bar{f},\dot{x},\bar{\phi }\right)\ge & {} \frac{\mu _m}{2}\Vert \dot{x}\Vert ^2 + \frac{\alpha }{2\beta _F}\Vert s_F(K_F\bar{f})\Vert ^2-\epsilon \mu _M \Vert s_F(K_F\bar{f})\Vert \Vert \dot{x}\Vert \nonumber \\&+(1-\alpha )\int _{0_m}^{\bar{f}}{s_F^T\left( K_Fz\right) K_{e}^{-1}\mathrm{d}z}+\int _{0_r}^{\bar{\phi }}{{\bar{s}}_a^T\left( z\right) \Gamma ^{-1}\mathrm{d}z} \end{aligned}$$
(24)

where \(0<\alpha <1\), then

$$\begin{aligned} V\left( \bar{f},\dot{x},\bar{\phi }\right) \ge W_1(\bar{f},\dot{x}) +(1-\alpha )\int _{0_m}^{\bar{f}}{s_F^T\left( K_Fz\right) K_{e}^{-1}\mathrm{d}z}+\int _{0_r}^{\bar{\phi }}{{\bar{s}}_a^T\left( z\right) \Gamma ^{-1}\mathrm{d}z} \end{aligned}$$
(25)

with

$$\begin{aligned} W_1\left( \bar{f},\dot{x}\right) =\frac{1}{2}\left[ \begin{array}{c} \Vert s_F(K_F\bar{f})\Vert \\ \Vert \dot{x}\Vert \end{array}\right] ^T\left[ \begin{array}{cc} \frac{\alpha }{\beta _F} &{} -\epsilon \mu _M\\ -\epsilon \mu _M &{} \mu _m \end{array}\right] \left[ \begin{array}{c} \Vert s_F(K_F\bar{f})\Vert \\ \Vert \dot{x}\Vert \end{array}\right] \end{aligned}$$
(26)

Therefore, by choosing

$$\begin{aligned} \frac{\epsilon ^2}{\epsilon _1^2}<\alpha <1 \end{aligned}$$
(27)

\(W_1\left( \bar{f},\dot{x}\right) \) is positive definite, according to inequality (18), and \(W_1\left( 0_m,\dot{x}\right) \rightarrow \infty \) as \(\Vert \dot{x}\Vert \rightarrow \infty \). Thus, from inequality (27) and items 4 and 5 of Definition 1, we can concluded that \(V\left( \bar{f},\dot{x},\bar{\phi }\right) \) is a radially unbounded positive definite function.

Now, the upper right-hand derivative of (23) along the trajectories of the closed-loop system (13)–(15) is

$$\begin{aligned} \dot{V}\left( \bar{f},\dot{x},\bar{\phi }\right)= & {} \frac{1}{2}{\dot{x}}^T{\dot{H}}_x\dot{x}+{\dot{x}}^TH_x\ddot{x}+s_F^T\left( K_F\bar{f}\right) K_{e}^{-1}\dot{\bar{f}}+\epsilon s_F^T\left( K_F\bar{f}\right) H_x\ddot{x} \nonumber \\&+\epsilon {\dot{x}}^T{\dot{H}}_xs_F\left( K_F\bar{f}\right) +\epsilon {\dot{x}}^TH_xs^{\prime }_F\left( K_F\bar{f}\right) K_F\dot{\bar{f}}+{\bar{s}}_a^T\left( \bar{\phi }\right) \Gamma ^{-1}\dot{\bar{\phi }} \nonumber \\= & {} -{\dot{x}}^Ts_D\left( K_D\dot{x}\right) -\epsilon s_F^T\left( K_F\bar{f}\right) s_F\left( K_F\bar{f}\right) -\epsilon s_F^T\left( K_F\bar{f}\right) s_D\left( K_D\dot{x}\right) \nonumber \\&-\epsilon s_F^T\left( K_F\bar{f}\right) F_x\dot{x}-\epsilon {\dot{x}}^TC_x s_F\left( K_F\bar{f}\right) +\epsilon {\dot{x}}^TH_xs^{\prime }_F\left( K_F\bar{f}\right) K_FK_{e}\dot{x} \nonumber \\&-{\dot{x}}^TF_x\dot{x} \end{aligned}$$
(28)

where Property 9 was used. Then, by employing Properties 68, this function can be upper bounded by

$$\begin{aligned} \dot{V}\left( \bar{f},\dot{x},\bar{\phi }\right) \le -{\dot{x}}^Ts_D\left( K_D\dot{x}\right) -W_2(\bar{f},\dot{x}) \end{aligned}$$
(29)

where

$$\begin{aligned} W_2(\bar{f},\dot{x})=\frac{1}{2}\left[ \begin{array}{c} \Vert s_F(K_F\bar{f})\Vert \\ \Vert \dot{x}\Vert \end{array}\right] ^T\left[ \begin{matrix}2\epsilon &{}&{}-\epsilon \left( f_M+\kappa \right) \\ epsilon\left( f_M+\kappa \right) &{} &{} 2\left( f_m-\epsilon \beta _M\right) \\ \end{matrix}\right] \left[ \begin{array}{c} \Vert s_F(K_F\bar{f})\Vert \\ \Vert \dot{x}\Vert \end{array}\right] \end{aligned}$$
(30)

Thus, by satisfying (18), \(W_2\left( \bar{f},\dot{x}\right) \) is a positive definite function and \(\dot{V}\left( \bar{f},\dot{x},\bar{\phi }\right) \le 0\) and according to LaSalle’s invariance principle (Khalil 2002), consider the following set

$$\begin{aligned} \Omega= & {} \left\{ \bar{f},\dot{x}\in \mathbb {R}^m,\ \bar{\phi }\in \mathbb {R}^r:\dot{V}\left( \bar{f},\dot{x},\bar{\phi }\right) =0\right\} \nonumber \\= & {} \left\{ \bar{f}=\dot{x}=0_m,\ \bar{\phi }\in \mathbb {R}^r\right\} \end{aligned}$$
(31)

Therefore, \(\bar{f}=\dot{x}=0_m\Rightarrow \dot{\bar{f}}=\ddot{x}=0_m\) and from the closed-loop dynamics (13)–(15), \(Y_{x}{\bar{s}}_a\left( {\bar{\phi }}\right) =0_m\). Therefore, the closed-loop equilibrium vector is asymptotically stable, which completes the proof.

3.3 Boundedness analysis

The adaptive force controller (7)–(10) ensures that the generated torques are inside the limits of robot actuators. First, in robot–environment interaction tasks, the environment deformation is bounded and there are positive constants \(B_{ej}\) such that \(\left| x_j-x_{ej}\right| \le B_{ej}\), \(j = 1,\ldots ,m\). Then, we are assuming that strictly increasing LGSFs can reproduce the force–deformation relationship before fracture and the following assumption turns out to be crucial.

Assumption 4

A bounded version of model (4) can be represented by

$$\begin{aligned} f_{e}=K_{e}s_{e}(x-x_{e}) \end{aligned}$$
(32)

where \(s_{e}(y)={(\sigma _{e1}(y_1),\ldots ,\sigma _{em}(y_m))}^T\) with \(\sigma _{ej}(\cdot )\) being strictly increasing LGSFs bounded by \(M_{ej}\). Thus, the vector of parameters \(\theta \) can be represented as

$$\begin{aligned} \theta =\left[ \begin{matrix}\theta _g\\ \theta _{e}\\ \end{matrix}\right] \end{aligned}$$
(33)

where \(\theta _{e}\in \mathbb {R}^m\) is a constant vector which depends on the environment stiffness, then \(r=p+m\) and

$$\begin{aligned} Y_x\theta =G_x\theta _g+F_{e}\theta _{e} \end{aligned}$$
(34)

where \(G_x=[J^{-1}(q)]^TG(q) \in \mathbb {R}^{m\times p}\) and \(F_{e}=\mathrm{diag}[\sigma _{e1}(x_1-x_{e1}),\ldots ,\sigma _{em}(x_m-x_{em})]\in \mathbb {R}^{m\times m}\) are regression matrices.

Now, by considering Assumption 4, the controller (7) can be rewritten as \(u_x=u_{FD}+G_x{\hat{\theta }}_g\) where

$$\begin{aligned} u_{FD}=-s_F(K_F\bar{f})-s_D(K_D\dot{x})+F_{e}{\hat{\theta }}_{e} \end{aligned}$$
(35)

Then, in order to avoid the actuator saturation, we have that

$$\begin{aligned} \left| u_i\right| =\left| J_i^T(q)u_x\right| =\left| J_i^T(q)u_{FD}+G_i(q){\hat{\theta }}_g\right| <T_i \end{aligned}$$
(36)

and according to Eqn. (10) and Property 4, there are non-negative constants \(B_{gi}^{M_a}\) such that

$$\begin{aligned} \left| G_i(q){\hat{\theta }}_g\right| \le B_{gi}^{M_a} \end{aligned}$$
(37)

\(i=1,\ldots ,n\); and now (36) can be rewritten as

$$\begin{aligned} \left| J_i^T(q)u_{FD}\right| \le \Vert J_i^T(q)\Vert \Vert u_{FD}\Vert <T_i-B_{gi}^{Ma} \end{aligned}$$
(38)

Therefore, from Property 5, the following sufficient condition to avoid actuator saturation can be set:

$$\begin{aligned} \sqrt{\sum _{j=1}^{m}\left[ M_{Fj}+M_{Dj}+M_{a\left( p+j\right) }M_{ej}\right] ^2}<\min _i{\left\{ \frac{T_i-B_{gi}^{M_a}}{B_{Ji}}\right\} }\triangleq u_M \end{aligned}$$
(39)

However, being (39) a condition only sufficient and not necessary, successful results avoiding saturation can be obtained with values of \(\left[ T_i-B_{gi}^{M_a}\right] /B_{Ji}\) greater than \(u_M\).

4 Simulation example

To illustrate the type of applications in which the proposed force control scheme can be used, this section presents a numerical simulation of an interaction task that was performed using the model of a robot manipulator of 3 degrees of freedom. The configuration of the robot is anthropomorphic and its nominal parameters were previously reported in Chávez-Olivares et al. (2012), then it is known that maximum joint torques are \(T_1=50\) Nm, \(T_2=150\) Nm and \(T_3=15\) Nm, respectively, the positive constants that satisfy Properties 5 to 8 are \(B_{J1}=0.93\), \(B_{J1}=0.9\), \(B_{J1}=0.45\), \(\mu _m=0.531\), \(\mu _M=3589\), \(k_{c}=39925\), \(f_m=0.722\) and \(f_M=3295\), respectively; while the parameters associated with gravity are \(\theta =[55.628,0.273,1.996,0.696]^T\) Nm.

The robot manipulator must interact at a point on a flat and rigid surface as shown in Fig. 1. In order to simplify the interaction task planning, it was represented with respect to the coordinated frame \((x_p,y_p,z_p)\) attached to the environment (surface) and which in industrial robotics is called user frame. The origin of user reference frame is located at (0.480, 0.378, -0.538) m and the surface is an inclined plane whose orientation is determined by a composition of successive rotations X-Z-X of 30, 90 and 20 degrees, respectively, and with a stiffness value normal to the plane of 2000 N/m, therefore, \(K_{e}= \mathrm{diag} \{684.04, 939.69, 1627.60\}\) N/m. Assume then that the position of the robot end effector with respect to the user frame is

$$\begin{aligned} \left[ \begin{matrix}x_{pe1}\\ x_{pe2}\\ x_{pe3}\\ 1\\ \end{matrix}\right] =H_{e}^{-1}\left[ \begin{matrix}x_1\\ x_2\\ x_3\\ 1\\ \end{matrix}\right] \end{aligned}$$
(40)

where \(H_{e}\) is the following homogeneous transformation matrix:

$$\begin{aligned} H_{e}=\left[ \begin{matrix}0 &{}\quad -0.940 &{}\quad 0.342 &{}\quad 0.480\\ 0.866 &{}\quad -0.171 &{}\quad -0.470 &{}\quad 0.378\\ 0.5 &{}\quad 0.296 &{}\quad 0.814 &{}\quad -0.538 \\ 0&{}\quad 0&{}\quad 0&{}\quad 1\\ \end{matrix}\right] \end{aligned}$$
(41)
Fig. 1
figure 1

Graphical representation of the interaction task, where \((x_p,y_p,z_p)\) represents the coordinate frame attached to the plane (user frame) and \((x_0,y_0,z_0)\) is the reference frame at the origin of the robot

At the beginning of the interaction with the environment, the robot has the following joint configuration \(q(0)= [-5, 100, -70]^T\) degrees or equivalently the end effector is located in \(x(0)= (0.307, 0.644, -0.312)\) m and it must apply a desired constant force \(f_d=[3.420, -4.698, 8.138]^T\) N (which is equivalent to a normal force of 10 N).

4.1 Configuration of the adaptive force controller

For the implementation of the controller (7)–(10), the following generalized saturation functions were used:

$$\begin{aligned} \sigma _h(\varsigma ;M)= & {} M \mathrm{sat}(\varsigma /M) \end{aligned}$$
(42)
$$\begin{aligned} \sigma _s(\varsigma ;L,M)= & {} \left\{ \begin{array}{ll} \varsigma , &{}\quad \forall |\varsigma | \le L\\ \rho _s(\varsigma ), &{}\quad \forall |\varsigma | > L \end{array} \right. \end{aligned}$$
(43)

where

$$\begin{aligned} \rho _s(\varsigma )=\mathrm{sign}(\varsigma )L+(M-L)\tanh \left( \frac{\varsigma -\mathrm{sign}(\varsigma )L}{M-L}\right) \end{aligned}$$
(44)

Then, the proportional action of force, the derivative action and the adaptive term were implemented with

$$\begin{aligned} \sigma _{Fj}(\varsigma )= & {} \sigma _s(\varsigma ;L_{Fj},M_{Fj}) \end{aligned}$$
(45)
$$\begin{aligned} \sigma _{Dj}(\varsigma )= & {} \sigma _h(\varsigma ;M_{Dj}) \end{aligned}$$
(46)
$$\begin{aligned} \sigma _{al}(\varsigma )= & {} \sigma _s(\varsigma ;L_{al},M_{al}) \end{aligned}$$
(47)

\(j=1,\ 2,\ 3\) and \(l= 1, 2, \ldots , 7\). Therefore, \({\sigma }'_{FjM}={\sigma }'_{DjM}={\sigma }'_{al}=1\) and \(\kappa =\max _j\{k_{Dj}\}\). While the regression matrix is given by

$$\begin{aligned} Y_x=\left[ \begin{matrix}G_{x11}&{}\quad G_{x12}&{}\quad G_{x13}&{}\quad G_{x14}&{}\quad F_{e11}&{}\quad 0&{}\quad 0\\ G_{x21}&{}\quad G_{x22}&{}\quad G_{x23}&{}\quad G_{x24}&{}\quad 0&{}\quad F_{e22}&{}\quad 0\\ G_{x31}&{}\quad G_{x32}&{}\quad G_{x33}&{}\quad G_{x34}&{}\quad 0&{}\quad 0&{}\quad F_{e33}\\ \end{matrix}\right] \end{aligned}$$
(48)

where

$$\begin{aligned} G_{x11}= & {} \delta _1\sin {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x12}= & {} \delta _1\cos {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x13}= & {} {-\delta }_1\sin {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x14}= & {} {-\delta }_1\sin {q_2}\cos {\left( q_2+q_3\right) } \\ G_{x21}= & {} \delta _2\sin {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x22}= & {} \delta _2\cos {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x23}= & {} {-\delta }_2\sin {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x24}= & {} {-\delta }_2\sin {q_2}\cos {\left( q_2+q_3\right) } \\ G_{x31}= & {} \delta _3\sin {q_2}\cos {\left( q_2+q_3\right) } \\ G_{x32}= & {} \delta _3\cos {q_2}\cos {\left( q_2+q_3\right) } \\ G_{x33}= & {} {-\delta }_3\cos {q_2}\sin {\left( q_2+q_3\right) } \\ G_{x34}= & {} {-\delta }_3\cos {q_2}\cos {\left( q_2+q_3\right) } \\ F_{e11}= & {} \left\{ \begin{array}{ll} 0, &{} \forall x_{pe3}\ge 0 \\ \sigma _{e1}\left( x_{pe3}\right) , &{} \forall x_{pe3}<0 \end{array} \right. \\ F_{e22}= & {} \left\{ \begin{array}{ll} 0, &{}\quad \forall x_{pe3}\ge 0 \\ -\sigma _{e2}\left( x_{pe3}\right) , &{}\quad \forall x_{pe3}<0 \end{array} \right. \\ F_{e33}= & {} \left\{ \begin{array}{ll} 0, &{}\quad \forall x_{pe3}\ge 0 \\ \sigma _{e3}\left( x_{pe3}\right) , &{} \quad \forall x_{pe3}<0 \end{array} \right. \end{aligned}$$

with

$$\begin{aligned} \delta _1= & {} \frac{1}{a\sin {q_3}}\left[ \frac{d\cos {q_1}}{a\left[ \sin {q_2}+\sin {\left( q_2+q_3\right) }\right] }-\sin {q_1}\right] \\ \delta _2= & {} \frac{1}{a\sin {q_3}}\left[ \frac{d\sin {q_1}}{a\left[ \sin {q_2}+\sin {\left( q_2+q_3\right) }\right] }+\cos {q_1}\right] \\ \delta _3= & {} -\frac{1}{a\sin {q_3}} \\ \sigma _{ej}(\varsigma )= & {} \sigma _s(\varsigma ;L_{ej},M_{ej}) \end{aligned}$$

\(j=1,2,3\); \(a=0.45\) m and \(d=0.25\) m.

4.2 Results

To properly perform the robot–environment interaction task described above, the parameters of controller (7)–(10) were selected according to the following procedure:

  1. 1.

    Set the parameters \(M_{al}\) and \(L_{al}\) satisfying inequality (11) and compute the constants \(B_{gi}^{M_a}\) using (12).

  2. 2.

    Set the parameters \(M_{ej}\) and \(L_{ej}\) according to the maximum deformation values expected during the interaction task.

  3. 3.

    Set the parameters \(M_{Dj}\), \(M_{Fj}\) and \(L_{Fj}\) trying to satisfy inequality (39), if possible, or increasing the value of \(u_M\) as far as the maximum torque values permit it.

  4. 4.

    Run simulations/experiments with low control gains (\(k_{Dj}\), \(k_{Fj}\), \(\gamma _l\)).

  5. 5.

    Increase the proportional gains, \(k_{Fj}\), to reduce the rise time (speed up the closed-loop response).

  6. 6.

    Increase the derivative gains, \(k_{Dj}\), to reduce inertial effects, such as the overshoot.

  7. 7.

    Increase the adaptive gains, \(\gamma _l\), to strengthen the elimination of force errors, by reducing stabilization times (speed up the parameter convergence).

  8. 8.

    Adjust \(\epsilon \) satisfying inequality (18), if possible, or increasing its value as far as the closed-loop stability permits it.

  9. 9.

    Repeat steps 5–8 until the best possible response is obtained.

Therefore, the selected parameters are presented in Table 1. To implement the adaptive term, we chose as initial condition \(\hat{\theta }(0)=[51,0.1,1.2,0.4,200,1500,2200]^T\). The simulation results are presented as follows: Fig. 2 shows the time evolution of force error, Fig. 3 depicts the applied control torques for all joints, while the evolution of the estimated parameters associated with gravity and stiffness are presented in Figs. 4 and 5, respectively.

Table 1 Tuning of controller parameters
Fig. 2
figure 2

Components of the force error

Fig. 3
figure 3

Components of the applied torque

It is worth mentioning that a very important feature of direct force control schemes is that they can regulate the contact force during robot–environment interaction tasks. As it can observed in Fig. 2, this is accomplished appropriately with the proposed force controller, since all the components of force error present convergence to zero. Moreover, the most important advantage of the proposed control scheme over the previously presented controllers is that our force regulator ensures, by its formulation, that the control torques remain bounded all the time. Figure 3 shows that the applied control torques exhibit a kind of micro oscillations in the transient response, while the components of the force error (see Fig. 2) do not present such oscillations. This is because the controller (7)–(10) is Cartesian while the robot is not, since the robot is anthropomorphic and has revolute joints, therefore, the nonlinear mapping of Jacobian matrix used to achieve the joint control generates this type of behavior. However, Fig. 3 shows that all the applied torques remain within the nominal operation range of robot actuators, that is, below of the torque limits defined above.

Finally, it is important to highlight an important property of our control scheme, the proposed force regulator can compensate for the parametric uncertainty of gravitational and contact forces, since it includes an adaptive term related to such physical models. Figures 4 and 5 show a comparison between the nominal values and the estimation of parameters associated with gravitational torques and environment stiffness. As it can observed, these parameters are properly estimated in less than 0.5 s.

Fig. 4
figure 4

Estimation of parameters associated with gravity

Fig. 5
figure 5

Estimation of parameters associated with stiffness

5 Conclusions

In the design of force controllers, greater efforts should be made to ensure safer interaction tasks and to take into account that the actuators of robotic systems are not unlimited sources of torque, that is, their torque and speed capabilities are bounded. With the adaptive force controller proposed in this paper, we can guarantee the generation of bounded control actions and have an unrestricted gain tuning process thanks to the use of generalized saturation functions. In addition, the proposed structure includes an adaptive term that compensates for the parametric uncertainty attributed to gravity and environment stiffness, while helping to improve the regulation of the contact force at a desired value. Furthermore, the proposed control law is supported by a rigorous stability analysis in the Lyapunov’s sense.

In particular, as far as we know, this is the first study to include saturation functions that allow not to restrict gain selection in an explicit force controller with bounded actions for interaction tasks. The numerical results obtained in the simulation are quite reliable as to supports this theoretical development. Finally, as future work, it is suggested the development of control schemes that operate in the joint space, to avoid the use of the robot’s Jacobian that limits the region of closed-loop stability.