Keywords

1 Introduction

The important role of redundant robot manipulators, in space, undersea, etc., has promoted the research on these manipulators. Many schemes have been proposed to design the controller for manipulators with dynamic uncertainties [1]. From the literature survey, dynamical controller for redundant robots is very limited [2,3,4]. Li et al. [5] deigned a robust control scheme in Cartesian space with redundancy utilization measures. The drawback of this scheme is that the knowledge of the bounds of parameter vibrations and unmodeled dynamics is required, and there is no friction and external disturbance in robot dynamics. Zergeroglu et al. [6] and later on Ozbay et al. [7] have designed a robust controller to perform multiple subtasks. These control schemes are based on linear-parameterization property. An adaptive control scheme in operational space for redundant manipulators is proposed in [8]. Maaroof et al. [9] designed a subtask controller for redundant robot manipulators using self-motion criteria. Soto and Campa [10] proposed a two-loop control scheme for redundant robots. Madania et al. [11] designed a control scheme for redundant manipulators constrained by moving obstacles. A terminal sliding manifold controllers for n-degree-of-freedom (DOF) rigid robotic manipulator is proposed in [12]. There are many FFNN-based controllers for manipulators available in the literature [1, 13, 14]. Chien et al. [15] constructed a NN control algorithm for a nonlinear system such as ball and beam control system. Kumar et al. [16] proposed a nonlinear tracking controller without any disturbance term in the model. Singh and Sukavanam [17] developed a trajectory tracking controller for redundant manipulators with continuous friction. A novel control scheme for online path tracking and obstacle avoidance is proposed by Jasour and Farrokhi [18]. Shoushtari et al. [19] designed an innovative control algorithm for redundant robots. A three-degree-of-freedom model is presented to handle kinematic redundancy. This study presents a theoretical–experimental scheme to control a redundant manipulator with unmodeled dynamics and discontinuous fraction. The proposed control scheme does not require a priori knowledge of upper bounds, robot’s parameters, and external disturbance. The advantage of a FFNN controller is its robustness and ability to handle the model uncertainties. The outlay of this study is as follows. Section 2 provides the kinematics and dynamics model of a robot manipulator. The error system formulation and controller are given in Sect. 3. Section 4 illustrates and discusses the experimental results for performance of the proposed controller. Section 5 provides the final conclusions.

2 Kinematics and Dynamics Model

The manipulator end-effector position and orientation in the Cartesian space denoted by \( x \, = \, [x_{1} , \, x_{2} , \ldots ,x_{m} ]^{\text{T}} , \) is defined as

$$ x = f(q) $$
(1)

where \( f(q) \in R^{m} \) denotes the direct kinematics and \( q \, = \, [q_{1} , \, q_{2} , \ldots ,q_{n} ]^{\text{T}} \) represents the \( n \times 1\,(m < n) \) position vector of an n-link robot manipulator. Differentiating (1) with respect to time yields

$$ \dot{x} = J(q)\dot{q} $$
(2)

where \( J(q) = \partial f(q)/\partial q \in R^{m \times n} \) denotes the manipulator Jacobian. The general solution of Eq. (2) is given as

$$ \dot{q} = J^{ + } (q)\dot{x} + k(I_{n} - J^{ + } J)\sum\limits_{i = 1} {w_{i} \nabla h_{i} (q)} $$
(3)

where \( h_{i} (q) \) is the ith performance criteria, \( s \in N \) is the maximum number of self-motion (subtask), and \( w_{i}^{\prime } s \) are positive weights of the corresponding criteria subjected to the following constraint.

$$ \sum\limits_{i = 1}^{s} {w_{i} } = C $$
(4)

where \( C \) is a real-valued constant and is used in conjunction with the self-motion control parameter k [6]. The pseudoinverse \( J^{ + } = J^{T} (JJ^{T} )^{ - 1} \) of \( J \) satisfies the following conditions.

