Skip to main content

Advertisement

We’d like to understand how you use our websites in order to improve them. Register your interest.

Stiff and safe task-space position and attitude controller for robotic manipulators

Abstract

This paper proposes a stiff and safe task-space position and attitude control scheme for robotic manipulators. This study extends the work of Kikuuwe et al’s. (2006) velocity-bounding proxy-based sliding mode control by explicitly addressing the attitude part. The proposed controller has a Jacobian-based structure, which realizes smooth trajectories when the desired attitude is far rotated from the actual attitude. It also imposes arbitrary magnitude limits on the end-effector velocity, angular velocity, and each actuator force without sacrificing a stiffness, which is the same level as a high-gain PID position control below the limits. The benefit of the proposed controller becomes apparent after the robot yields to external forces due to force saturations, when the robot makes contact with obstacles. In such a situation, if the external forces disappear, the controller generates overdamped resuming motion from large tracking errors. The proposed controller can be expected to enhance the safety of robotic applications for the human–robot interaction. The proposed method is validated by experiments employing a six-degree of freedom industrial manipulator.

Introduction

When the robotic manipulators work in three dimensional task space, the robot’s trajectory is usually described by task-space coordinate vectors that contain a position vector and attitude of the robot end-effector. The control of the robot end-effector is usually performed by torque commands to each actuator. In order to determine the actuator torque command, one method is to use the inverse kinematics and the joint angle controllers and another one is to use the transpose Jacobian and the forward kinematics [1]. A weak point of the control schemes using the inverse kinematics is that it can produce excessive large torques in the the vicinity of singular configurations. In such situation, a control scheme based on the transpose Jacobian avoids the problem numerically [2].

Robotic manipulators are usually affected by nonlinear factors such as inertia and joint friction. To suppress such nonlinear factors, a stiff position controller is necessary for tracking accuracy. The proportional-derivative (PD) and proportional-integral-derivative (PID) position control are widely used for the robotic manipulator as a stiff position controller [3]. It can be extended to a Jacobian-based control scheme using the errors between the actual position/attitude and the desired position/attitude [4, 5], in which the proportional gain sets the robot stiffness.

While the position error between the desired position and actual position of robot end-effector is simply computed as a vector difference, the attitude error is not straightforward. Some previous researchers have studied the PD position controller combined with a Jacobian-based control scheme for tracking the desired position/attitude in three-dimensional task space. One example is Luh et al.’s [6] controller. Their control scheme can be seen as a PD-type controller combined with dynamics compensations, in which the attitude error is represented by a rotation matrix. Khatib et al.’s [7] used the attitude error in a PD-type controller based on three Euler angles. The controllers employing Euler angles are not free from the representational singularity [8]. Caccavale et al. [9] proposed a PD-type controller using the attitude error in terms of an unit quaternion, which has no representational singularities. This control framework has been also applied to force control schemes [10] as a low-level controller.

One drawback of the PD-type controllers is that it can cause undesirable trajectories when a desired attitude is far rotated from an actual attitude. It may lead to a trouble with the robot configuration. Moreover, the controller with high gains produces excessively high speed from the large position and attitude errors. Such behaviors usually result in large oscillations and overshoots, which are not suitable for the robot that performs tasks with humans in the same workspace.

For improving the safety of the stiff position controller, Kikuuwe and his colleagues proposed a proxy-based sliding mode control (PSMC) [11,12,13], which is an extension of PID position controller and also can be seen as an approximation of a sliding mode controller (SMC). The advantage of PSMC is that it produces overdamped motion from large position error after the actuator force saturation, but its tracking accuracy is the same level as a high-gain PID control as long as the actuator force is not saturated. It has been applied to many applications, such as rehabilitation robots [14,15,16], passive actuators [17], pneumatic actuators [18], motion platforms [19,20,21] and bilateral master-slave system [22]. After initial disclosure of PSMC, they proposed a velocity bounding PSMC (VB-PSMC) for complementing the original PSMC [23]. It imposes an arbitrary magnitude limit on velocity without sacrificing tracking accuracy below the limit. An extension of VB-PSMC into the three-dimensional task space has not been considered in the previous work where an attitude control is not trivial especially.

This paper proposes a stiff and safe task-space controller for robotic manipulators, which is an extension of VB-PSMC with addressing the attitude part using the unit quaternion. The proposed controller has a Jacobian-based structure, which does not produce excessively large speed in the vicinity of singular configurations. It imposes arbitrary magnitude limits on the end-effector velocity, angular velocity and each actuator force without sacrificing its stiffness, which is the same level as a high-gain PID position control below the limits. The additional benefit of the controller appears after the robot yields to external forces due to the actuator force saturation, when the robot makes contact with obstacles. In such situation, if the external forces disappear, the controller generates overdamped resuming motion from the large tracking errors. This behavior looks similar to the compliant behavior that is realized by an impedance control for the robotic manipulators [24,25,26], but its tracking accuracy is the same level as the high-gain PID position control during normal operation. The proposed controller can be expected to be useful in a robotic application, when the robot works in the workspace shared with the human.

The rest of this paper is organized as follows. “Background” section  prepares mathematical preliminaries and an overview about VB-PSMC. “Robot kinematics” section discusses robot kinematics and a Jacobian-based structure. “Task-space controller” section presents a new task-space controller and its implementation by implicit Euler discretization, which avoids chattering problem that is the inherent problem of SMC. “Experiment” section presents experimental results. “Conclusion” section provides the concluding remarks.

Background

Mathematical preliminaries

In this paper, \(\mathbb {{\varvec{R}}}\) denotes the set of all real numbers and \(\mathbb {D}_{n}\) denotes the set of all \(n\times n\) diagonal matrices of which diagonal elements are all strictly positive. Symbols in boldfaces denote a vector or a matrix and the symbol \({\varvec{o}}\) and \({\varvec{I}}\) denote the zero vector and identity matricx of appropriate dimensions, respectively.

Let us define scalar functions \(\mathrm {sgn}(\cdot )\) and \(\mathrm {sat}(\cdot )\) as follows:

$$\begin{aligned}& \mathrm {sgn}(z) \,\,{\mathop = \limits ^{\Delta }} \,\, \left\{ \begin{array}{ll} \ z/|z|, & \quad \text {if } \;z\ne 0\\ \ [-1,1], & \quad \text {if} \; z=0 \end{array} \right. \end{aligned}$$
(1a)
$$\begin{aligned}&\mathrm {sat}(z)\,\,{\mathop = \limits ^{\Delta }} \,\, \frac{z}{\max (1,|z|)}. \end{aligned}$$
(1b)

where \(z\in \mathbb {R}\). These functions are illustrated in Fig. 1 and they are related to each other as follows:

$$\begin{aligned} y\in \mathrm {sgn}(z-y)\Longleftrightarrow y=\mathrm {sat}(z)~~~~\forall y,z\in \mathbb {R}, \end{aligned}$$
(2)

which is proved by Kikuuwe et al.’s [12]. By using the functions \(\mathrm {sgn}(\cdot )\) and \(\mathrm {sgn}(\cdot )\), we define \(\,\mathrm {Sgn}(\cdot )\) and \(\,\mathrm {Sat}(\cdot )\), which are the element-wise vector versions of \(\mathrm {sgn}(\cdot )\) and \(\mathrm {sat}(\cdot )\) as follows:

$$\begin{aligned}&\,\mathrm {Sgn}({\varvec{z}}) \,\,{\mathop = \limits ^{\Delta }}[~\mathrm {sgn}(z_1)~\ldots ~\mathrm {sgn}(z_n)~]^{T} \in \mathbb {R}^{n} \end{aligned}$$
(3a)
$$\begin{aligned}&\,\mathrm {Sat}({\varvec{z}}) \,\,{\mathop = \limits ^{\Delta }}[~\mathrm {sat}(z_1)~\ldots ~\mathrm {sat}(z_n)~]^{T} \in \mathbb {R}^{n} \end{aligned}$$
(3b)

where \({\varvec{z}} = [z_1, z_2,\ldots ,z_n]^{T}\in \mathbb {R}^{n}\). Because the function \(\mathrm {sgn}(\cdot )\) is a set-valued function, the function \(\,\mathrm {Sgn}(\cdot )\) is a set-valued vector function. Based on the relation (2), \(\,\mathrm {Sgn}(\cdot )\) and \(\,\mathrm {Sat}(\cdot )\) also have a relationship as follows:

$$\begin{aligned} {\varvec{y}}\in \,\mathrm {Sgn}({\varvec{z}}-{\varvec{y}})\Longleftrightarrow {\varvec{y}}=\,\mathrm {Sat}({\varvec{z}})~~~~\forall {\varvec{y}},{\varvec{z}}\in \mathbb {R}^{n}, \end{aligned}$$
(4)

which can be used in the following relation:

$$\begin{aligned} {\varvec{y}}\in \,\, & {} {\varvec{Z}}\,\mathrm {Sgn}\left( {\varvec{Y}}({\varvec{z}}-{\varvec{y}})\right) \Longleftrightarrow {\varvec{y}}={\varvec{Z}}\,\mathrm {Sat}\left( {\varvec{Z}}^{-1}{\varvec{z}}\right) \end{aligned}$$
(5)

where \(\{{\varvec{Y}}, {\varvec{Z}}\}\in \mathbb {D}_{n}\) and \(\{{\varvec{y}},{\varvec{z}}\}\in \mathbb {R}^{n}\). Since \(\,\mathrm {Sgn}({\varvec{Yz}})\) is equivalent to \(\,\mathrm {Sgn}({\varvec{z}})\), this relation holds true. It will be used in the derivation in “Task-space controller” section.

Fig. 1
figure1

Functions defined in (1)

Velocity bounding proxy-based sliding mode control

The concept of VB-PSMC was developed from PSMC, Both PSMC and VB-PSMC can be explained by an imaginary dynamical system that includes a massless virtual object (proxy) illustrated in Fig. 2. In this system, the proxy is connected to a controlled object through a PID-type virtual coupling (PID controller) and the other side is connected to the given desired position through a sliding mode-like set-valued controller. Based on the imaginary dynamical system in Fig. 2, the control algorithm of VB-PSMC can be derived from the analytical solution of a differential algebraic inclusion.

Let \(p_s\in \mathbb {R}\) and \(p_d\in \mathbb {R}\) denote the actual position and the desired position of the controlled object, respectively. \(p_x\in \mathbb {R}\) denotes the proxy’s position. Then, the PID-type virtual coupling produces the force \(f_{\mathrm {PID}}\in \mathbb {R}\), which can be determined as follows:

$$\begin{aligned} f_{\mathrm {PID}} = La+K\dot{a}+B\ddot{a} \end{aligned}$$
(6)

where

$$\begin{aligned} a \,\, {\mathop = \limits ^{\Delta }}\int (p_x-p_s)\mathrm {d}t \end{aligned}$$
(7)

and L, K, and B are positive real numbers, which represent the integral, proportional, and derivative gains, respectively. These parameters should be chosen so that \(p_s\) is controlled to follow \(p_x\). On the other side of the proxy, there is a difference between PSMC and VB-PSMC. The original PSMC involves a force \(f_{\mathrm {SMC}}\in \mathbb {R}\) produced by a sliding mode-like set-valued controller, which is a slmple version of sliding mode controller (SMC) presented in Slotine et al.’s work  [27]. The force \(f_{\mathrm {SMC}}\in \mathbb {R}\) can be determined as follows:

$$\begin{aligned} \sigma _x = p_d-p_x+H(\dot{p_d}-\dot{p}_x) \end{aligned}$$
(8a)
$$\begin{aligned} f_{\mathrm {SMC}} \in F\mathrm {sgn}(\sigma _x) \end{aligned}$$
(8b)

where F and H are positive real numbers for control parameters. The set \(\sigma _x = 0\) is a sliding manifold in the proxy’s state space \(\{p_x, \dot{p}_x\}\) and the control law (8) attracts the proxy’s states toward the sliding manifold.

Fig. 2
figure2

Physical interpretation of PSMC and VB-PSMC

One potential risk of the control law (8) in the PSMC is that it can produce large velocity before the proxy’s states reach to the sliding manifold. In order to complement the drawback, VB-PSMC involves the following controller:

$$\begin{aligned} \sigma _x=\, & {} p_d-p_x+H(\dot{p_d}-\dot{p}_x) \end{aligned}$$
(9a)
$$\begin{aligned} s_x=\, & {} V{\mathrm {sat}}((A\sigma +\dot{p}_x)/V)-\dot{p}_x \end{aligned}$$
(9b)
$$\begin{aligned} f_{\mathrm {SMC}}\in F\mathrm {sgn}(s_x) \end{aligned}$$
(9c)

where V and A are positive real numbers. The control law (9) can be seen as a set-point controller that employs a sliding manifold as \(s_x = 0\). It implies that \(\dot{p}_x\) is equal to or smaller than the parameter V because the right-hand side of (9b, c) is always smaller than V. Therefore, a magnitude of \(\dot{p}_x\) is bounded in the parameter V as long as \(s_x\) stays on the sliding manifold. As a result, when the set-point controller satisfies \(|\dot{p}_x|\le V\), it is equivalent to SMC.

The imaginary dynamical system shown in Fig. 2 satisfies \(m\ddot{p}_x = f_{\mathrm {SMC}}-f_{\mathrm {PID}}\)where m is the mass of the proxy. By setting \(m=0\), (6) and (9) can be written in the following equation:

$$\begin{aligned} \sigma _x= p_d-p_s+H(\dot{p}_d-\dot{p}_s)-\dot{a}-H\ddot{a} \end{aligned}$$
(10a)
$$\begin{aligned} s_x= V{\mathrm {sat}}((A\sigma _x+\dot{p}_s+\ddot{a})/V)-\dot{p}_s-\ddot{a}\end{aligned}$$
(10b)
$$\begin{aligned} 0\in La+K\dot{a}+B\ddot{a}+F\mathrm {sgn}(s_x)\end{aligned}$$
(10c)
$$\begin{aligned} f= La+K\dot{a}+B\ddot{a}, \end{aligned}$$
(10d)

which is a continuous-time representation of the one-dimensional VB-PSMC. As has been detailed in Kikuuwe et al.’s work [23], taking the implicit Euler discretization of the continuous-time expression (10) and the application of (5) result in the following discrete-time representation:

$$\begin{aligned} u^*(k)=\, & {} \frac{p_d(k)-p_s(k)+H(\triangledown p_d(k)-\triangledown p_s(k))/T}{T+H} \nonumber \\&-\frac{\triangledown {a}(k-1)/T}{T+H}+\frac{\triangledown {p_s(k)}}{T} \end{aligned}$$
(11a)
$$\begin{aligned} u(k)=\, & {} V\mathrm {sat}\bigg (\frac{u^*(k)}{V}\bigg ) -\frac{\triangledown {p_s(k)}}{T} \end{aligned}$$
(11b)
$$\begin{aligned} f^*(k)=\, & {} L{a}(k-1)+(L T+K)\triangledown {a}(k-1)/T\nonumber \\&+(L T^2+K T+B)u(k)\end{aligned}$$
(11c)
$$\begin{aligned} f(k)=\, & {} F\mathrm {sat}\bigg ( \frac{f^*(k)}{F} \bigg ) \end{aligned}$$
(11d)
$$\begin{aligned} a(k)=\, & {} \frac{(2B+KT)a(k-1)-Ba(k-2)+T^2f(k)}{LT^2+KT+B} \end{aligned}$$
(11e)

where k is the integer representing a discrete-time index, T is the timestep size and \(\triangledown\) denotes the backward-difference operator, which is defined as \(\triangledown z(k) = z(k)-z(k-1)\) and \(\triangledown ^2 z(k) = z(k)-2z(k-1)+z(k-2)\).

Robot kinematics

This section presents a task-space coordinate using an unit quaternion and a Jacobian-based structure based on a transpose Jacobian matrix. The structure will be combined with a proposed controller to produce smooth trajectories when the desired attitdue is far rotated from the actual atttidue.

Task-space coordinate

The kinematics of robotic manipulators is the relation among joint variables \({\varvec{q}}_s\in \mathbb {R}^6\), a position vector \({\varvec{p}}_s = [p_x, p_y, p_z]^{T}\in \mathbb {R}^3\) and attitude. While the end-effector position is easily obtained by the position vector, several representations exist to represent the attituade.

Let us consider an unit quaternion, which is composed of four elements for describing the attitude without a representational singularity resulted in an Euler angle representation. The unit quaternion representation of the attitude can be expressed as follows:

$$\begin{aligned} {\varvec{\alpha }}_s = [\eta _s,~ \tilde{{\varvec{\alpha }}}_s^T]^T \end{aligned}$$
(12a)
$$\begin{aligned} = \Big [\cos \Big (\frac{\theta _s}{2}\Big ),~\sin \Big (\frac{\theta _s}{2}\Big ){\varvec{\mu }}_s^T\Big ]^T \end{aligned}$$
(12b)

where \(\eta _s\in \mathbb {R}\) denotes the scalar part, \(\tilde{{\varvec{\alpha }}}_s = [\alpha _x, \alpha _y, \alpha _z]^{T}\)\(\in \mathbb {R}^3\) denotes the vector part, in which \(\theta _s\) is a rotation angle around the unit vector of axis \({\varvec{\mu }}_s\in \mathbb {R}^3\). Note that the scalar part and vector part are constrained by the following equation:

$$\begin{aligned} \eta _s^2 + \tilde{{\varvec{\alpha }}}^T_s\tilde{{\varvec{\alpha }}}_s=1, \end{aligned}$$
(13)

which implies that both \([\eta _s,~\tilde{{\varvec{\alpha }}}_s^T]^T\) and \([-\eta _s,-\tilde{{\varvec{\alpha }}}_s^T]^T\) describe the same attitude. If the rotation angle is set to the range \(\{-180^{\circ }\le \theta _s\le 180^{\circ }\}\), then the scalar part is always positive and its representation of the attitude is unique. Based on the unit quaternion, the task-space coordinate can be expressed as the actual vector \({\varvec{P}}_s=[{\varvec{p}}_s^T,~\tilde{{\varvec{\alpha }}}_s^T]^T\in \mathbb {R}^6\) and the desired vector \({\varvec{P}}_d=[{\varvec{p}}_d^T,~\tilde{{\varvec{\alpha }}}_d^T]^T\in \mathbb {R}^6\)where \({\varvec{p}}_d\in \mathbb {R}^3\) denotes the desired position vector and \(\tilde{{\varvec{\alpha }}}_d\in \mathbb {R}^3\) denotes the vector part of the unit quaternion representing the desried attitude \({\varvec{\alpha }}_d=[\eta _d,~ \tilde{{\varvec{\alpha }}}_d^T]^T\in \mathbb {R}^4\).

While the end-effector position error is simply computed as the vector difference \({\varvec{p}}_e={\varvec{p}}_s-{\varvec{p}}_d\), the attitude error is not straightforward. The unit quaternion representation of the attitude error can be expressed as follows:

$$\begin{aligned} {\varvec{\alpha }}_e = {\varvec{\alpha }}_s\circ \overline{{\varvec{\alpha }}}_d \end{aligned}$$
(14)

where the symbol \(\circ\) denotes the quaternion product and \(\overline{{\varvec{\alpha }}}_d\) is the conjugate of the quaternion representing the desired attitude. It can be written as follows:

$$\begin{aligned} {\varvec{\alpha }}_e& = [\eta _e, \tilde{{\varvec{\alpha }}}_e^T]^T \end{aligned}$$
(15a)
$$\begin{aligned} &= \Big [\cos \Big (\frac{\theta _e}{2}\Big ),~\sin \Big (\frac{\theta _e}{2}\Big ){\varvec{\mu }}_e^T\Big ]^T \end{aligned}$$
(15b)

where \(\theta _e\) denotes the rotation angle between the desired attitude and actual attitude and \({\varvec{\mu }}_e\in \mathbb {R}^3\) denotes the unit vector of axis for \(\theta _e\). If \(\tilde{{\varvec{\alpha }}}_e\) goes to zero, the quatanion (15) goes closer to the identity quaternion \([1,0,0,0]^T\). Thus, the position and attitude errors are represented by the following vector:

$$\begin{aligned} {\varvec{P}}_e &= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s) \end{aligned}$$
(16a)
$$\begin{aligned} &= [{\varvec{p}}_e^T,~\tilde{{\varvec{\alpha }}}_e^T]^T, \end{aligned}$$
(16b)