$$ JJ^{T} J = J\quad J^{ + } JJ^{ + } = J^{ + } \quad (J^{ + } J)^{T} = J^{ + } J\quad (JJ^{ + } )^{T} = JJ^{ + } $$
(5)
$$ \begin{array}{*{20}l} {(I_{n} - J^{ + } J)(I_{n} - J^{ + } J) = (I_{n} - J^{ + } J)} & {J(I_{n} - J^{ + } J) = 0} \\ {(I_{n} - J^{ + } J)^{T} = (I_{n} - J^{ + } J)} & {(I_{n} - J^{ + } J)J^{ + } = 0} \\ \end{array} $$
(6)

The dynamics model for an n-link robot manipulator in joint space has the following form [1]

$$ M(q)\ddot{q} + N(q,\dot{q}) + \tau_{d} = \tau $$
(7)

where \( N(q,\dot{q}) = V_{m}(q,\dot{q})\dot{q} + G(q) + F(\dot{q}). M(q)\in R^{n \times n},V_{m}(q,\dot{q})\in R^{n \times n} ,G(q) \in R^{n} , \) and \( F(\dot{q}) \in R^{n} \) are mass matrix, centripetal-coriolis matrix, gravity effects, and friction effects, respectively. \( \tau_{d} \in R^{n} \) denotes a bounded external disturbance, and \( \tau \in R^{n} \) represents the control input exerted on joints.

3 Controller Design Using Neural Network

The tracking error in Cartesian space is defined as

$$ e = x - x_{d} $$
(8)

where \( x_{d} \in R^{m} \) the desired trajectory. Let us consider the following controller

$$ \tau = \hat{M}[J^{ + } (\ddot{x}_{d} - \dot{J}\dot{q} - K_{v} \dot{e} - K_{p} e + u_{0} ) + k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})] + \hat{N} $$
(9)

where \( \hat{M} \) and \( \hat{N} \) are estimated versions of \( M \) and \( N \). \( K_{v} \) and \( K_{p} \) are the positive definite diagonal gain matrices. For convenience, we write

$$ v = \ddot{x}_{d} - \dot{J}\dot{q} - Ky $$
(10)

where \( K = [K_{p} K_{v} ] \) and \( y = [e\dot{e}]^{\text{T}} \). Substituting (9) into (7), we get

$$ \begin{aligned} \ddot{q} & = M^{ - 1} \hat{M}J^{ + } v + M^{ - 1} \hat{M}(k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})) + M^{ - 1} \hat{M}J^{ + } u_{0} + M^{ - 1} \Delta N - M^{ - 1} \tau_{d} \\ & = J^{ + } v + J^{ + } u_{0} + (M^{ - 1} \hat{M} - I)J^{ + } v + (M^{ - 1} \hat{M} - I)J^{ + } u_{0} \\ & \quad + M^{ - 1} \hat{M}(k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})) + M^{ - 1} \Delta N - M^{ - 1} \tau_{d} \\ & = J^{ + } v + J^{ + } u_{0} + EJ^{ + } v + EJ^{ + } u_{0} + M^{ - 1} \hat{M}(k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})) + M^{ - 1} \Delta N - M^{ - 1} \tau_{d} \\ \end{aligned} $$
(11)

where \( \Delta N = \hat{N} - N,E = M^{ - 1} \hat{M} - I. \) From (10), by substituting \( v \) into the first term of (11) and multiplying both sides by \( J \) with the properties \( JJ^{ + } = I \) and \( kJ(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q}) = 0 \), we get

$$ \begin{aligned} J\ddot{q} & = \ddot{x}_{d} - \dot{J}\dot{q} - Ky + u_{0} + JEJ^{ + } v + JEJ^{ + } u_{0} + JE(k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})) \\ & \quad + JM^{ - 1} \Delta N - JM^{ - 1} \tau_{d} \\ \end{aligned} $$
(12)

Now, using (12), \( \dot{e} = \dot{x} - \dot{x}_{d} ,\ddot{x} = \dot{J}(q)\dot{q} + J(q)\ddot{q},\ddot{e} = \ddot{x} - \ddot{x}_{d} \), and \( y = [e\dot{e}]^{\text{T}} \), we get the error dynamics system

$$ \dot{y} = Ay + B(u_{0} + \eta ) $$
(13)