which is referred to as an error vector \({\varvec{P}}_e\in \mathbb {R}^6\)where \(\tilde{{\varvec{\alpha }}}_e\in \mathbb {R}^3\) denotes the attitude error, \({\varvec{\Psi }}(\cdot )\) denotes the kinematics function for formulating the error vector with respect to the desired vector \({\varvec{P}}_d\) and the joint variables \({\varvec{q}}_s\).

Jacobian-based structure

By using the kinematics function \({\varvec{\Psi }}(\cdot )\), the relation between the error vector \({\varvec{P}}_e\) and joint variables can be written as follows:

$$\begin{aligned} \dot{{{\varvec{P}}}}_e= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s)\dot{{\varvec{q}}}_s \end{aligned}$$
(17)

where \({\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s)\in \mathbb {R}^{6\times 6}\) denotes the Jacobian matrix defined as follows:

$$\begin{aligned} {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s)= \frac{\partial ~{\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s)}{\partial {\varvec{q}}_s}. \end{aligned}$$
(18)

In the use of the relation (17), the force relationship between task-space and joint space can be written in the following equation:

$$\begin{aligned} \delta W &= (\delta {\varvec{q}}_s)^{T}{\varvec{\tau }}_c-(\delta {\varvec{P}}_e)^{T}{\varvec{f}}_c \end{aligned}$$
(19a)
$$\begin{aligned} &= 0 \end{aligned}$$
(19b)

where \(\delta W\) denotes the virtual work and \({\varvec{f}}_c\in \mathbb {R}^{6}\) denotes a force vector and \({\varvec{\tau }}_c\in \mathbb {R}^{6}\) denotes actuator force. The force vector and the actuator forces should be statically equated with each other.

Based on the relationship (19), a Jacobian-based structure can be written as follows:

$$\begin{aligned} {\varvec{\tau }}_c = {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s)^T {\varvec{f}}_c \end{aligned}$$
(20)

where \({\varvec{f}}_c\) is determined by the proposed controller using the error vector \({\varvec{P}}_e\) as the input of the controller, which will be discussed in “Task-space controller” section specifically.

Task-space controller

This paper considers a torque-commanded manipulator having six-degrees-of-freedom, which can be described in the following form:

$$\begin{aligned} {\varvec{M}}({\varvec{q}}_s)\ddot{{\varvec{q}}}_s = {\varvec{\tau }}_c+{\varvec{\tau }}_g+{\varvec{h}}+{\varvec{d}} \end{aligned}$$
(21)

where \({\varvec{M}}({\varvec{q}}_s)\in \mathbb {R}^{6\times 6}\) denotes a symmetric positive-definite matrix that represents the inertia, \({\varvec{\tau }}_g\in \mathbb {R}^{6}\) denotes gravity compensation torques, \({\varvec{\tau }}_c\in \mathbb {R}^{6}\) represents actuator force generated from the output of the controller, \({\varvec{h}}\in \mathbb {R}^6\) denotes forces applied to the object from external forces and \({\varvec{d}}\in \mathbb {R}^6\) denotes the sum of forces resulted from all unmodeled factors. In order to suppress the influence of \({\varvec{h}}\) and \({\varvec{d}}\), the high-gain PID position/attitude controller is necessary mentioned in “Introduction” section.

In the use of the torque-commanded manipulator, one problem of the high-gain PID position/attitude controller is that it produces excessively high speed and overshoot when the desired position/attitude are far separated from the actual position/attitude. The cascade control scheme is widely used in the industrial robot [28, 29]. Simple torque and velocity limiters in the cascade control scheme does not provide direct solutions of the problem. This is because the cascade controller is joint based controller, of which the magnitude limits on the velocity/angular velocity cannot be achieved in task space directly. In addition, it does not guarantee overdamped and smooth motion below the limits.

Another imaginable solution to produce a damped response is to use a very high velocity feedback gain. It can magnify the noise in the velocity measurements and the magnified noise will deteriorate the tracking accuracy of the controller during normal operation.

Extension of VB-PSMC

For this reason, let us consider an extension of VB-PSMC into the three-dimensional task space. We consider the following controller as a direct extension of (10):

$$\begin{aligned} {\varvec{P}}_e= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s) \end{aligned}$$
(22a)
$$\begin{aligned} {\varvec{\sigma }}_c= -{\varvec{P}}_e-H\dot{{{\varvec{P}}}}_e-\dot{{\varvec{a}}}-H\ddot{{\varvec{a}}} \end{aligned}$$
(22b)
$$\begin{aligned} {\varvec{s}}_c= {\varvec{V}}\,{\mathrm {Sat}}({\varvec{V}}^{-1}(A{\varvec{\sigma }}_c+\dot{{{\varvec{P}}}}_e+\ddot{{\varvec{a}}}))-\dot{{{\varvec{P}}}}_e-\ddot{{\varvec{a}}}~~~~ \end{aligned}$$
(22c)
$$\begin{aligned} {\varvec{o}}\in {\varvec{La}}+{\varvec{K}}\dot{{\varvec{a}}}+{\varvec{B}}\ddot{{\varvec{a}}}-{\varvec{F}}\,\mathrm {Sgn}({\varvec{s}}_c)\end{aligned}$$
(22d)
$$\begin{aligned} {\varvec{f}}_c= {\varvec{La}}+{\varvec{K}}\dot{{\varvec{a}}}+{\varvec{B}}\ddot{{\varvec{a}}} \end{aligned}$$
(22e)

where

$$\begin{aligned} {\varvec{a}} \;\;{\mathop = \limits ^{\Delta }}\int ({\varvec{P}}_x-{\varvec{P}}_e)\mathrm {d}t, \end{aligned}$$
(23)

\({\varvec{P}}_x\in {\mathbb {R}^{6}}\) denotes a proxy’s vector, \(\{{\varvec{K}}, {\varvec{L}}, {\varvec{B}}\}\in \mathbb {D}_{6}\) denote control gain matrices, \(\{{\varvec{V}}, {\varvec{F}}\}\in {\mathbb {D}_{6}}\), and A and H are positive real numbers, respectively.

This is the continuous-time representation of an extension of VB-PSMC into the three-dimensional task space, in which \({\varvec{f}}_c\) is a force vector that should be statically equivalent to actuator forces. Note that (22) is an algebraic inclusion including discontinuity, which should be solved in the implementation.

Discrete-time implementation

For the implementation of the proposed algorithm, the continuous-time representation (22) must be approximated by a discrete-time representation with preserving its feature. Based on the implicit Euler discretization, the discrete-time representation of (22) can be rewritten as follows:

$$\begin{aligned} {\varvec{P}}_e(k)= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s(k)) \end{aligned}$$
(24a)
$$\begin{aligned} {\varvec{\sigma }}_c(k) & = -{\varvec{P}}_e(k)-\frac{H\triangledown {\varvec{P}}_e(k)}{T}-\frac{\triangledown {\varvec{a}}(k)}{T} \nonumber \\ & \quad -\frac{H\triangledown ^2{\varvec{a}}(k)}{T^2} \end{aligned}$$
(24b)
$$\begin{aligned} {\varvec{s}}_c(k)&= {\varvec{V}}\,\mathrm {Sat}\bigg ({\varvec{V}}^{-1}\bigg (A{\varvec{\sigma }}_c(k) +\frac{\triangledown {\varvec{P}}_e(k)}{T}+\frac{\triangledown ^2{\varvec{a}}(k)}{T^2}\bigg )\bigg ) \nonumber \\&\quad-\frac{\triangledown {\varvec{P}}_e(k)}{T}-\frac{\triangledown ^2{\varvec{a}}(k)}{T^2} \end{aligned}$$
(24c)
$$\begin{aligned} & {\varvec{o}}\in \; {\varvec{L}}{\varvec{a}}(k)+\frac{{\varvec{K}}\triangledown {\varvec{a}}(k)}{T}+\frac{{\varvec{B}}\triangledown ^2{\varvec{a}}(k)}{T^2} \nonumber \\ & \quad -{\varvec{F}}\,\mathrm {Sgn}({\varvec{s}}_c(k)) \end{aligned}$$
(24d)
$$\begin{aligned} {\varvec{f}}_c(k)= {\varvec{L}}{\varvec{a}}(k)+\frac{{\varvec{K}}\triangledown {\varvec{a}}(k)}{T}+\frac{{\varvec{B}}\triangledown ^2{\varvec{a}}(k)}{T^2} \end{aligned}$$
(24e)

Here, one can see that \({\varvec{a}}(k)\) in (24b) and (24c) are an unknown vector. By setting the parameter \(A=1/(T+H)\), (24c) is written as follows:

$$\begin{aligned} {\varvec{u}}^*(k)= \frac{-{\varvec{P}}_e(k)-H\triangledown {\varvec{P}}_e(k)-\triangledown {\varvec{a}}(k-1)/T}{T+H}~~~ \end{aligned}$$
(25a)
$$\begin{aligned} {\varvec{u}}(k) & = {\varvec{V}}\,\mathrm {Sat}\bigg ({\varvec{V}}^{-1}\bigg ({\varvec{u}}^*(k)+\frac{\triangledown {\varvec{P}}_e(k)}{T}\bigg )\bigg ) \nonumber \\ & \quad -\frac{\triangledown {\varvec{P}}_e(k)}{T} \end{aligned}$$
(25b)
$$\begin{aligned} {\varvec{s}}_c(k)= {\varvec{u}}(k)-\frac{\triangledown ^2{\varvec{a}}(k)}{T^2}. \end{aligned}$$
(25c)

Note that (24d) is an algebraic inclusion with respect to the unknown \({\varvec{a}}(k)\). In order to solve the algebraic inclusion, we now express (24e) as follows:

$$\begin{aligned} \triangledown {\varvec{a}}(k)&= ({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}})^{-1}(({\varvec{B}}\triangledown {\varvec{a}}(k-1))\nonumber \\&\quad-{\varvec{L}}T^2{\varvec{a}}(k-1)+T^2{\varvec{f}}_c(k)) \end{aligned}$$
(26a)
$$\begin{aligned} {\varvec{a}}(k)&= ({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}})^{-1}((2{\varvec{B}}+{\varvec{K}}T){\varvec{a}}(k-1) \nonumber \\&\quad-{\varvec{B}}{\varvec{a}}(k-2)+T^2{\varvec{f}}_c(k)) . \end{aligned}$$
(26b)

Substituting (26b) into (24d) yields:

$$\begin{aligned} {\varvec{o}}\in {\varvec{f}}_c(k)\nonumber \\&-{\varvec{F}}\,\mathrm {Sgn}\bigg ({\varvec{u}}(k)-\frac{\triangledown {\varvec{a}}(k)-\triangledown {\varvec{a}}(k-1)}{T^2}\bigg ), \end{aligned}$$
(27)

and substituting (26a) into (27) obtains as follows:

$$\begin{aligned} {\varvec{f}}_c(k)\in \; {\varvec{F}}\,\mathrm {Sgn}(({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}})^{-1} \nonumber \\&({\varvec{f}}^*_\alpha (k)-{\varvec{f}}_c(k))) \end{aligned}$$
(28)

where

$$\begin{aligned} {\varvec{f}}^*_\alpha (k)&= {\varvec{L}}{\varvec{a}}(k-1)+({\varvec{L}}T+{\varvec{K}})\triangledown {\varvec{a}}(k-1)/T \nonumber \\&\quad+({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}}){\varvec{u}}(k). \end{aligned}$$
(29)

Based on (5), (28) can be expressed as follows:

$$\begin{aligned} {\varvec{f}}_c(k) = {\varvec{F}}\,\mathrm {Sat}({\varvec{F}}^{-1}{\varvec{f}}^*_\alpha (k)), \end{aligned}$$
(30)

of which the discontinuities are eliminated by using the application of (5) and \({\varvec{f}}_c(k)\) is a force vector that should be applied to the robot end-effector.

Force limiter

For situations where actuator forces should be limited before the force vector is saturated in \({\varvec{F}}\), \({\varvec{f}}^*_\alpha (k)\) is used as a force vector, which can be bounded by using a transposed Jacobian matrix (18) as follows:

$$\begin{aligned} {\varvec{\tau }}_c^*(k)= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s(k))^T {\varvec{f}}^*_\alpha (k) \end{aligned}$$
(31a)
$$\begin{aligned} \zeta (k)= \xi ({\varvec{C}},{\varvec{\tau }}^*_c(k)) \end{aligned}$$
(31b)
$$\begin{aligned} {\varvec{\tau }}_c(k)= \zeta (k) {\varvec{\tau }}_c^*(k)\end{aligned}$$
(31c)
$$\begin{aligned} {\varvec{f}}_\alpha (k)= \zeta (k) {\varvec{f}}^*_\alpha (k), \end{aligned}$$
(31d)

where \(\zeta (k)\in \mathbb {R}\) denotes a scaling factor and

$$\begin{aligned}&\xi ({\varvec{C}},{\varvec{\tau }}^*_c(k)) \nonumber \\&\quad = \min \biggr (1,\frac{C_1}{|\tau ^*_{c1}(k)|}, \frac{C_2}{|\tau ^*_{c2}(k)|}, \ldots , \frac{C_n}{|\tau ^*_{cn}(k)|}\biggr ), \end{aligned}$$
(32)

in which \({\varvec{C}}\in \mathbb {D}_{6}\) denotes a matrix for the magnitude limits on actuator forces, \(C_n\) and \(\tau ^*_{cn}(k)~(n \in \{1,2, \ldots ,6\})\) denote the n-th diagonal elements of \({\varvec{C}}\) and n-th elements of \({\varvec{\tau }}^*_{c}(k)\), respectively. It realizes the statical equivalence of the pairs \(\{{\varvec{\tau }}^*_c(k), {\varvec{f}}^*_\alpha (k)\}\) and \(\{{\varvec{\tau }}_c(k), {\varvec{f}}_{\alpha }(k)\}\). By using the scaling factor, the force vector \({\varvec{f}}_c(k)\) can be written as follows:

$$\begin{aligned} {\varvec{f}}_c(k) = {\varvec{F}}\,\mathrm {Sat}({\varvec{F}}^{-1}{\varvec{f}}_\alpha (k)), \end{aligned}$$
(33)

which is saturated when \({\varvec{\tau }}_c(k)\) is saturated in \({\varvec{C}}\). It results that the magnitue of \({\varvec{f}}^*_\alpha (k)\) is decreased by reducing the magnitue of \({\varvec{a}}(k)\) according to (26b). This is especially useful to improve safety when the robot yields to external forces by the actuator force saturations. In addition, \({\varvec{f}}_c(k)\) is also limited by \({\varvec{F}}\) itself when actuator forces are not saturated in \({\varvec{C}}\) from the large tracking errors.

Discrete-time control algorithm

In conclusion, based on (24a), (25a), (25b), (26b), (29), (31) and (33), the numerical solution of (24) is obtained as follows:

$$\begin{aligned} {\varvec{P}}_e(k)= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s(k)) \end{aligned}$$
(34a)
$$\begin{aligned} {\varvec{u}}^*(k)= \frac{-{\varvec{P}}_e(k)-H\triangledown {\varvec{P}}_e(k)-\triangledown {\varvec{a}}(k-1)/T}{T+H}\end{aligned}$$
(34b)
$$\begin{aligned} {\varvec{u}}(k) & = {\varvec{V}}\,\mathrm {Sat}\bigg ({\varvec{V}}^{-1}\bigg ({\varvec{u}}^*(k)+\frac{\triangledown {\varvec{P}}_e(k)}{T}\bigg )\bigg ) \nonumber \\&-\frac{\triangledown {\varvec{P}}_e(k)}{T}~~~~~ \end{aligned}$$
(34c)
$$\begin{aligned} {\varvec{f}}^*_\alpha (k) & = {\varvec{L}}{\varvec{a}}(k-1)+({\varvec{L}}T+{\varvec{K}})\triangledown {\varvec{a}}(k-1)/T \nonumber \\ & \quad +({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}}){\varvec{u}}(k) \end{aligned}$$
(34d)
$$\begin{aligned} {\varvec{\tau }}_c^*(k)= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s(k))^T {\varvec{f}}^*_\alpha (k) \end{aligned}$$
(34e)
$$\begin{aligned} \zeta (k)= \xi ({\varvec{C}},{\varvec{\tau }}^*_c(k)) \end{aligned}$$
(34f)
$$\begin{aligned} {\varvec{\tau }}_c(k)= \zeta (k) {\varvec{\tau }}_c^*(k) \end{aligned}$$
(34g)
$$\begin{aligned} {\varvec{f}}_\alpha (k)= \zeta (k){\varvec{f}}^*_\alpha (k) \end{aligned}$$
(34h)
$$\begin{aligned} {\varvec{f}}_c(k)= {\varvec{F}}\,\mathrm {Sat}({\varvec{F}}^{-1}{\varvec{f}}_\alpha (k)) \end{aligned}$$
(34i)
$$\begin{aligned} {\varvec{a}}(k)= ({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}})^{-1}((2{\varvec{B}}+{\varvec{K}}T){\varvec{a}}(k-1) \nonumber \\&-{\varvec{B}}{\varvec{a}}(k-2)+T^2{\varvec{f}}_c(k)) \end{aligned}$$
(34j)

where \({\varvec{\tau }}_c(k)\) is the output of the controller that must be sent to the robot actuators. The whole sysytem is illustrated as the block diagram shown in Fig. 3. This is the discrete-time control law of an extension of VB-PSMC combined with the Jacobian-based structure.

Fig. 3
figure3

Block diagram of the whole sysytem (21) including the proposed controller (34)

Behavior of controller

When removing the velocity limit from the proposed controller (34) (i.e., setting \({\varvec{V}}\rightarrow \infty {\varvec{I}}\)), it can be expressed as follows:

$$\begin{aligned} {\varvec{P}}_e(k)= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s(k)) \end{aligned}$$
(35a)
$$\begin{aligned} {\varvec{\sigma }}_c(k)= -{\varvec{P}}_e(k)-H\frac{\triangledown {\varvec{P}}_e(k)}{T} \end{aligned}$$
(35b)
$$\begin{aligned} {\varvec{f}}^*_\alpha (k)= & {} \frac{{\varvec{B}}+{\varvec{K}}T +{\varvec{L}}T^2}{H+T}{\varvec{\sigma }}_c(k) \nonumber \\&+\frac{{\varvec{K}}H -{\varvec{B}}+{\varvec{L}}T(2H+T)}{(H+T)T}{\varvec{a}}(k-1) \nonumber \\&-\frac{{\varvec{K}}H -{\varvec{B}}+{\varvec{L}}T H}{(H+T)T}{\varvec{a}}(k-2) \end{aligned}$$
(35c)
$$\begin{aligned} {\varvec{\tau }}_c^*(k)= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s(k))^T {\varvec{f}}^*_\alpha (k) \end{aligned}$$
(35d)
$$\begin{aligned} \zeta (k)= \xi ({\varvec{C}},{\varvec{\tau }}^*_c(k)) \end{aligned}$$
(35e)
$$\begin{aligned} {\varvec{\tau }}_c(k)= \zeta (k) {\varvec{\tau }}_c^*(k) \end{aligned}$$
(35f)
$$\begin{aligned} {\varvec{f}}_\alpha (k)= \zeta (k){\varvec{f}}^*_\alpha (k) \end{aligned}$$
(35g)
$$\begin{aligned} {\varvec{f}}_c(k)= {\varvec{F}}\,\mathrm {Sat}({\varvec{F}}^{-1}{\varvec{f}}_\alpha (k)) \end{aligned}$$
(35h)
$$\begin{aligned} {\varvec{a}}(k) & = {} ({\varvec{L}}T^2+{\varvec{K}}T+{\varvec{B}})^{-1}((2{\varvec{B}}+{\varvec{K}}T){\varvec{a}}(k-1) \nonumber \\ & \quad -{\varvec{B}}{\varvec{a}}(k-2)+T^2{\varvec{f}}_c(k)), \end{aligned}$$
(35i)

which can be seen as the controller based on PSMC. In such a framework, smooth and overdamped motions from large tracking errors are realized by setting H to be appropriately large, which is mentioned in the previous paper [12] in detail. Note that (34) is equivalent to (35) as long as all elements of \({\varvec{u}}^*(k)\) is smaller than their correspondent diagonal elements of \({\varvec{V}}\).

PSMC is an extension of the conventional PID control. By setting \({\varvec{F}}\rightarrow \infty {\varvec{I}}\) and \(H=0\), the controller (35) behaves as follows:

$$\begin{aligned} {\varvec{P}}_e(k)= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s(k)) \end{aligned}$$
(36a)
$$\begin{aligned} {\varvec{a}}(k)= {\varvec{a}}(k-1)-T{\varvec{P}}_e(k) \end{aligned}$$
(36b)
$$\begin{aligned} {\varvec{f}}_c(k)= {\varvec{L}}{\varvec{a}}(k)+\frac{{\varvec{K}}\triangledown {\varvec{a}}(k)}{T}+\frac{{\varvec{B}}\triangledown ^2{\varvec{a}}(k)}{T^2} \end{aligned}$$
(36c)
$$\begin{aligned} {\varvec{\tau }}_c^*(k)= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s(k))^T {\varvec{f}}_c(k) \end{aligned}$$
(36d)
$$\begin{aligned} \zeta (k)= \xi ({\varvec{C}},{\varvec{\tau }}^*_c(k))\end{aligned}$$
(36e)
$$\begin{aligned} {\varvec{\tau }}_c(k)= \zeta (k) {\varvec{\tau }}_c^*(k), \end{aligned}$$
(36f)

which can be seen as the PID-type controller with the torque limiter using the scaling factor. The above derivation shows that the proposed controller (34) is advantageous over the controller (36) in the choices of \({\varvec{V}}\), \({\varvec{F}}\) and H, which can be set according to safety regulations.

Experiment

The proposed controller (34) was experimentally tested by using a 6-DOF industrial manipulator MOTOMAN-UPJ (Yaskawa Electric Corporation), which is shown in Fig. 4. It was controlled through a PC running the ART-Linux operating system. This manipulator has six joints, which consist of AC servo motors integrated with harmonic drive gearings. In the experiment, the sampling interval was set to be \(T = 0.001\mathrm {s}\) and six joints were used, in which each joint angles were measured by optical encoders attached to the actuators.

Fig. 4
figure4

Six degree-of-freedom manipulator used in the experiments. Situations of Experiment I. a Configuration A (\({\varvec{p}}_d=[0.26, -0.01, 0.52]^T\mathrm {m}\), \({\tilde{{\varvec{\alpha}}}}_d = [-0.152, 0.507, -0.07]^T\)). b Configuration B (\({\varvec{p}}_d=[0.31, 0.02, 0.45]^T\mathrm {m}\), \(\tilde{{\varvec{\alpha }}}_d=[0.455, 0.377, 0.309]^T\)). c Configuration C (\({\varvec{p}}_d=[0.23,-0.06,0.54]^T\mathrm {m}\), \(\tilde{{\varvec{\alpha }}}_d=[-0.653,0.334,-0.405]^T\))