where \( A = \left[ {\begin{array}{*{20}c} 0 & I \\ { - K_{p} } & { - K_{v} } \\ \end{array} } \right],B = \left[ {\begin{array}{*{20}c} 0 \\ I \\ \end{array} } \right] \) and

$$ \eta = JEJ^{ + } v + JEJ^{ + } u_{0} + JE(k(I_{n} - J^{ + } J)(\nabla h(q) - \dot{q})) + JM^{ - 1} \Delta N - JM^{ - 1} \tau_{d} $$
(14)

Due to the mismatch between \( M \), \( N \), and their estimated version \( \hat{M} \), \( \hat{N} \), and unmodeled dynamics, \( \eta \) in (14) is an uncertain nonlinear function. Let us assume that the singularities are always avoided and all terms in (14) are assumed to be bounded [20], then there will always exist a continuous function \( \varphi (\cdot) \) such that \( \left\| \eta \right\| < \varphi (t). \) Mathematical model of a one-layer neural network in terms of uncertain bound \( \varphi \) has the following form [21]

$$ \varphi = Z^{ * T} \phi (s)\Delta \varphi $$

and the estimate value of \( \varphi \) is given as \( \varphi = \hat{Z}^{\text{T}} \phi (s) \) where \( \Delta \varphi \) denotes NN approximation error satisfying \( \left\| {\varphi (t)} \right\| = \left\| {Z^{{ * {\text{T}}}} \phi (s) - \varphi } \right\| < \xi ,\phi (t) \) denotes a basis vector and \( \hat{Z} \) is the estimate value of the optimal matrix \( Z^{ * } \). Let us assume that the norm of \( \eta \) and \( \varphi \) satisfies the condition \( \varphi - \left\| \eta \right\| > \xi . \) The term \( u_{0} \) represents the compensator used to stabilize the error dynamics system and enhances the system robustness against system uncertainties and external disturbance. The compensator \( u_{0} \) in neural network is given as

$$ u_{0} = - \frac{{\hat{\rho }\omega }}{{\hat{\rho }\left\| \omega \right\| + \varepsilon }} $$
(15)

where \( \dot{\varepsilon } = - \gamma \varepsilon ,\varepsilon (0) > 0 \) and \( \gamma \) is a positive constant. The adaptive neural network law is designed as \( \dot{\hat{Z}} = F\left\| \omega \right\|\phi (s) \) where \( \omega = B^{T} Py,P \) is a symmetric matrix with positive eigenvalues such that

$$ A^{\text{T}} P + PA + Q = 0 $$
(16)

with a positive definite symmetric matrix \( Q \) defined as

$$ Q = \left[ {\begin{array}{*{20}c} {2K_{p}^{2} } & 0 \\ 0 & {2K_{v}^{2} - 2K_{p} } \\ \end{array} } \right] $$
(17)

such that \( K_{v}^{2} > K_{p} ,F \) is a positive definite design parameter.

4 Experimental Results

To confirm the validity of the controller, experiments are performed on the three-link planar redundant manipulator. The model terms are given as follows

$$ M(q) = \left[ {\begin{array}{*{20}c} {\beta_{1} + 2p_{1} c_{2} + p_{2} c_{23} + p_{3} c_{3} } & {\beta_{2} + p_{1} c_{2} + p_{2} c_{23} } & {\beta_{3} } \\ {\beta_{2} + p_{1} c_{2} + p_{2} c_{23} } & {\beta_{2} + 2p_{3} c_{3} } & {\beta_{3} + p_{3} c_{3} } \\ {\beta_{3} } & {\beta_{3} + p_{3} c_{3} } & {\beta_{3} } \\ \end{array} } \right] $$
$$ V_{m} (q,\dot{q}) = \left[ {\begin{array}{*{20}c} {V_{m11} } & {V_{m12} } & {V_{m13} } \\ {V_{m21} } & {V_{m22} } & {V_{m23} } \\ {V_{m31} } & {V_{m32} } & {V_{m33} } \\ \end{array} } \right] $$

where