For the comparison, the following controllers were used:

  • cN1: The proposed controller (34) with the following settings:

    $$\begin{aligned} {\varvec{K}} = \mathrm {diag}(K_1,K_1,K_1,K_2,K_2,K_2)\end{aligned}$$
    (37a)
    $$\begin{aligned} {\varvec{L}} = \mathrm {diag}(L_1,L_1,L_1,L_2,L_2,L_2)\end{aligned}$$
    (37b)
    $$\begin{aligned} {\varvec{B}} = \mathrm {diag}(B_1,B_1,B_1,B_2,B_2,B_2)\end{aligned}$$
    (37c)
    $$\begin{aligned} {\varvec{V}} = \mathrm {diag}(V_1,V_1,V_1,V_2,V_2,V_2)\end{aligned}$$
    (37d)
    $$\begin{aligned} {\varvec{F}} = \mathrm {diag}(F_1,F_1,F_1,F_2,F_2,F_2)\end{aligned}$$
    (37e)
    $$\begin{aligned} {\varvec{C}} = \mathrm {diag} (30,35,30,12,5,3)\text{(Nm)}\end{aligned}$$
    (37f)
    $$\begin{aligned} \{K_1, K_2\}= \{30000 \text{(N/m)}, 12000\text{(Nm)}\}\end{aligned}$$
    (37g)
    $$\begin{aligned} \{L_1, L_2\}= \{40000\text{(N/ms)}, 4000\text{(Nm/s) }\}\end{aligned}$$
    (37h)
    $$\begin{aligned} \{B_1, B_2\}= \{200\text{(Ns/m)}, 30\text{(Nms) }\}\end{aligned}$$
    (37i)
    $$\begin{aligned} \{V_1, V_2\}= \{0.08\text{(m/s)}, 1(\text{ s }^{-1})\}\end{aligned}$$
    (37j)
    $$\begin{aligned} \{F_1, F_2\}= \{200\text{(N)}, 30\text{(Nm) }\}\end{aligned}$$
    (37k)
    $$\begin{aligned} H= 0.3\text{s}, \end{aligned}$$
    (37l)

    which were chosen through trial and error. Its optimal design of these parameter values are subject to further research.

  • cN2: cN1 with setting matrices as follows:

    $$\begin{aligned} \{V_1, V_2\}= \{0.05\text{(m/s)}, 0.6(\text{ s }^{-1})\}. \end{aligned}$$
    (38)
  • cN3: cN1 with setting matrices as follows:

    $$\begin{aligned} \{V_1, V_2\}= \{0.03\text{(m/s)}, 0.4(\text{ s }^{-1})\}. \end{aligned}$$
    (39)
  • cN4: cN1 with setting matrices as follows:

    $$\begin{aligned} \{V_1, V_2\}= \{\infty \text{(m/s) },\infty (\text{ s }^{-1})\}, \end{aligned}$$
    (40)

    which can be seen as the controller based on PSMC (35).

  • cSPID: a PID-type controller combined with the Jacobian-based structure (20) and a simple torque limiter:

    $$\begin{aligned} {\varvec{P}}_e(k)= {\varvec{\Psi }}({\varvec{P}}_d, {\varvec{q}}_s(k))\end{aligned}$$
    (41a)
    $$\begin{aligned} {\varvec{a}}(k)= {\varvec{a}}(k-1)-T{\varvec{P}}_e(k)\end{aligned}$$
    (41b)
    $$\begin{aligned} {\varvec{f}}_c(k)= {\varvec{L}}{\varvec{a}}(k)+\frac{{\varvec{K}}\triangledown {\varvec{a}}(k)}{T}+\frac{{\varvec{B}}\triangledown ^2{\varvec{a}}(k)}{T^2}\end{aligned}$$
    (41c)
    $$\begin{aligned} {\varvec{\tau }}_c^*(k)= {\varvec{J}}({\varvec{P}}_d, {\varvec{q}}_s(k))^T {\varvec{f}}_c(k) \end{aligned}$$
    (41d)
    $$\begin{aligned} {\varvec{\tau }}_c(k)= {\varvec{C}}\,\mathrm {Sat}({\varvec{C}}^{-1}{\varvec{\tau }}_c^*(k)) \end{aligned}$$
    (41e)

    where parametric matrices were set as the same as cN4.

Experiment I: large position and attitude errors

In order to show the effectiveness of the proposed controller (34), a comparison among cN1, cN2, cN3 and cN4 was performed to show their trajectories from large attitude error. The desired vector \({\varvec{P}}_d\) was changed discontinuously among the three configurations shown in Fig. 4. To be more specific, the initial vector \({\varvec{P}}_s\) was chosen as configuration A in Fig. 4. The desired vector \({\varvec{P}}_d\) was discontinuously changed to configuration B at \(t=3\mathrm {s}\), then to configuration C at \(t=7\mathrm {s}\), and finally, again to configuration A at \(t=13\mathrm {s}\).

The results show that cN1, cN2, cN3 and cN4 produce overdamped motion without overshoot from large position/attitude errors shown in Fig. 5. In Period A in Fig. 5, one can see that the controllers produce smooth trajectories from large attitude error, which is visible as errors in \(\{\alpha _x, \alpha _z\}\). In addition, their velocity and angular velocity are bounded at the values specified by the matrix \({\varvec{V}}\). Such behavior is correspond to the feature of VB-PSMC mentioned in “Background” section.

Fig. 5
figure5

Results of Experiment I. The end-effector position \({\varvec{p}}_s\) and attitude \(\tilde{{\varvec{\alpha }}}_s\) and each joint torque during set-point controllers under cN1, cN2, cN3 and cN4where DT is desired trajectories, which are pointed in Fig. 4

Experiment II: comparison between cN4 and cSPID

Second set of experiments were performed to compare cN4 with cSPID. The desired vector \({\varvec{P}}_d\) was changed between the two configurations shown in Fig. 6. The results are shown in Fig. 7. At \(t = 2\mathrm {s}\), the robot end-effector started to accelerate due to the large tracking errors. cSPID produced high speed as expected, which leads to large oscillations and overshoots. The results indicate that cN4 and cSPID have distinctly different transient responses after acceleration. Specifically, the result from cN4 shows that the actual position/attitude exponentially move toward the desired position/attitude. It leads to smooth and overdamped motion, which can be adjusted by the parameter H. This property can be considered beneficial for safety when the desired position/attitude are far separated from the actual position/attitude.

Fig. 6
figure6

Situations of Experiment II. a Configuration D (\({\varvec{p}}_d=[0.3, 0.01, 0.5]^T\mathrm {m}\)\(\tilde{{\varvec{\alpha }}}_d=[0.592, 0.449, 0.296]^T\)). b Configuration E (\({\varvec{p}}_d=[0.36, 0.06, 0.4]^T\mathrm {m}\)\(\tilde{{\varvec{\alpha }}}_d=[0.178, 0.711, 0.088]^T\))

Fig. 7
figure7

Results of Experiment II. The end-effector position \({\varvec{p}}_s\) and attitude \(\tilde{{\varvec{\alpha }}}_s\) and each joint torque during set-point controllers under cN4 and cSPIDwhere the desired trajectories DT are pointed in Fig. 6

Experiment III: human–robot interaction

In the final set of experiments, the robot was moved by the experimenter’s hand through the robot’s link that is connected to the 5th joint. In the experiment, a comparison between cN1 and cSPID was performed to show the effectiveness of cN1. It was started with the initial configuration F shown in Fig. 8. The experiment results are shown in Fig. 9. In Period B, the experimenter applied a torque smaller than 5 Nm to the robot’s link, which appears as a reaction torque generated by the 5th joint. In Period C, the experimenter applied a torque larger than 5 Nm to the robot’s link. After Period C, the experimenter released his hand from the robot.

Fig. 8
figure8

Situations of Experiment III. a The robot is moved by the experimenter’s hand under cN1. b The robot is moved by the experimenter’s hand under cSPID. Both (a, b) are with the initial configuration F, which is \(({\varvec{p}}_d=[0.38, 0.13, 0.44]^T\mathrm {m},\tilde{{\varvec{\alpha }}}_d=[-0.157, 0.515, -0.078]^T)\)

Fig. 9 shows that, in Period B, the robot did not move to any direction while the external force is applied to the robot link. It can be seen that the controller cN1 and cSPID resist the external force under the actuator force limiter. In Period C, the robot yields to external force due to the actuator force saturation where cN1 and cSPID produce distinctly different motion. The result produced by cSPID shows that the robot does not move toward the direction of the external force, while the 5th joint yields to external force shown in Figs. 8b and 9. This motion leads to the undesirable robot configuration. In addition, it produces excessively high speed after Period C due to large tracking errors. With the controller cN1, in contrast, the robot moves toward the direction of the external force shown in Figs. 8a and 9. In this Period, the force vector is saturated when 5th joint torque is saturated, which is consistent with the point discussed in “Force limiter” section. It is a preferable response when the robot should be moved by external environments. After Period C, the controller cN1 produces overdamped resuming motion from the large tracking errors. These behaviors can be seen as a main advantage of the proposed controller.

Fig. 9
figure9

Results of Experiment III. The end-effector position \({\varvec{p}}_s\) and attitude \(\tilde{{\varvec{\alpha }}}_s\) and each joint torque during a set-point controller under cN1where a desired trajectory is pointed in Fig. 8

Conclusion

This paper has proposed a new task-space controller for robotic manipulators. It can be seen as an extension of VB-PSMC to deal with position and attitude in the three-dimensional task space. The proposed controller has a Jacobian-based structure, which realizes smooth trajectories when the desired attitude is far rotated from the actual attitude. It also imposes arbitrary magnitude limits on the end-effector velocity, angular velocity and each actuator force without sacrificing the stiffness, which is the same level as a PID-type controller below the limits.

This controller was tested through experiments employing a 6-DOF industrial manipulator equipped with harmonic drive gearings. The results show that it produces high tracking accuracy and safe behavior as the advantage inherited from VB-PSMC. In addition, the force vector is saturated when actuator forces are saturated by external forces. It realizes that the robot is moved by external forces smoothly after actuator forces are saturated. The benefit of the proposed controller becomes apparent after the robot yields to external forces. In situations where the external forces disappear after the robot yields to external forces, the controller generates overdamped resuming motion from large tracking errors.

The proposed controller can be expected to enhance the safety of robots that work in the workspace shared with humans. Future study should address better guidelines for the choice of the matrices \(\{{\varvec{V}},{\varvec{F}}\}\) and theoretical details on the Jacobian-based structure (20).

Data availability statement

The data used to support the findings of this study are available from the corresponding author upon request

References

  1. 1.

    Siciliano B, Sciavicco L, Villani L, Oriolo G (2010) Robotics: modelling, planning and control. Springer, Berlin

  2. 2.

    Buss SR (2004) Introduction to inverse kinematics with jacobian transpose, pseudoinverse and damped least squares methods. IEEE J Robot Autom 17(1–19):16

  3. 3.

    Arimoto S, Miyazaki F (1984) Stability and robustness of pid feedback control for robot manipulators of sensory capability. In: Robotics research, first international symposium. MIT Press, pp. 783–799

  4. 4.

    Chiaverini S, Siciliano B, Villani L (1999) A survey of robot interaction control schemes with experimental comparison. IEEE/ASME Trans Mechatron 4(3):273–285

  5. 5.

    Caccavale F, Natale C, Siciliano B, Villani L (2005) Integration for the next generation: embedding force control into industrial robots. IEEE Robot Autom Mag 12(3):53–64

  6. 6.

    Luh J, Walker M, Paul R (1980) Resolved-acceleration control of mechanical manipulators. IEEE Trans Autom Control 25(3):468–474

  7. 7.

    Khatib O (1987) A unified approach for motion and force control of robot manipulators: the operational space formulation. IEEE J Robot Autom 3(1):43–53

  8. 8.

    Diebel J (2006) Representing attitude: euler angles, unit quaternions, and rotation vectors. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.110.5134

  9. 9.

    Caccavale F, Chiacchio P, Chiaverini S (2000) Task-space regulation of cooperative manipulators. Automatica 36(6):879–887

  10. 10.

    Caccavale F, Chiacchio P, Marino A, Villani L (2008) Six-dof impedance control of dual-arm cooperative manipulators. IEEE/ASME Trans Mechatron 13(5):576–586

  11. 11.

    Kikuuwe R, Fujimoto H (2006) Proxy-based sliding mode control for accurate and safe position control. In: Proceedings of the 2006 IEEE international conference on robotics and automation, pp. 25–30

  12. 12.

    Kikuuwe R, Yasukouchi S, Fujimoto H, Yamamoto M (2010) Proxy-based sliding mode control: a safer extension of PID position control. IEEE Trans Robot 26(4):670–683

  13. 13.

    Kikuuwe R (2018) Some stability proofs on proxy-based sliding mode control. IMA J Math Control Inform 35(4):1319–1341

  14. 14.

    Watanabe T, Yano K, Aoki T, Nishimoto Y (2011) Extension motion assistance for upper limb using proxy-based sliding mode control. In: IEEE international conference on systems, man, and cybernetics (SMC), pp. 2885–2890

  15. 15.

    Liao Y, Zhou Z, Wang Q (2015) BioKEX: A bionic knee exoskeleton with proxy-based sliding mode control. In: Proceedings of 2015 IEEE international conference on industrial technology, pp. 125–130

  16. 16.

    Chen G, Zhou Z, Vanderborght B, Wang N, Wang Q (2016) Proxy-based sliding mode control of a robotic ankle-foot system for post-stroke rehabilitation. Adv Robot 30(15):992–1003

  17. 17.

    Kashiri N, Lee J, Tsagarakis NG, Van Damme M, Vanderborght B, Caldwell DG (2016) Proxy-based position control of manipulators with passive compliant actuators: stability analysis and experiments. Robot Auton Syst 75:398–408

  18. 18.

    Van Damme M, Beyl P, Vanderborght B, Versluys R, Van Ham R, Vanderniepen I, Daerden F, Lefeber D (2010) The safety of a robot actuated by pneumatic muscles—a case study. Int J Soc Robot 2(3):289–303

  19. 19.

    Hastürk Ö, Erkmen AM, Erkmen İ (2011) Proxy-based sliding mode stabilization of a two-axis gimbaled platform. In: Proceedings of the world congress on engineering and computer science, pp. 370–376

  20. 20.

    Prieto PJ, Rubio E, Hernández L, Urquijo O (2013) Proxy-based sliding mode control on platform of 3 degree of freedom (3-DOF). Adv Robot 27(10):773–784

  21. 21.

    Gu G-Y, Zhu L-M, Su C-Y, Ding H, Fatikow S (2015) Proxy-based sliding-mode tracking control of piezoelectric-actuated nanopositioning stages. IEEE/ASME Trans Mechatron 20(4):1956–1965

  22. 22.

    Nishi F, Katsura S (2015) Ultrafine manipulation considering input saturation using proxy-based sliding mode control. In: Proceedings of 2015 IEEE international conference on mechatronics, pp. 547–552

  23. 23.

    Kikuuwe R, Yamamoto T, Fujimoto H (2006) Velocity-bounding stiff position controller. In: Proceedings of the 2006 IEEE/RSJ international conference on intelligent robots and systems, pp. 3050–3055

  24. 24.

    Hogan N (1985) Impedance control: an approach to manipulation: part i-theory. Trans ASME J Dyn Syst Meas Control 107(1):1–7

  25. 25.

    Hogan N (1985) Impedance control: an approach to manipulation: part ii-implementation. Trans ASME J Dyn Syst Meas Control 107(1):8–16

  26. 26.

    Hogan N (1985) Impedance control: an approach to manipulation: part iii-applications. Trans ASME J Dyn Syst Meas Control 107(1):17–24

  27. 27.

    Slotine J-JE, Sastry SS (1983) Tracking control of non-linear systems using sliding surfaces, with application to robot manipulators. Int J Control 38(2):465–492

  28. 28.

    Lange F, Hirzinger G (1999) Adaptive minimization of the maximal path deviations of industrial robots. In: 1999 European control conference (ECC). IEEE, pp. 1914–1919

  29. 29.

    Xie Y, Jin J, Tang X, Ye B, Tao J (2018) Robust cascade path-tracking control of networked industrial robot using constrained iterative feedback tuning. IEEE Access 7:8470–8482

Download references

Acknowledgements

Not applicable.

Funding

Not applicable.

Author information

Affiliations

Authors

Contributions

All authors read and approved the final manuscript.

Corresponding author

Correspondence to Gyuho Byun.

Ethics declarations

Competing interests

The authors declare that they have no competing interests.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Byun, G., Kikuuwe, R. Stiff and safe task-space position and attitude controller for robotic manipulators. Robomech J 7, 18 (2020). https://doi.org/10.1186/s40648-020-00166-1

Download citation

Keywords

  • Human–robot interaction
  • Safety regulation
  • Multi-dimensional task space
  • Quaternion representation
  • Attitude control
  • Proportional-integral-derivative (PID) position control
  • Proxy-based sliding mode control (PSMC)