$$ \begin{aligned} & V_{m11} = - (p_{1} s_{2} + p_{2} s_{12} )\dot{q}_{2} - (p_{2} s_{12} + p_{3} s_{12} )\dot{q}_{3} , \\ & V_{m12} = - (p_{1} s_{2} + p_{2} s_{12} )(\dot{q}_{1} + \dot{q}_{2} ) - (p_{2} s_{12} + p_{3} s_{12} )\dot{q}_{3} , \\ & V_{m13} = (p_{2} s_{12} + p_{3} s_{12} )( - \dot{q}_{1} + \dot{q}_{2} + \dot{q}_{3} ),V_{m21} = (p_{1} s_{2} + p_{2} s_{12} )\dot{q}_{1} + p_{3} s_{3} \dot{q}_{3} , \\ & V_{m22} = - (p_{2} s_{12} + p_{3} s_{12} )\dot{q}_{3} ,V_{m23} = - p_{3} s_{3} (3\dot{q}_{1} + \dot{q}_{2} + \dot{q}_{3} ), \\ & V_{m31} = (p_{1} s_{2} + p_{2} s_{12} )\dot{q}_{1} - p_{3} s_{3} \dot{q}_{2} ,V_{m32} = p_{3} s_{3} (\dot{q}_{1} + \dot{q}_{2} ),V_{m33} = 0, \\ \end{aligned} $$

and \( \beta_{1} ,\beta_{2} ,\beta_{3} ,p_{1} ,p_{2} ,p_{3} \) represent the inertia parameters and defined as

$$ \begin{aligned} \beta_{1} & = 1.1956\;{\text{kg}}\;{\text{m}}^{2} ,\quad \beta_{2} = 0.3946\;{\text{kg}}\;{\text{m}}^{2} ,\;\;\beta_{3} = 0.0512\;{\text{kg}}\;{\text{m}}^{2} \\ p_{1} & = 0.4752\;{\text{kg}}\;{\text{m}}^{2} ,\quad p_{2} = 0.1280\;{\text{kg}}\;{\text{m}}^{2} ,\;\;p_{3} = 0.1152\;{\text{kg}}\;{\text{m}}^{2} \\ \end{aligned} $$

and \( c_{i} \) denotes \( \cos (q_{i} ) \), \( s_{i} \) denotes \( \sin (q_{i} ) \), \( \text{c}_{ij} \) represents \( \cos (q_{i} + q_{j} ) \), and \( s_{ij} \) represents \( \sin (q_{i} + q_{j} ) \). The external disturbance is defined as \( \tau_{d} = [\begin{array}{*{20}c} {4\cos 2(t)} & {\sin (t) + \cos (2t)} & {2\sin (t} \\ \end{array} )]^{\text{T}} \). The masses of the link and corresponding lengths are taken as \( 3.60 \), \( 2.60 \), \( 2.00\,{\text{kg}} \) and \( 0.40 \), \( 0.36 \), \( 0.30\,{\text{m}} \), respectively. For controller design, estimated values are given as

$$ \hat{M} = 14M, $$
$$ \begin{aligned} & \hat{V}_{m11} = - (\hat{p}_{1} s_{2} + \hat{p}_{2} s_{12} )\dot{q}_{2} - (\hat{p}_{2} s_{12} + \hat{p}_{3} s_{12} )\dot{q}_{3} , \\ & \hat{V}_{m12} = - (\hat{p}_{1} s_{2} + \hat{p}_{2} s_{12} )(\dot{q}_{1} + \dot{q}_{2} ) - (\hat{p}_{2} s_{12} + \hat{p}_{3} s_{12} )\dot{q}_{3} , \\ & \hat{V}_{m13} = (\hat{p}_{2} s_{12} + \hat{p}_{3} s_{12} )( - \dot{q}_{1} + \dot{q}_{2} + \dot{q}_{3} ),\hat{V}_{m21} = (\hat{p}_{1} s_{2} + \hat{p}_{2} s_{12} )\dot{q}_{1} + \hat{p}_{3} s_{3} \dot{q}_{3} , \\ & \hat{V}_{m22} = - (\hat{p}_{2} s_{12} + \hat{p}_{3} s_{12} )\dot{q}_{3} ,\hat{V}_{m23} = - \hat{p}_{3} s_{3} (3\dot{q}_{1} + \dot{q}_{2} + \dot{q}_{3} ), \\ & \hat{V}_{m31} = (\hat{p}_{1} s_{2} + \hat{p}_{2} s_{12} )\dot{q}_{1} - \hat{p}_{3} s_{3} \dot{q}_{2} ,\hat{V}_{m32} = \hat{p}_{3} s_{3} (\dot{q}_{1} + \dot{q}_{2} ),\hat{V}_{m33} = 0, \\ & \hat{p}_{1} = 0.4\;{\text{kg}}\;{\text{m}}^{2} ,\quad \hat{p}_{2} = 0.1\;{\text{kg}}\;{\text{m}}^{2} ,\;\;\hat{p}_{3} = 0.1\;{\text{kg}} . {\text{m}}^{2} \\ \end{aligned} $$

Discontinuous friction is given as follows

$$ F(\dot{q}) = \left[ {\begin{array}{*{20}c} {f_{d1} } & 0 & 0 \\ 0 & {f_{d2} } & 0 \\ 0 & 0 & {f_{d3} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\dot{q}_{1} } \\ {\dot{q}_{2} } \\ {\dot{q}_{3} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {\text{sgn} (\dot{q}_{1} )} \\ {\text{sgn} (\dot{q}_{2} )} \\ {\text{sgn} (\dot{q}_{3} )} \\ \end{array} } \right] $$

where

$$ \begin{aligned} & f_{d1} = 4.3,\quad f_{d2} = 1.4,\quad f_{d3} = 0.4 \\ & \hat{f}_{d1} = 4,\quad \hat{f}_{d2} = 1,\quad \hat{f}_{d3} = 0.2 \\ \end{aligned} $$

The desired trajectory of the end-effector and subtask are given as

$$ x_{d} = \left[ {\begin{array}{*{20}c} {0.30 + 0.2\cos \,(t)} \\ {0.40 + 0.1\sin \,(t)} \\ \end{array} } \right] $$
(18)

and

$$ h(q) = 0.5\det (JJ^{T} ) - 0.5((q_{3} - 0.5q_{2} ) - 0.5(q_{2} - q_{1} ))^{2} , $$
(19)

respectively. The self-motion parameters \( k \) and \( C \) in (4) are selected to be 10 and 1, respectively. For simulation, we select

$$ B = \left[ {\begin{array}{*{20}c} 0 & 0 \\ 0 & 0 \\ 1 & 0 \\ 0 & 1 \\ \end{array} } \right]\quad {\text{and}}\;\;P = \left[ {\begin{array}{*{20}c} {2K_{p} K_{v} } & {K_{p} } \\ {K_{p} } & {K_{v} } \\ \end{array} } \right] $$

where \( K_{p} = {\text{diag}} \, (10,10),K_{v} = {\text{diag}} \, (4,4). \) To confirm the validity of the controller, we have the following two cases.

  1. (a)

    Desired end-effector trajectory is taken as a straight line:

In this case, the end-effector trajectory is taken as \( x_{d} = \left[ {\begin{array}{*{20}c} {0.30 + 0.2\cos (t)} & {0.5} \\ \end{array} } \right]^{\text{T}} \). The experimental results are shown in Figs. 1, 2 and 3.

Fig. 1
figure 1

Desired end-effector trajectory

Fig. 2
figure 2

Performance of robot and end-effector at different time level

Fig. 3
figure 3

Performance of robot and end-effector at different time level

  1. (b)

    Desired end-effector trajectory is taken as an elliptical path (18):

In this case, we choose an elliptical trajectory for the end-effector. The experimental results are shown in Figs. 4, 5, and 6.

Fig. 4
figure 4

Desired end-effector trajectory

Fig. 5
figure 5

Performance of robot and end-effector at different time level

Fig. 6
figure 6

Performance of robot and end-effector at different time level

5 Conclusions

A robust adaptive scheme is designed for redundant manipulators with uncertainties such as model uncertainties, external disturbances, and discontinuous friction. The extra degrees of freedom are used to avoid singularity, maintain good manipulability, etc., without affecting the end-effector Cartesian space trajectory. A FFNN is employed to learn the nonlinear uncertainty bound. The results show that the NN-based compensator eliminates the effects of system uncertainties and external disturbance.