1 Introduction

Nowadays, with the increasing demand for the on-orbit service, such as spacecraft docking, removal of space debris, flexible space robots with light material have received more attention. Lighter and larger robots have the merits of wider operation range and fast operation speed. However, utilizing long lightweight links and transmission belts or reduction elements with a high reduction ratio, such as the Harmonic Drive™, could bring a side effect of component flexibility [1]. The coupling of the link flexibility and joint flexibility may lead to the elastic deformation and vibration of systems, which not only affects the accuracy of trajectory tracking but also accelerates fatigue damage of flexible components. Besides, while space robots are moving at low speed, the strongly coupled characteristics between joint friction and component flexibility will be amplified, so the nonlinear characteristics of joint friction are more obvious. Furthermore, this will also cause that space robots can’t be effectively controlled. Therefore, the dynamics modeling and control for flexible-link flexible-joint (FLFJ) space robots with joint friction should get a further investigation.

Heretofore, among the existing investigations about space robots with flexible joints mostly focus on dynamics modeling and control issues. On the one hand, for dynamics modeling, Spong [2] firstly proposed that a flexible joint could be simplified as a linearly elastic spring. On the basis, Bridges and Dawson [3] developed a flexible joint model with nonlinear elasticity and friction. Based on the Euler–Lagrange equation and Lagrange 2nd kind equation, Zavrazhina and Zavrazhina [4] established the dynamic equations of a rigid space manipulator considering the flexibility and friction of joints, and analyzed the influence of elastic and friction of joints on the robot motion. Xu and Sun [5] modeled a 3-DOF rigid robot with flexible joints by the Lagrange method, and analyze the effect of nonlinear stiffness flexible joints on the robot control. The two-mass model [6] was adopted to establish a dynamic model of rigid space robots connected with flexible joints by Zhang and Liu [7]. Xia et al. [8] utilized the virtual decomposition-based (VD-based) method to established a dynamic model of a rigid space robot with flexible joints. The experiment results suggest this model can well describe the dynamic characteristics of robots in practice. Additionally, all of the simulation results in the above researches suggest that the dynamic characteristics of robots can be more precisely described by the dynamic model considering joint flexibility. Hence, joint flexibility is an important factor to establish an accurate robot dynamic model. However, the number of state variables will increase for introducing the flexible joint model, which decrease the computation efficiency. Thereby, Buondonno and De Luca [10] developed a computation method to solve the inverse dynamics of robots with flexible joints. This can significantly avert the complicated symbolic Lagrange modeling and customization. Xia et al. [8] proposed a virtual decomposition-based method, which can decouple flexible joint dynamics and improve computation efficiency compared to conventional approaches. However, among the existing researches on the dynamics model of space robots, such as Refs. [9,10,11], researchers usually consider the flexibility of robot links but neglect joint flexibility, or consider joint flexibility but neglect link flexibility. The researches on modeling and control of multi-DOF robots considering both joint flexibility and link flexibility are not integrated enough, because the coupling characteristics of both rigid-flexible and flexible–flexible is complicated. Besides, the contribution of joint friction to the dynamic properties of the robots with both flexible links and flexible joints is not grossly clear.

On the other hand, for the control problem of FLFJ robots, since flexible joints or flexible links may generate vibration, it is necessary to suppress the vibration to ensure the operation accuracy and the attitude stability of robots. Recently, the vibration can be suppressed from two aspects. One is to design a proper trajectory of point–point motion. The existing trajectory planning schemes can be classified into two categories [12]. The first one is direct method, in which trajectory planning problems can be transferred to parameter optimal problems after defining trajectories as specific functions. For example, Cui et al. [13] developed a trajectory planning method to suppress the vibration of spatial flexible manipulators. The second trajectory planning method is named as indirect method. For indirect method, trajectory planning problems is converted to optimal control problems. In [14], after establishing the dynamic model of a planar flexible robot, an optimal trajectory is generated by the indirect method. Another aspect to achieve vibration suppression is to devise an effective controller which can eliminate the intense vibration of flexible mechanisms. Hitherto, many methods were proposed, such as PD control [15, 16], robust control [17, 18], fuzzy control [1920], self-adaptive control [21], singular perturbation [22]. Moreover, some researchers improve the above methods to achieve more precise tracking control. For instance, a fuzzy controller for a single-link robot is designed by combining the adaptive backstepping design with dynamic surface control in the Ref. [23]. By this approach, the servo control of robots can be realized needless to the velocity variable feedback. Li et al. [24] combines the input shaping with the ADRC to realize the vibration control and trajectory tracking control. Jia [25] designed a dynamic surface controller based on a state observer. The simulation shows that the residual vibration of flexible joints gets effectively suppressed with this method. Since considering flexible joints increases the control complexity of robot systems, the control efficiency may decrease. For this matter, Giusti et al. [26] proposed a composite controller based on inverse-dynamics and passivity-based control of flexible-joint robots, which can improve the tracking efficiency and possesses strong robustness against disturbance and parameter uncertainty. Although trajectory tracking and vibration suppression of the low-DOF space robots with only flexible links or only flexible joints can be well achieved through the above control laws, the control approaches for the multi-DOF FLFJ space robots with joint friction are still few. Considering that flexible joints and flexible links can generate two different types of vibration, and joint friction may affect the efficiency of tracking, which make it difficult to realize the trajectory tracking control and vibration suppression quickly and precisely.

In this paper, the Jourdain’s velocity variation principle and the single direction recursive construction method are adopted to establish the dynamic model of a space robot with a 6-DOF FLFJ manipulator with joint friction. This can simplify the dynamic equations and improve the computation efficiency compared to the Lagrange method and the New-Euler method. In the dynamic model, the flexible joint is simplified as a spring-damping system and the friction can be described by the Coulomb friction model. Besides, to achieve trajectory tracking and vibration suppression for robots, a trajectory of joint motion is given and a controller with friction compensation is designed based on the computed torque method.

The paper is organized as follows: Sect. 2 concisely describes the process of modeling, including that the kinematic and dynamic model of single flexible bodies, establishing a flexible-joint model, the kinematical recursive relations of the system, the calculation of joint friction, and assembling the dynamic equations of the system. Section 3 gives a trajectory planning method and illustrates the controller design for trajectory tracking. Simulations and comparable analysis for a space robot are given in Sect. 4. In the end, Sect. 5 presents conclusions.

2 Dynamics Modeling of the System

In this paper, a 6-DOF flexible space robot shown in Fig. 1 is studied. The robot is composed of a rigid spacecraft Base, two rigid links Links 1 and 2, and two flexible links Links 3 and 4. Lv 1 and Lv 2 are two massless bodies. Link 1 is connected to Base by a Cardan joint, and the θ1 and θ2 are the joint angles along Axes 1 and 2 respectively. Two revolute joints respectively connected Links 1 and 2, and Links 2 and 3, with θ3 and θ4 to be the joint angle along Axes 3 and 4. Besides, Link 4 is attached to Link 3 by a Cardan joint whose joint angle along the Axes 5 and 6 are θ5 and θ6. In this section, the dynamic equations are established with the single direction construction method and Jourdain’s velocity variation principle. The absolute reference frame O-XYZ is fixed on the origin O. The body-fixed frame O-XYZ, which parallels to the absolute reference frame, is fixed on body base, where the origin O is the mass center of base. The floating frame O1-X1Y1Z1, O2-X2Y2Z2, O3-X3Y3Z4, O4-X4Y4Z4 are fixed on Links 1–4, respectively, and the origins O1, O2, O3, and O4 are on the mass centers of the four links.

Fig. 1
figure 1

6-DOF flexible space robot model

In this section, a dynamic model of a 6-DOF FLFJ space robot with joint friction is established. Section 2.1 depicts the model of a single flexible body with the assumption modal method. Then in Sect. 2.2, the Spong model [2] is adopted to simplify flexible joints. The kinematical recursive relation of the system is demonstrated with the single direction recursive construction method in Sect. 2.3. Sections 2.4 and 2.5 illustrate the calculation procedure of joint friction. In Sect. 2.6, the dynamic equations of the system are obtained by the Jourdain’s velocity variation principle.

2.1 Kinematic and Dynamic Equations of a Single Flexible Body

For the system composed of N bodies, the flexible body Bi (i = 1, 2, …, N) can be divided into li elements, as shown in Fig. 2. The mass matrix of the kth node can be expressed as \(\varvec{M}_{i}^{k} = \left[ {\begin{array}{*{20}c} {\varvec{m}_{i}^{k} } & {\mathbf{0}} \\ {\mathbf{0}} & {\varvec{J}_{i}^{k} } \\ \end{array} } \right] \in \Re^{6 \times 6}\), \(k = 1\;, \ldots ,\;l_{n}\), where \(\varvec{m}_{i}^{k} \in \Re^{3 \times 3}\) is the translational mass matrix and \(\varvec{J}_{i}^{k} \in \Re^{3 \times 3}\) is the matrix of inertia moment of the kth node, \(l_{n}\) is the number of nodes of body Bi.

Fig. 2
figure 2

Single flexible body

As shown in Fig. 2, the floating frame \(\vec{\varvec{e}}^{i}\) is established at the point Ci, which is the mass center of the flexible body Bi. In addition, the vector \(\vec{\rho }_{i}^{{k_{0} }}\) and \(\vec{\rho }_{i}^{k}\) respectively represent the relative position of the node k before the deformation and after the deformation. The absolute position vector of the mass center Ci and the node k are \(\vec{r}_{i}\) and \(\vec{r}_{i}^{k}\), respectively. The vectors \(\vec{u}^{k}\) and \(\vec{\varphi }^{k}\) are the translational and rotational deformation vectors of node k, respectively. By the modal coordinates, they can be depicted as

$$\vec{u}_{i}^{k} = \vec{\varvec{\varPhi }}_{i}^{k} \varvec{a}_{i} ,\quad \vec{\varphi }_{i}^{k} = \vec{\varvec{\varPsi }}_{i}^{k} \varvec{a}_{i} ,$$
(1)

where \(\vec{\varvec{\varPhi }}_{i}^{k}\) and \(\vec{\varvec{\varPsi }}_{i}^{k}\) are the translational and rotational modal vector matrix of the node k, respectively; \(\varvec{a}_{i}\) is the modal coordinate vector of body Bi. Here assuming that s modes of body Bi are adopted, there is \(\vec{\varvec{\varPhi }}_{i}^{k} = [\vec{\phi }_{1}^{k} , \ldots ,\vec{\phi }_{s}^{k} ]\), \(\vec{\varvec{\varPsi }}_{i}^{k} = [\vec{\psi }_{1}^{k} , \ldots ,\;\vec{\psi }_{s}^{k} ]\), and \(\varvec{a}_{\varvec{i}} = [a_{1} , \ldots ,\;a_{s} ]^{\text{T}}\). The coordinate matrices of \(\vec{\varvec{\varPhi }}_{i}^{k}\) and \(\vec{\varvec{\varPsi }}_{i}^{k}\) in the absolute reference frame can be expressed as

$$\varvec{\varPhi}_{i}^{k} = {\mathbf{A}}_{i}\varvec{\varPhi}_{i}^{\prime k} ,\quad\varvec{\varPsi}_{i}^{k} = \varvec{A}_{i}\varvec{\varPsi}_{i}^{\prime k} ,$$
(2)

where Ai is the direction cosine matrix relating the floating frame \(\vec{\varvec{e}}^{i}\) and the absolute reference frame; \(\vec{\varvec{\varPhi }}_{i}^{\prime k}\) and \(\vec{\varvec{\varPsi }}_{1}^{\prime k}\) are the coordinate matrices of \({\vec{\mathbf{\varPhi }}}_{i}^{k}\) and \({\vec{\mathbf{\varPsi }}}_{i}^{k}\) in the floating frame \(\vec{\varvec{e}}^{i}\), which are both constant matrices.

As depicted in Fig. 2, the relation of relative vector and deformation of the kth node can be expressed as

$$\vec{\rho }_{i}^{k} = \vec{\rho }_{i}^{{k_{0} }} + \vec{u}_{i}^{k}.$$
(3)

The Eq. (3) can be expressed by the coordinate matrices in the floating frame as

$$\varvec{\rho}_{i}^{\prime k} =\varvec{\rho}_{i}^{{\prime k_{0} }} +\varvec{\varPhi}_{i}^{\prime k} \varvec{a}_{i} ,$$
(4)

and in the absolute frame as

$$\varvec{\rho}_{i}^{k} =\varvec{\rho}_{i}^{{k_{0} }} +\varvec{\varPhi}_{i}^{k} \varvec{a}_{i} .$$
(5)

The velocity and acceleration of the kth node in the floating frame are expressed as

$$\varvec{\upsilon}_{ir}^{\prime k} =\varvec{\varPhi}_{i}^{\prime k} \dot{\varvec{a}}_{i} ,\quad\varvec{\upsilon}_{ir}^{\prime k} =\varvec{\varPhi}_{i}^{\prime k} \varvec{\ddot{a}}_{i} .$$
(6)

Also, the absolute position vector of the kth node can be depicted as

$$\vec{r}_{i}^{k} = \vec{r}_{i} + \vec{\rho }_{i}^{k} .$$
(7)

The absolute velocity and acceleration of the kth node can be expressed as

$$\dot{\vec{r}}_{i}^{k} = \dot{\vec{r}}_{i} + \dot{\vec{\rho }}_{i}^{k} = \dot{\vec{r}}_{i} + \vec{\omega }_{i} \times \vec{\rho }_{i}^{k} + \vec{\upsilon }_{ir}^{k},$$
(8)
$$\ddot{\vec{r}}_{i}^{k} = \ddot{\vec{r}}_{i} + \ddot{\vec{\rho }}_{i}^{k} = \ddot{\vec{r}}_{i} + \dot{\vec{\omega }}_{i} \times \vec{\rho }_{i}^{k} + \dot{\vec{\upsilon }}_{ir}^{k} + 2 \times \vec{\omega }_{i} \times \vec{\upsilon }_{ir}^{k} + \vec{\omega }_{i} \times (\vec{\omega }_{i} \times \vec{\rho }_{i}^{k} ),$$
(9)

where \(\vec{\omega }\) and \(\dot{\vec{\omega }}\) are the angular velocity and acceleration vectors of the floating frame \(\vec{\varvec{e}}^{i}\) concerning the absolute reference frame, respectively; \(\vec{\upsilon }_{r}^{k}\) and \(\dot{\vec{\upsilon }}_{r}^{k}\) are the translational velocity and acceleration vectors of the node k in the floating frame \(\vec{\varvec{e}}^{i}\). Considering Eq. (5), the coordinate vectors of Eqs. (7)–(9) in the absolute reference frame can be expressed as

$$\varvec{r}_{i}^{k} = \varvec{r}_{i} +\varvec{\rho}_{i}^{k} = \varvec{r}_{i} +\varvec{\rho}_{i}^{{k_{0} }} +\varvec{\varPhi}{}_{i}^{k} \varvec{a}_{i},$$
(10)
$$\dot{\varvec{r}}_{i}^{k} = \dot{\varvec{r}}_{i} + \dot{\varvec{\rho }}_{i}^{k} = \dot{\varvec{r}}_{i} - \tilde{\varvec{\rho }}_{i}^{k}\varvec{\omega}_{i} +\varvec{\varPhi}_{i}^{k} \dot{\varvec{a}}_{i},$$
(11)
$$\varvec{\ddot{r}}_{i}^{k} = \varvec{\ddot{r}}_{i} + \varvec{\ddot{\rho }}_{i}^{k} = \varvec{\ddot{r}}_{i} - \tilde{\varvec{\rho }}_{i}^{k} \dot{\varvec{\omega }}_{i} +\varvec{\varPhi}_{i}^{k} \varvec{\ddot{a}}_{i} + 2\tilde{\varvec{\omega }}_{i}\varvec{\varPhi}_{i}^{k} \dot{\varvec{a}}_{i} + \tilde{\varvec{\omega }}_{i} \tilde{\varvec{\omega }}_{i}\varvec{\rho}_{i}^{k} ,$$
(12)

where \(\tilde{\varvec{\omega }}_{i}\) can be defined as

$$\tilde{\varvec{\omega }}_{i} = - \tilde{\varvec{\omega }}_{i}^{\text{T}} = \left[ {\begin{array}{*{20}c} 0 & { - \omega_{i3} } & {\omega_{i2} } \\ {\omega_{i3} } & 0 & { - \omega_{i1} } \\ { - \omega_{i2} } & {\omega_{i1} } & 0 \\ \end{array} } \right] \in \Re^{3 \times 3} ,\quad\varvec{\omega}_{i} = \left[ {\begin{array}{*{20}c} {\omega_{i1} } \\ {\omega_{i2} } \\ {\omega_{i3} } \\ \end{array} } \right].$$
(13)

The Eqs. (11) and (12) can be written in a matrix form as

$$\dot{\varvec{r}}_{i}^{k} = \varvec{B}_{i}^{k}\varvec{\upsilon}_{iB} ,\quad \varvec{\ddot{r}}_{i}^{k} = \varvec{B}_{i}^{k} \dot{\varvec{\upsilon }}_{iB} +\varvec{\omega}_{i}^{k} ,$$
(14)

where

$$\varvec{B}_{i}^{k} = [\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{i}^{k} } & {\varvec{\varPhi}_{i}^{k} } \\ \end{array} ] \in \Re^{3 \times (6 + s)},$$
(15)
$$\varvec{\omega}_{i}^{k} = 2\tilde{\varvec{\omega }}_{i}\varvec{\varPhi}_{i}^{k} \dot{\varvec{a}}_{i} + \tilde{\varvec{\omega }}_{i} \tilde{\varvec{\omega }}_{i}\varvec{\rho}_{i}^{k} \in \Re^{3 \times 1},$$
(16)
$$\varvec{\upsilon}_{iB} = [\begin{array}{*{20}c} {\dot{\varvec{r}}_{i}^{\text{T}} } & {\varvec{\omega}_{i}^{\text{T}} } & {\dot{\varvec{a}}_{i}^{\text{T}} } \\ \end{array} ]^{\text{T}} \in \Re^{(6 + s) \times 1} .$$
(17)

The \(\varvec{\upsilon}_{iB}\) defined in Eq. (14) comprises the absolute velocity, the absolute acceleration and the modal velocity of body Bi in the floating coordinate. If the \(\varvec{\upsilon}_{iB}\) is ascertained, the velocity of nodes on body Bi can be obtained. And the acceleration of nodes can be solved when \(\varvec{\upsilon}_{iB}\) and \(\dot{\varvec{\upsilon }}_{iB}\) are known. Then the rotational coordinate vectors relation between the kth and body Bi is derived.

The absolute angular velocity and acceleration of the kth node are

$$\vec{\omega }_{i}^{k} = \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {\omega }_{i} + \vec{\omega }_{ir}^{k},$$
(18)
$$\dot{\vec{\omega }}_{i}^{k} = \dot{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {\omega } }_{i} + \dot{\vec{\omega }}_{ir}^{k} + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {\omega }_{i} \times \vec{\omega }_{ir}^{k} ,$$
(19)

where \(\vec{\omega }_{ir}^{k}\) and \(\dot{\vec{\omega }}_{ir}^{k}\) are the angular velocity and acceleration vectors of the kth node concerning the floating frame \(\vec{\varvec{e}}^{i}\), and their coordinate matrices in the absolute frame can be expressed as

$$\varvec{\omega}_{ir}^{k} =\varvec{\varPsi}_{i}^{k} \dot{\varvec{a}}_{i} ,\quad \dot{\varvec{\omega }}_{ir}^{k} =\varvec{\varPsi}_{i}^{k} \varvec{\ddot{a}}_{i} .$$
(20)

Substituting Eqs. (20) into (18) and (19) the coordinate vectors in the absolute reference frame can be given by

$$\varvec{\omega}_{i}^{k} =\varvec{\omega}_{i} +\varvec{\varPsi}_{i}^{k} \dot{\varvec{a}}_{i},$$
(21)
$$\dot{\varvec{\omega }}_{i}^{k} = \dot{\varvec{\omega }}_{i} +\varvec{\varPsi}_{i}^{k} \varvec{\ddot{a}}_{i} + \varvec{\tilde{\omega }\varPsi }^{k} \varvec{\ddot{a}}_{i} .$$
(22)

The above two equations can be rewritten in a matrix form as

$$\varvec{\omega}_{i}^{k} = \varvec{R}_{i}^{k}\varvec{\upsilon}_{iB} ,\quad \dot{\varvec{\omega }}_{i}^{k} = \varvec{R}_{i}^{k} \dot{\varvec{\upsilon }}_{iB} +\varvec{\tau}_{i}^{k} ,$$
(23)

where \(\varvec{R}_{i}^{k} = [\begin{array}{*{20}c} {\mathbf{0}} & {\varvec{I}_{3} } & {\varvec{\varPsi}_{i}^{k} } \\ \end{array} ] \in \Re^{3 \times (6 + s)}\), \(\varvec{\tau}_{i}^{k} = \tilde{\varvec{\omega }}_{i}\varvec{\varPsi}_{i}^{k} \dot{\varvec{a}}_{i} \in \Re^{3 \times 1}\). Equations (23) are the rotational coordinate velocity and acceleration relation between the kth node and body Bi. From Eqs. (14) and (23), we can obtain the relation between the generalized velocity of the nodes and the generalized velocity of body Bi, which can be expressed as

$$\varvec{\upsilon}_{i}^{k} =\varvec{\varPi}_{i}^{k}\varvec{\upsilon}_{iB},$$
(24)
$$\dot{\varvec{\upsilon }}_{i}^{k} =\varvec{\varPi}_{i}^{k} \dot{\varvec{\upsilon }}_{iB} + \left[ {\begin{array}{*{20}c} {\varvec{\omega}_{i}^{k} } \\ {\varvec{\tau}_{i}^{k} } \\ \end{array} } \right],$$
(25)

where \(\varvec{\upsilon}_{i}^{k} = [\begin{array}{*{20}c} {\dot{\varvec{r}}_{i}^{{k{\text{T}}}} } & {\varvec{\omega}_{i}^{{k{\text{T}}}} } \\ \end{array} ]^{\text{T}} \in \Re^{6 \times 1}\), \(\varvec{\varPi}_{i}^{k} = \left[ {\begin{array}{*{20}c} {\varvec{B}_{i}^{k} } \\ {\varvec{R}_{i}^{k} } \\ \end{array} } \right] \in \Re^{6 \times (6 + s)}\). Thus, the kinematic relation of a single flexible body has been demonstrated. Here according to the Jourdain’s velocity variation principle, the dynamic equation of body Bi can be written as

$$\mathop \sum \limits_{k = 1}^{{l_{n} }} \delta\varvec{\upsilon}_{i}^{{k{\text{T}}}} \left( {\varvec{M}_{i}^{k} \dot{\varvec{\upsilon }}_{i}^{k} + \varvec{F}_{i}^{k} } \right) - \delta \dot{\varvec{\varepsilon }}_{i}^{{k{\text{T}}}}\varvec{\sigma}_{i}^{k} = 0,$$
(26)

where \(\varvec{F}_{i}^{k}\) are the resultant external force and resultant external torque on the kth node; \(\varvec{\varepsilon}_{i}^{k}\) and \(\varvec{\sigma}_{i}^{k}\) are the strain and stress of the node k, respectively. \(\delta \dot{\varvec{\varepsilon }}_{i}^{{k{\text{T}}}}\varvec{\sigma}_{i}^{k}\) is the virtual power of node stress of the kth node. The sum of virtual power of node stress of body Bi can be calculated by

$$\mathop \sum \limits_{k = 1}^{{l_{n} }} \delta \dot{\varvec{\varepsilon }}_{i}^{{k{\text{T}}}}\varvec{\sigma}_{i}^{k} = \delta \dot{\varvec{a}}_{i}^{\text{T}} (\varvec{C}_{a} \dot{\varvec{a}}_{i} + \varvec{K}_{a} \varvec{a}_{i} ),$$
(27)

where \(\varvec{C}_{a} \in \Re^{s \times s}\) is the modal damping, and \(\varvec{K}_{a} \in \Re^{s \times s}\) is the stiffness matrix of body Bi.

Substituting Eqs. (24) (25) and (27) into (26), we can obtain

$$\delta\varvec{\upsilon}_{iB}^{\text{T}} ( - \varvec{M\dot{\upsilon }}_{iB} - \varvec{f}_{i}^{\omega } + \varvec{f}_{i}^{o} - \varvec{f}_{i}^{u} ) = 0,$$
(28)

where

$$\varvec{M}_{i} = \sum\limits_{k = 1}^{{l_{n} }} {\varvec{\varPi}_{i}^{{k{\text{T}}}} \varvec{M}_{i}^{k}\varvec{\varPi}_{i}^{k} } \in \Re^{(6 + s) \times (6 + s)},$$
(29)
$$\varvec{f}_{i}^{\omega } = \sum\limits_{k = 1}^{{l_{n} }} {\varvec{\varPi}_{i}^{{k{\text{T}}}} \varvec{M}_{i}^{k} \left[ {\begin{array}{*{20}c} {\varvec{\omega}_{i}^{k} } \\ {\varvec{\tau}_{i}^{k} } \\ \end{array} } \right] \in \Re^{(6 + s) \times 1} },$$
(30)
$$\varvec{f}_{i}^{o} = \sum\limits_{k = 1}^{{l_{n} }} {\varvec{\varPi}_{i}^{{k{\text{T}}}} \varvec{F}_{i}^{k} } \in \Re^{(6 + s) \times 1},$$
(31)
$$\varvec{f}_{i}^{u} = [\begin{array}{*{20}c} {{\mathbf{0}}^{\text{T}} } & {{\mathbf{0}}^{\text{T}} } & {(\varvec{C}_{a} \dot{\varvec{a}} + \varvec{K}_{a} \varvec{a})^{\text{T}} } \\ \end{array} ]^{\text{T}} \in \Re^{(6 + s) \times 1} ,$$
(32)

where \(\varvec{M}_{i}\), \(\varvec{f}_{i}^{\omega }\), \(\varvec{f}_{i}^{o}\) and \(\varvec{f}_{i}^{u}\) are the generalized mass, the generalized inertia force, the generalized external force and the generalized elastic force of body Bi.

2.2 Flexible Revolute Joint Model

Previously, joints are regarded as rigid bodies to simplify the dynamic model. However, when the robot has multi-degrees of freedom, neglecting joint flexibility could affect the accuracy of simulation results inevitably. Therefore, to get a precise flexible space robot dynamic model, joint flexibility is considered in this paper.

Spong [2] firstly proposed a flexible joint model, which efficiently described joint flexibility. According to Spong’s model, the elasticity of the ith joint is described by a linear torsional spring with the stiffness ki and the damping ci. And, the additional degrees of freedom are introduced by the elastic coupling of the motor shaft to the links. A simplified model of a flexible joint is shown in Fig. 3a, b. The rotor of each actuator is a fictitious body, which is regarded as an additional rigid body with the equivalent moment of inertia after deceleration in the system. Thereby, the degrees of freedom of the robot increases. The angle of the joint connected Rotor i and body Bi−1 is \(\theta_{i}^{ - }\), while the angle of the joint connected Rotor i and body Bi is \(\theta_{i}^{ + }\), which are along the same rotational axis. So the angle of the ith flexible joint can be expressed as

$$\theta_{{_{i} }}^{{}} = \theta_{i}^{ - } + \theta_{i}^{ + } \quad \left( {i = 1, \, 2, \ldots ,N} \right).$$
(33)
Fig. 3
figure 3

Joint model: a rigid joint model; b flexible joint model

Similarly, corresponding generalized coordinate q also can be divided into 2 parts as \(q_{2i - 1}\) and \(q_{2i}\) (i = 1, 2, …, N), which respectively represent \(\theta_{i}^{ - }\) and \(\theta_{i}^{ + }\). \(\dot{q}_{2i - 1}\) and \(\dot{q}_{2i}\). respectively represents \(\dot{\theta }_{i}^{ - }\) and \(\dot{\theta }_{i}^{ + }\). Therefore, the elastic torque of the ith joint can be expressed by the generalized coordinates as

$$f_{i}^{s} = k_{i} q_{2i} + c_{i} \dot{q}_{2i} \quad \left( {i = 1, \, 2, \ldots ,N} \right),$$
(34)

where ki and ci is the equivalent stiffness and damping of the ith joint, respectively. \(f_{2i}^{s}\) is the generalized force related to generalized coordinate q2i, so the virtual power of elastic torque acting on the system can be obtained

$$\Delta P^{s} = \sum\limits_{i = 1}^{N} {\Delta \dot{q}_{ 2i} f_{ 2i}^{s} } = \Delta \dot{\varvec{q}}^{T} \varvec{f}_{s}^{ey} .$$
(35)

For the space robot shown in Fig. 1, body B1 is the base. So \(q_{1} \sim q_{3}\) and \(q_{4} \sim q_{6}\) respectively represent the translation coordinates and the rotational coordinates of the base. Considering the joint flexibility, 6 rotors are added into the system compared to the original model, as shown in Fig. 4. The ith axis, the ith rotor and the ith spring converge at the ith point, which represents the ith flexible joint. Thereby, the degrees of freedom of the manipulator increase to 12. The rotational coordinates of the flexible joints in the robot are respectively \(q_{7} \sim q_{18}\). It can be obtained that \(\varvec{q} = [q_{1} , \ldots ,q_{18} ]^{\text{T}} .\).

Fig. 4
figure 4

6-DOF FLFJ space robot model

2.3 Kinematical Recursive Relations

It can be seen from Fig. 4 that the space robot system consists of 13 bodies, where Base, Link 3, Link 4, Rotor 1–6, Lv 1 and Lv 2 are rigid, and Link 1 and Link 2 are flexible. In this section, the kinematical relation of two adjacent bodies is derived. We concisely demonstrate the relation of a flexible body and a rigid body. Once neglecting the flexible items in the relation of a rigid body and a flexible body derived before, the relation of two adjacent rigid bodies can be obtained.

The schematic diagram of a rigid body and a flexible body is shown in Fig. 5. Firstly, the coordinate frames of this paper are introduced as follows. As shown in Fig. 5, body Bj is rigid and body Bi is flexible. The absolute reference frame O-XYZ is established on body B0 and O is the origin. The floating frame \(\vec{\varvec{e}}^{i}\) is established on the mass center \(C_{i}\) of \(B_{i}\) before the deformation. The body fixed frame \(\vec{\varvec{e}}^{j}\) is established on the mass center \(C_{j}\) of Bj. The number of bodies and joints are regularly labeled [27], in other words, body Bi connects its inboard body Bj by the ith joint, as shown in Fig. 5, where \(Q_{i}\) and \(P_{i}\) are the definition points of the ith joint on body Bj and body Bi. The point \(P_{i0}\) is the joint definition point before the deformation. The local coordinate frame \(\vec{\varvec{e}}_{{P_{i0} }}^{i}\) is built on the point \(P_{i0}\), which parallels \(\vec{\varvec{e}}^{i}\). The frames \(\vec{\varvec{e}}_{{P_{i} }}^{i}\) and \(\vec{\varvec{e}}_{{Q_{i} }}^{i}\) are the local frames of the points \(P_{i}\) and \(Q_{i}\). The local frames of the ith joint are represented by \(\vec{\varvec{e}}_{h}^{i}\) and \(\vec{\varvec{e}}_{{h_{0} }}^{i}\), which are fixed on the bodies Bi and Bj, and the origins of the two frames are \(P_{i}\) and \(Q_{i}\), respectively.

Fig. 5
figure 5

Schematic diagram of a rigid body and a flexible body

As shown in Fig. 5, \(\vec{h}_{i} = \overrightarrow {{Q_{i} P_{i} }}\) describes the relative translation of the ith joint, and \(\vec{\omega }_{ri}\) will be used to describe the relative revolution of the ith joint. As shown in Fig. 5, the absolute position of the mass center of body Bi can be expressed as

$$\varvec{r}_{i} = \varvec{r}_{j} +\varvec{\rho}_{j}^{{Q_{i} }} + \varvec{h}_{i} -\varvec{\rho}_{i}^{{P_{i} }} .$$
(36)

Taking the first derivative of Eq. (36) and considering Eq. (11), we have

$$\dot{\varvec{r}}_{i} = \dot{\varvec{r}}_{j} + ( - \tilde{\varvec{\rho }}_{j}^{{Q_{i} }} - \tilde{\varvec{h}}_{i} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} )\varvec{\omega}_{j} + (\varvec{H}_{i}^{{h{\text{T}}}} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} \varvec{H}_{i}^{{\varOmega {\text{T}}}} )\dot{\varvec{q}}_{i} + ( -\varvec{\varPhi}_{i}^{{P_{i} }} - \tilde{\varvec{\rho }}_{i}^{{P_{i} }}\varvec{\varPsi}_{i}^{{P_{i} }} )\dot{\varvec{a}}_{i} ,$$
(37)

where \(\varvec{\varPhi}_{i}^{{P_{i} }}\) are the translation modal vector matrix of the point \(P_{i}\) in the absolute reference frame, respectively; \(\varvec{\varPsi}_{i}^{{P_{i} }}\) are the rotational modal vector matrices; \(\dot{\varvec{a}}_{i}\) is the first derivative of modal coordinate vectors of Bi \(\varvec{q}_{i}\) is the vector of joint coordinates; \(\varvec{H}_{i}^{{\varOmega {\text{T}}}}\) and \(\varvec{H}_{i}^{{h{\text{T}}}}\) denote the rotational and translational kinematics relations of the ith joint, and those can be expressed as [27]

$$\varvec{H}_{i}^{{\varOmega {\text{T}}}} = \varvec{A}_{i}^{{h_{0} }} \varvec{H}_{i}^{{\prime \varOmega {\text{T}}}} ,\quad \varvec{H}_{i}^{{h{\text{T}}}} = \varvec{A}_{i}^{{h_{0} }} \varvec{H}_{i}^{{\prime h{\text{T}}}} ,$$
(38)

where \(\varvec{A}_{i}^{{h_{0} }}\) is the direction cosine matrix of \(\vec{\varvec{e}}_{{h_{0} }}^{i}\) concerning the absolute reference frame, \(\varvec{H}_{i}^{{\prime \varOmega {\text{T}}}}\) is the matrix whose non-zero columns are composed of the joint rotational axis vectors, \(\varvec{H}_{i}^{{\prime h{\text{T}}}}\) is the matrix whose nonzero columns are composed of the joint translational axis vectors.

The relation of angular velocities of Bi and Bi is

$$\varvec{\omega}_{i} =\varvec{\omega}_{j} +\varvec{\omega}_{ri} -\varvec{\omega}_{ri}^{{P_{i} }} ,$$
(39)

where \(\varvec{\omega}_{ri} = \varvec{H}_{i}^{{\varOmega {\text{T}}}} \dot{\varvec{q}}_{i}\) is the joint angular velocity; [27] \(\varvec{\omega}_{ri}^{{P_{i} }}\) is the angular velocities of the point \(P_{i}\) caused by the deformation, which can be expressed as

$$\varvec{\omega}_{ri}^{{P_{i} }} =\varvec{\varPsi}_{i}^{{P_{i} }} \dot{\varvec{a}}_{i} .$$
(40)

Considering Eqs. (40), (39) can be rewritten as

$$\varvec{\omega}_{i} =\varvec{\omega}_{j} + \varvec{H}_{i}^{{\varOmega {\text{T}}}} \dot{\varvec{q}}_{i} -\varvec{\varPsi}_{i}^{{P_{i} }} \dot{\varvec{a}}_{i} .$$
(41)

In the absolute reference frame, we define the coordinate vector of the configuration velocity of the two bodies as

$$\varvec{\upsilon}_{i} = [\begin{array}{*{20}c} {\dot{\varvec{r}}_{i}^{\text{T}} } & {\varvec{\omega}_{i}^{\text{T}} } & {\dot{\varvec{a}}_{i}^{\text{T}} } \\ \end{array} ]_{{}}^{\text{T}} ,\quad\varvec{\upsilon}_{j} = [\begin{array}{*{20}c} {\dot{\varvec{r}}_{j}^{\text{T}} } & {\varvec{\omega}_{j}^{\text{T}} } \\ \end{array} ]^{\text{T}},$$
(42)

and redefine the generalized coordinate vector of body Bi as \(\varvec{y}_{i} = [\begin{array}{*{20}c} {\varvec{q}^{\text{T}} } & {\varvec{a}^{\text{T}} } \\ \end{array} ]_{i}^{\text{T}}\), where \(\varvec{y}_{i} \in \Re^{{\delta_{i} + s_{i} }}\), \(\delta_{i}\) is the degree of freedom of the ith joint, \(\delta_{i} \le 6\), and \(s_{i}\) is the number of modal coordinates of body Bi. From Eqs. (37) and (41), the recursive relation of configuration velocity between body Bi and body Bj can be expressed as

$$\varvec{\upsilon}_{i} = \varvec{T}_{ij}\varvec{\upsilon}_{j} + \varvec{U}_{i} \dot{\varvec{y}}_{i} ,\quad j = \varvec{L}(i),\quad i = 1, \ldots ,\;N,$$
(43)

where

$$\varvec{T}_{ij} = \left[ {\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{j}^{{Q_{i} }} - \tilde{\varvec{h}}_{i} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} } \\ {\mathbf{0}} & {\varvec{I}_{3} } \\ {\mathbf{0}} & {\mathbf{0}} \\ \end{array} } \right] \in \Re^{{(6 + s_{i} ) \times 6}},$$
(44)
$$\varvec{U}_{i} = \left[ {\begin{array}{*{20}c} {\varvec{H}_{i}^{{h{\text{T}}}} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} \varvec{H}_{i}^{{\varOmega {\text{T}}}} } & { -\varvec{\varPhi}_{i}^{{P_{i} }} - \tilde{\varvec{\rho }}_{i}^{{P_{i} }}\varvec{\varPsi}_{i}^{{P_{i} }} } \\ {\varvec{H}_{i}^{{\varOmega {\text{T}}}} } & { -\varvec{\varPsi}_{i}^{{P_{i} }} } \\ {\mathbf{0}} & {\varvec{I}_{{s_{i} }} } \\ \end{array} } \right] \in \Re^{{(6 + s_{i} ) \times (\delta_{i} + s_{i} )}} .$$
(45)

Taking the derivation of Eq. (41), we have

$$\dot{\varvec{\omega }}_{i} = \dot{\varvec{\omega }}_{j} + \varvec{H}^{{\varOmega {\text{T}}}} \varvec{\ddot{q}}_{i} -\varvec{\varPsi}_{i}^{{P_{i} }} \varvec{\ddot{a}}_{i} +\varvec{\beta}_{i2} ,$$
(46)

where

$$\varvec{\beta}_{i2} = \tilde{\varvec{\omega }}_{j}\varvec{\omega}_{ri} - \tilde{\varvec{\omega }}_{i}\varvec{\omega}_{ri}^{{P_{i} }} +\varvec{\eta}_{i} ,$$
(47)

where \(\varvec{\eta}_{i} = \varvec{H}_{i}^{{\varOmega {\text{T}}}} \dot{\varvec{q}}_{i}\) [27].

By taking the derivative of Eq. (37) and considering Eq. (12), one can obtain

$$\varvec{\ddot{r}}_{i} = \varvec{\ddot{r}}_{j} + ( - \tilde{\varvec{\rho }}_{j}^{{Q_{i} }} - \tilde{\varvec{h}}_{i} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} )\dot{\varvec{\omega }}_{j} + (\varvec{H}_{i}^{{h{\text{T}}}} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} \varvec{H}_{i}^{{\varOmega {\text{T}}}} )\varvec{\ddot{q}}_{i} + ( -\varvec{\varPhi}_{i}^{{P_{i} }} - \tilde{\varvec{\rho }}_{i}^{{P_{i} }}\varvec{\varPsi}_{i}^{{P_{i} }} )\varvec{\ddot{a}}_{i} +\varvec{\beta}_{i1} ,$$
(48)

where

$$\varvec{\beta}_{i1} = \tilde{\varvec{\omega }}_{j} \tilde{\varvec{\omega }}_{j}\varvec{\rho}_{j}^{{Q_{i} }} + \tilde{\varvec{\omega }}_{j} \tilde{\varvec{\omega }}_{j} \varvec{h}_{i} - \tilde{\varvec{\omega }}_{i} \tilde{\varvec{\omega }}_{i}\varvec{\rho}_{i}^{{P_{i} }} + 2(\tilde{\varvec{\omega }}_{j}\varvec{\upsilon}_{ri} - \tilde{\varvec{\omega }}_{i}\varvec{\upsilon}_{ri}^{{P_{i} }} ) + \tilde{\varvec{\rho }}_{i}^{{P_{i} }}\varvec{\beta}_{i2} ,$$
(49)

where, \(\varvec{\upsilon}_{ri}^{{P_{i} }} =\varvec{\varPhi}_{i}^{{P_{i} }} \dot{\varvec{a}}_{i}\).

From Eqs. (43) (46) and (48), the recursive relation of generalized acceleration between the two bodies can be written as

$$\dot{\varvec{\upsilon }}_{i} = \varvec{T}_{ij} \dot{\varvec{v}}_{j} + \varvec{U}_{i} \varvec{\ddot{y}}_{i} +\varvec{\beta}_{i} ,\quad j = \varvec{L}(i),\quad i = 1, \ldots ,N,$$
(50)

where \(\varvec{\beta}_{i} = [\begin{array}{*{20}c} {\varvec{\beta}_{i1}^{\text{T}} } & {\varvec{\beta}_{i2}^{\text{T}} } & {{\mathbf{0}}^{\text{T}} } \\ \end{array} ]^{\text{T}} \in \Re^{{(6 + s_{i} ) \times 1}}\).

As deduced above, we obtain the kinematical recursive relations of generalized velocity and generalized acceleration of a rigid body and a flexible body. Similarly, the kinematical recursive relations of two adjacent rigid bodies can be obtained. For this case, \(\varvec{y}_{k} = \varvec{q}_{k}\), \(k = i,j\), the matrices \(\varvec{T}_{ij}\), \(\varvec{U}_{i}\) and \(\varvec{\beta}_{i}\) can be expressed as

$$\varvec{T}_{ij} = \left[ {\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{j}^{{Q_{i} }} - \tilde{\varvec{h}}_{i} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} } \\ {\mathbf{0}} & {\varvec{I}_{3} } \\ \end{array} } \right] \in \Re^{6 \times 6},$$
(51)
$$\varvec{U}_{i} = \left[ {\begin{array}{*{20}c} {\varvec{H}_{i}^{{h{\text{T}}}} + \tilde{\varvec{\rho }}_{i}^{{P_{i} }} \varvec{H}_{i}^{{\varOmega {\text{T}}}} } \\ {\varvec{H}_{i}^{{\varOmega {\text{T}}}} } \\ \end{array} } \right] \in \Re^{{6 \times \delta_{i} }},$$
(52)
$$\varvec{\beta}_{i} = [\begin{array}{*{20}c} {\varvec{\beta}_{i1}^{\text{T}} } & {\varvec{\beta}_{i2}^{\text{T}} } \\ \end{array} ]^{\text{T}} \in \Re^{6 \times 1} ,$$
(53)

where

$$\varvec{\beta}_{i1} = \tilde{\varvec{\omega }}_{j} \tilde{\varvec{\omega }}_{j}\varvec{\rho}_{j}^{Q} - \tilde{\varvec{\omega }}_{i} \tilde{\varvec{\omega }}_{i}\varvec{\rho}_{i}^{P} + 2\tilde{\varvec{\omega }}_{j}\varvec{\upsilon}_{ri} + \tilde{\varvec{\rho }}_{i}^{P}\varvec{\beta}_{i2} ,\quad\varvec{\beta}_{i2} = \tilde{\varvec{\omega }}_{j}\varvec{\omega}_{ri} +\varvec{\eta}_{i} .$$
(54)

Below the kinematical recursive relation of the system is deduced. For a multibody system with N bodies, the relation can be expressed as

$$\left\{ \begin{aligned} & \varvec{\upsilon}_{i} = \sum\limits_{{k:B_{k} \le B_{i} }} {\varvec{G}_{ik} \dot{\varvec{y}}_{k} } \hfill \\ &\dot{\varvec{\upsilon }}_{i} = \sum\limits_{{k:B_{k} \le B_{i} }} {\varvec{G}_{ik} \varvec{\ddot{y}}_{k} } + \varvec{g}_{ik} \hfill \\ \end{aligned} \right.,\quad i = 1, \ldots ,\;N\;{\text{and}}\;k \ne 0,$$
(55)

where

$$\varvec{G}{}_{ik} = \left\{ \begin{aligned} \varvec{T}_{ij} \varvec{G}_{jk} \quad {\text{when}}\;\;B_{k} < B_{i} \hfill \\ \varvec{U}_{i} \quad \quad {\text{ when}}\;\;B_{k} = B_{i} \hfill \\ {\mathbf{0}}\quad \quad \,{\text{ when}}\;\;B_{k} \ne < B_{i} \hfill \\ \end{aligned} \right.,\quad (i,\;k = 1, \ldots ,N),$$
(56)
$$\varvec{g}_{ik} = \left\{ \begin{aligned} \varvec{T}_{ij} \varvec{g}_{jk} \quad {\text{when}}\;\;B_{k} < B_{i} \hfill \\\varvec{\beta}_{i} \quad \quad {\text{when}}\;\;B_{k} = B_{i} \hfill \\ {\mathbf{0}}\quad \quad {\text{ when}}\;\;B_{k} \ne < B_{i} \hfill \\ \end{aligned} \right.,\quad (i,\;k = 1, \ldots ,N).$$
(57)

In Eqs. (56) and (57), “\(B_{k} < B_{i}\)“ means that body Bk is on the path from the root body B0 to body Bi.”\(B_{k} = B_{i}\)“ represents that body Bk is body Bi and “\(B_{k} \ne < B_{i}\)“ means that body Bk is not on the way from the root body B0 to body Bi.

Writing Eq. (55) in a matrix form, we have

$$\left\{ \begin{aligned} & \varvec{\upsilon}= \varvec{G\dot{y}} \hfill \\ & \dot{\varvec{\upsilon }} = \varvec{G\ddot{y}} + \varvec{g\hat{I}}_{N} \hfill \\ \end{aligned} \right.,$$
(58)

where \(\varvec{\upsilon}= [\varvec{\upsilon}_{1}^{\text{T}} , \ldots ,\;\varvec{\upsilon}_{N}^{\text{T}} ]^{\text{T}}\) is the total vector of configuration velocity of the system and \(\hat{\varvec{I}}_{N} \in \Re^{N \times 1}\) is a N-dimensional vector with all elements being 1. The parameters \(\varvec{G}\) and \(\varvec{g}\) in Eq. (58) are

$$\varvec{G} = \left[ {\begin{array}{*{20}c} {\varvec{G}_{11} } & \cdots & {\varvec{G}_{1N} } \\ \vdots & \ddots & \vdots \\ {\varvec{G}_{N1} } & \cdots & {\varvec{G}_{NN} } \\ \end{array} } \right],\quad \varvec{g} = \left[ {\begin{array}{*{20}c} {\varvec{g}_{11} } & \cdots & {\varvec{g}_{1N} } \\ \vdots & \ddots & \vdots \\ {\varvec{g}_{N1} } & \cdots & {\varvec{g}_{NN} } \\ \end{array} } \right].$$
(59)

2.4 Revolute Joint Friction

In the on-orbit service, compared to the ground, circumstances of space are extremely complicated. The temperature can quickly alternate from negative several hundred centigrade to extremely high temperature in the space. The thermal expansion and contraction phenomenon of the joint material will aggravate the joint friction, which could affect the motion of space robots. So far, some space experiments suggest that the joint friction is more obvious in space than on the ground. Hence, joint friction in space robots attracts more attention.

In this paper, Coulomb friction model is utilized to describe the friction in joints. The friction force can 0. be denoted as

$$F^{f} = - {\text{sign}}(\upsilon )\mu F_{N} ,$$
(60)

where \(\upsilon\) is the relative velocity, \(\mu\) is the coefficient of sliding friction, \(F_{N}\) is the normal pressure. Then the geometric model of a revolute joint is shown in Fig. 6, where \(F_{x}\), \(F_{y}\), \(F_{z}\), \(T_{y}\) and \(T_{z}\) are the ideal constraint forces and ideal constraint moments at the joint coordinate frame \({\text{O}}_{r} - X_{r} Y_{r} Z_{r}\), respectively. The coordinate vector of ideal force and joint friction force can be expressed as

$$\varvec{F}_{r}^{c} = [F_{x} ,\;F_{y} ,\;F_{z} ,\;0,\;T_{y} ,\;T_{\text{z}} ]^{\text{T}} ,\quad \varvec{F}_{r}^{f} = [0,\;0,\;0,\;T_{f} ,\;0,\;0]^{\text{T}} .$$
(61)
Fig. 6
figure 6

Revolute joint model

With two adjacent bodies moving relatively, friction phenomenon could occur in joints. Joint friction moments are positively relative to the normal pressure in joints. The normal pressure is produced by the actions of the ideal constraint forces and the ideal constraint moments in joints. Next, calculation of joint friction is given.

The equivalent pressure by the axial constraint force is \(N_{1} = \left| {F_{x} } \right|\). The equivalent pressure by the transverse constraint force is \(N_{2} = \sqrt {F_{y}^{2} + F_{z}^{2} }\). So the Coulomb frictional moments are

$$T_{f}^{{N_{1} }} = \mu N_{1} R_{n},$$
(62)
$$T_{f}^{{N_{2} }} = \mu N_{2} R_{p} ,$$
(63)

where \(R_{n}\) is the friction arm and \(R_{p}\) is the pin radius.

The equivalent pressure of the rotational joint by the constraint moments is \(N_{3} = {{\sqrt {T_{y}^{2} + T_{z}^{2} } } \mathord{\left/ {\vphantom {{\sqrt {T_{y}^{2} + T_{z}^{2} } } {R_{b} }}} \right. \kern-0pt} {R_{b} }}\)where \(R_{b}\) is the bending reaction arm. The Coulomb frictional moment equivalent from the constraint moments is

$$T_{f}^{{N_{3} }} = \mu_{{}} N_{3} R_{p} .$$
(64)

From Eqs. (62) (63) and (64), the total Coulomb friction moment can be written as

$$T_{f} = T_{f}^{{N_{1} }} + T_{f}^{{N_{2} }} + T_{f}^{{N_{3} }} .$$
(65)

2.5 Virtual Power of Frictional Force in Joints

Joint friction is a function of the ideal constraint force of joints, which can be expressed by the Cartesian coordinates of systems due to the Newton–Euler theory. Depending on the relation of the generalized coordinates and Cartesian coordinates of the system, joint frictional force function can be denoted by the generalized coordinates. Below the relation between ideal constraint force and generalized coordinates is derived. Then the virtual power generated by frictional force is deduced, which will be introduced to assemble dynamic equations of the system in Sect. 2.6.

Figure 7 is a topology graph of a space robot system, and the nth joint connects the inner body Bn − 1 and the outer body Bn. If body Bn is flexible, the centroid dynamic equation based on the Newton–Euler theory and Eq. (28) can be written as

$$\varvec{F}_{n}^{c} + \varvec{F}_{n}^{f} = \varvec{F}_{n}^{a} + \varvec{F}_{n}^{\omega } - \varvec{F}_{n}^{o} + \varvec{F}_{n}^{u} - \varvec{F}_{n}^{oj} ,$$
(66)

where \(\varvec{F}_{n}^{c}\) and \(\varvec{F}_{n}^{f}\) are the ideal constraint force and the friction force of the nth joint, respectively; \(\varvec{F}_{n}^{a}\) and \(\varvec{F}_{n}^{\omega }\) denote the acceleration-dependent and velocity-dependent inertia forces of body Bn, respectively; \(\varvec{F}_{n}^{u}\) is the elastic force of body Bn; \(\varvec{F}_{n}^{oj}\) is the resultant constraint force of outboard joints; and \(\varvec{F}_{n}^{o}\) is the external force. If body Bn is rigid, the elastic force \(\varvec{F}_{n}^{u}\) equals a zero vector.

Fig. 7
figure 7

The topology structure of the space robot system

The ideal constraint force at the point \(P_{n}\) and the ideal constraint force at the point \(Q_{n}\) are respectively defined as \(\varvec{F}_{n}^{{cP_{n} }}\) and \(\varvec{F}_{n}^{{cQ_{n} }}\), which can be expressed as

$$\varvec{F}_{n}^{{cP_{n} }} = [\begin{array}{*{20}c} {\varvec{F}_{{nP_{n} }}^{{c{\text{T}}}} } & {\varvec{M}_{{nP_{n} }}^{{c{\text{T}}}} } \\ \end{array} ]^{\text{T}} \in \Re^{6 \times 1} ,\quad \varvec{F}_{n}^{{cQ_{n} }} = [\begin{array}{*{20}c} {\varvec{F}_{{nQ_{n} }}^{{c{\text{T}}}} } & {\varvec{M}_{{nQ_{n} }}^{{c{\text{T}}}} } \\ \end{array} ]^{\text{T}} \in \Re^{6 \times 1} ,$$
(67)

where \(\varvec{F}_{{nP_{n} }}^{c}\) and \(\varvec{M}_{{nP_{n} }}^{c}\) are the coordinate vector form of \(\vec{F}_{{nP_{n} }}^{c}\) and \(\vec{M}_{{nP_{n} }}^{c}\) in the absolute reference frame as shown in Fig. 7, respectively; \(\varvec{F}_{{nQ_{n} }}^{c}\) and \(\varvec{M}_{{nQ_{n} }}^{c}\) are the coordinate vector form of \(\vec{F}_{{nQ_{n} }}^{c}\) and \(\vec{M}_{{nQ_{n} }}^{c}\), respectively. The relation between \(\varvec{F}_{n}^{{cP_{n} }}\) and \(\varvec{F}_{n}^{{cQ_{n} }}\) is

$$\varvec{F}_{n}^{{cP_{n} }} = - \varvec{F}_{n}^{{cQ_{n} }} .$$
(68)

The joint friction force at the point \(P_{n}\) is defined as \(\varvec{F}_{n}^{{fP_{n} }}\), and the joint friction force at the point \(Q_{n}\) is denoted as \(\varvec{F}_{n}^{{fQ_{n} }}\). The relation of them is

$$\varvec{F}_{n}^{{cP_{n} }} = - \varvec{F}_{n}^{{cQ_{n} }} .$$
(69)

Based on the Jourdain’s velocity variation principle, the relation of \(\varvec{F}_{n}^{c}\), \(\varvec{F}_{n}^{f}\), \(\varvec{F}_{n}^{{cP_{n} }}\) and \(\varvec{F}_{n}^{{fP_{n} }}\) can be expressed as

$$\Delta P_{n}^{{P_{n} }} = \Delta\varvec{\upsilon}_{n}^{\text{T}} (\varvec{F}_{n}^{c} + \varvec{F}_{n}^{f} ) = \Delta\varvec{\upsilon}_{n}^{{P_{n} {\text{T}}}} (\varvec{F}_{n}^{{cP_{n} }} + \varvec{F}_{n}^{{fP_{n} }} ),$$
(70)

where \(\Delta P_{n}^{{P_{n} }}\) represents the sum of virtual power of the ideal constraint force and joint friction of the joint n, \(\varvec{\upsilon}_{n}\) is the velocity of the mass center Cn of body Bn in the absolute reference frame, \(\varvec{\upsilon}_{n}^{{P_{n} }}\) is the velocity of the point \(P_{n}\) in the absolute reference frame.

From Fig. 7, we have

$$\varvec{r}_{n}^{{P_{n} }} = \varvec{r}_{n} +\varvec{\rho}_{n}^{{P_{n} }},$$
(71)
$$\varvec{\omega}_{n}^{{P_{n} }} =\varvec{\omega}_{n} +\varvec{\omega}_{ri}^{{P_{n} }} +\varvec{\varPsi}_{n}^{{P_{n} }} \dot{\varvec{a}}_{n} .$$
(72)

Taking the derivative of \(\varvec{r}_{n}^{{P_{n} }}\), one can obtain

$$\dot{\varvec{r}}_{n}^{{P_{n} }} = \dot{\varvec{r}}_{n} + \dot{\varvec{\rho }}_{n}^{{P_{n} }} = \dot{\varvec{r}}_{n} + \tilde{\varvec{\rho }}_{n}^{{P_{n} }}\varvec{\omega}_{n} +\varvec{\varPhi}_{n}^{{P_{n} }} \dot{\varvec{a}}_{n} .$$
(73)

Equations (72) and (73) can be denoted as

$$\varvec{\upsilon}_{n}^{Pn} = \varvec{Y}_{n}^{{P_{n} {\text{T}}}}\varvec{\upsilon}_{n},$$
(74)

where

$$\varvec{\upsilon}_{n}^{Pn} = [\begin{array}{*{20}c} {\dot{\varvec{r}}_{n}^{{P_{n} {\text{T}}}} } & {\varvec{\omega}_{n}^{{P_{n} {\text{T}}}} } \\ \end{array} ]^{\text{T}} \in \Re^{6 \times 1} ,\quad \varvec{Y}_{n}^{{P_{n} }} = \left[ {\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{n}^{{P_{n} }} } & {\varvec{\varPhi}_{n}^{{P_{n} }} } \\ {\mathbf{0}} & {\varvec{I}_{3} } & {\varvec{\varPsi}_{n}^{{P_{n} }} } \\ \end{array} } \right]^{\text{T}} \in \Re^{{(6 + s_{n} ) \times 6}} .$$
(75)

Substitute Eqs. (74) into (70) to obtain

$$\varvec{F}_{n}^{c} + \varvec{F}_{n}^{f} = \varvec{Y}_{n}^{{P_{n} }} (\varvec{F}_{n}^{{cP_{n} }} + \varvec{F}_{n}^{{fP_{n} }} ) = \varvec{Y}_{n}^{{P_{n} }} \varvec{A}_{n}^{{P_{n} }} (\varvec{F}_{n}^{{\prime cP_{n} }} + \varvec{F}_{n}^{{\prime fP_{n} }} ),$$
(76)

where \(\varvec{F}_{n}^{{\prime cP_{n} }}\) and \(\varvec{F}_{n}^{{\prime fP_{n} }}\) are the coordinate matrices of \({\mathbf{F}}_{n}^{{cP_{n} }}\) and \({\mathbf{F}}_{n}^{{fP_{n} }}\) in frame \(\vec{\varvec{e}}_{h}^{n}\), and \(\varvec{A}_{n}^{{P_{n} }}\) is the direction cosine matrix of \(\vec{\varvec{e}}_{h}^{n}\) concerning the absolute reference frame O-XYZ.

Substituting Eqs. (76) into (66), one can be obtained

$$\varvec{F}_{n}^{{\prime cP_{n} }} + \varvec{F}_{n}^{{\prime fP_{n} }} = (\varvec{Y}_{n}^{{P_{n} }} \varvec{A}_{n}^{{P_{n} }} )^{ + } (\varvec{F}_{n}^{a} + \varvec{F}_{n}^{\omega } - \varvec{F}_{n}^{o} + \varvec{F}_{n}^{u} - \varvec{F}_{n}^{oj} ),$$
(77)

where \((\varvec{Y}_{n}^{{P_{n} }} \varvec{A}_{n}^{{P_{n} }} )^{ + }\) is the Moore–Penrose pseudo-inverse matrix of \(\varvec{Y}_{n}^{{P_{n} }} \varvec{A}_{n}^{{P_{n} }}\). Equation (67) is the dynamic equation of body Bn about the joint point Pn in the \(\vec{\varvec{e}}_{h}^{n}\) frame. Considering the joint is a revolute joint in this paper and using Eq. (61), we have

$$\varvec{F}_{n}^{{\prime cP_{n} }} = [F_{nx}^{{cP_{n} }} ,\;F_{ny}^{{cP_{n} }} ,\;F_{nz}^{{cP_{n} }} ,\;0,\;T_{ny}^{{cP_{n} }} ,\;T_{nz}^{{cP_{n} }} ]^{\text{T}} ,\quad \varvec{F}_{n}^{{\prime fP_{n} }} = [0,\;0,\;0,\;T_{n}^{{fP_{n} }} ,\;0,\;0]^{\text{T}} ,$$
(78)

where \(F_{nx}^{{cP_{n} }}\), \(F_{ny}^{{cP_{n} }}\), \(F_{nz}^{{cP_{n} }}\), \(T_{ny}^{{cP_{n} }}\) and \(T_{nz}^{{cP_{n} }}\) are the items of \(\varvec{F}_{n}^{{\prime cP_{n} }}\) in three axes of the frame \(\vec{\varvec{e}}_{h}^{n}\), and \(T_{n}^{{fP_{n} }}\) is the joint friction torque.

Due to Eq. (77), the dynamic equation of body Bn − 1 can be given as

$$\varvec{F}_{n - 1}^{{\prime cP_{n - 1} }} + \varvec{F}_{n - 1}^{{\prime fP_{n - 1} }} = (\varvec{Y}_{n - 1}^{{P_{n - 1} }} {\mathbf{A}}_{n - 1}^{{P_{n - 1} }} )^{ + } (\varvec{F}_{n - 1}^{a} + \varvec{F}_{n - 1}^{\omega } - \varvec{F}_{n - 1}^{o} + \varvec{F}_{n - 1}^{u} - \varvec{F}_{n - 1}^{oj} ).$$
(79)

As shown in Fig. 7, the joint n is the only one external joint of body Bn − 1, so \(\varvec{F}_{n - 1}^{oj}\) can be expressed as

$$\Delta\varvec{\upsilon}_{n - 1}^{\text{T}} \varvec{F}_{n - 1}^{oj} = \Delta\varvec{\upsilon}_{n - 1}^{{Q_{n} {\text{T}}}} (\varvec{F}_{n}^{{cQ_{n} }} + \varvec{F}_{n}^{{fQ_{n} }} ).$$
(80)

Similar to Eq. (74), we have

$$\varvec{\upsilon}_{n - 1}^{{Q_{n} }} = \varvec{Y}_{n - 1}^{{Q_{n} {\text{T}}}}\varvec{\upsilon}_{n - 1} ,$$
(81)

where \(\varvec{\upsilon}_{n - 1}^{{Q_{n} }} = \left[ {\begin{array}{*{20}c} {\varvec{r}_{n - 1}^{{Q_{n} }} } \\ {\varvec{\omega}_{n - 1}^{{Q_{n} }} } \\ \end{array} } \right] \in \Re^{6 \times 1}\), \(\varvec{Y}_{n - 1}^{{Q_{n} }} = \left[ {\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{n - 1}^{{Q_{n} }} } & {\varvec{\varPhi}_{n - 1}^{{Q_{n} }} } \\ {\mathbf{0}} & {\varvec{I}_{3} } & {\varvec{\varPsi}_{n - 1}^{{Q_{n} }} } \\ \end{array} } \right]^{\text{T}} \in \Re^{{(6 + \delta_{n - 1} ) \times 6}}\).

Substituting Eqs. (81) into (80), it can be obtained

$$\varvec{F}_{n - 1}^{oj} = \varvec{Y}_{n - 1}^{{Q_{n} }} (\varvec{F}_{n}^{{cQ_{n} }} + \varvec{F}_{n}^{{fQ_{n} }} ).$$
(82)

Substituting Eqs. (82) into (77), the dynamic equation of body Bn − 1 on the joint point Pn − 1 in the frame \(\vec{\varvec{e}}_{h}^{n - 1}\) can be gotten.

Similarly, the dynamic equations of Bn − 2 − B1 in turns are

$$\begin{array}{*{20}l} {\varvec{F}_{n - 2}^{{\prime cP_{n - 2} }} + \varvec{F}_{n - 2}^{{\prime fP_{n - 2} }} = (\varvec{Y}_{n - 2}^{{P_{n - 2} }} \varvec{A}_{n - 2}^{{P_{n - 2} }} )^{ + } (\varvec{F}_{n - 2}^{a} + \varvec{F}_{n - 2}^{\omega } - \varvec{F}_{n - 2}^{o} + \varvec{F}_{n - 2}^{u} - \varvec{F}_{n - 2}^{oj} )}, \hfill \\ \vdots \hfill \\ {\varvec{F}_{1}^{{\prime cP_{1} }} + \varvec{F}_{1}^{{\prime fP_{1} }} = (\varvec{Y}_{1}^{{P_{1} }} \varvec{A}_{1}^{{P_{1} }} )^{ + } (\varvec{F}_{1}^{a} + \varvec{F}_{1}^{\omega } - \varvec{F}_{1}^{o} + \varvec{F}_{1}^{u} - \varvec{F}_{1}^{oj} )} ,\hfill \\ \end{array}$$
(83)

where

$$\begin{array}{*{20}l} {\varvec{F}_{n - 2}^{oj} = \varvec{Y}_{n - 2}^{{Q_{n - 1} }} (\varvec{F}_{n - 1}^{{cQ_{n - 1} }} + \varvec{F}_{n - 1}^{{fQ_{n - 1} }} )} ,\hfill \\ \vdots \hfill \\ {\varvec{F}_{1}^{oj} = \varvec{Y}_{1}^{{Q_{2} }} (\varvec{F}_{2}^{{cQ_{2} }} + \varvec{F}_{2}^{{fQ_{2} }} )}. \hfill \\ \end{array}$$
(84)

By Eq. (65), the joint friction of body Bn − 2 − B1 and \(\varvec{F}_{n}^{{\prime cP_{n} }}\) can be expressed as

$$T_{n - 2}^{{fP_{n - 2} }} = T_{f}^{n - 2} , \ldots ,T_{1}^{{fP_{1} }} = T_{f}^{1},$$
(85)
$$\varvec{F}_{n - 2}^{{\prime fP_{n} }} = [0,\;0,\;0,T_{f}^{n - 2} ,0,\;0]^{\text{T}} , \ldots ,\;\varvec{F}_{1}^{{\prime fP_{1} }} = [0,\;0,0,\;T_{f}^{1} ,\;0,\;0]^{\text{T}} .$$
(86)

Body B1 is the base of the flexible space robot and it is a free-floating body, and there is no joint friction in the joint 1, so we get

$$T_{1}^{{fP_{1} }} = 0,\quad \varvec{F}_{1}^{{\prime fP_{1} }} = [\begin{array}{*{20}c} 0 & 0 & 0 & 0 & 0 & 0 \\ \end{array} ]^{\text{T}} ,$$
(87)

If body Bi is rigid, the dynamic equation of Bi about the joint point Pi in the \(\vec{\varvec{e}}_{h}^{i}\) frame can be written as

$$\varvec{F}_{i}^{{\prime cP_{i} }} + \varvec{F}_{i}^{{\prime fP_{i} }} = (\varvec{Y}_{i}^{{P_{i} }} \varvec{A}_{i}^{{P_{i} }} )^{ - 1} (\varvec{F}_{i}^{a} + \varvec{F}_{i}^{\omega } - \varvec{F}_{i}^{o} - \varvec{F}_{i}^{oj} ),$$
(88)

where \((\varvec{Y}_{i}^{{P_{i} }} \varvec{A}_{i}^{{P_{i} }} )^{ - 1}\) is the inverse matrix of \(\varvec{Y}_{i}^{{P_{i} }} \varvec{A}_{i}^{{P_{i} }}\), and \(\varvec{Y}_{i}^{{P_{i} }}\) is

$$\varvec{Y}_{i}^{{P_{i} }} = \left[ {\begin{array}{*{20}c} {\varvec{I}_{3} } & { - \tilde{\varvec{\rho }}_{n}^{{P_{n} }} } \\ {\mathbf{0}} & {\varvec{I}_{3} } \\ \end{array} } \right]^{\text{T}} \in \Re^{6 \times 6} .$$
(89)

Below the sum of virtual power of the joint friction is derived, which can be expressed as

$$\Delta P^{f} = \sum\limits_{k = 2}^{N} { ( \Delta\varvec{\upsilon}_{k - 1}^{{Q_{k} {\text{T}}}} \varvec{F}_{k}^{{fQ_{k} }} + \Delta\varvec{\upsilon}_{k}^{{P_{k} {\text{T}}}} \varvec{F}_{k}^{{fP_{k} }} } ) = \sum\limits_{k = 2}^{N} { ( \Delta\varvec{\upsilon}_{k - 1}^{\text{T}} \varvec{Y}_{k - 1}^{{Q_{k} }} \varvec{F}_{k}^{{fQ_{k} }} + \Delta\varvec{\upsilon}_{k}^{\text{T}} \varvec{Y}_{k}^{{P_{k} }} \varvec{F}_{k}^{{fP_{k} }} } ).$$
(90)

According to Eqs. (58), (90) may be expressed using the generalized variables y of the system as

$$\Delta P^{f} = \Delta\varvec{y}^{\text{T}} \sum\limits_{k = 2}^{N} {\varvec{f}_{kf}^{ey} } = \Delta\varvec{y}^{\text{T}} \varvec{f}_{f}^{ey} ,$$
(91)

where \(\varvec{f}_{kf}^{ey} = \varvec{G}_{k - 1}^{\text{T}} \varvec{Y}_{k - 1}^{{Q_{k} }} \varvec{F}_{k}^{{fQ_{k} }} + \varvec{G}_{k}^{\text{T}} \varvec{Y}_{k}^{{P_{k} }} \varvec{F}_{k}^{{fP_{k} }}\) and \(\varvec{G}_{k} = [\varvec{G}_{k1} , \ldots ,\varvec{G}_{kN} ]\).

2.6 Dynamic Equations of the FLFJ Space Robot

Here, based on the Jourdain’s velocity variation principle and Eq. (28), the dynamic equations of the system can be expressed as

$$\sum\limits_{i = 1}^{N} {\Delta\varvec{\upsilon}_{i}^{\text{T}} ( - \varvec{M}_{i} \dot{\varvec{\upsilon }}_{i} - \varvec{f}_{i}^{\omega } + \varvec{f}_{i}^{o} - \varvec{f}_{i}^{u} )} + \Delta P = 0,$$
(92)

where \(\varvec{\upsilon}_{i}\) is the vector of generalized velocity of body Bi; \(\varvec{M}_{i}\) denotes the generalized mass of body Bi; \(\varvec{f}_{i}^{\omega }\) is generalized inertia force acting on body Bi; \(\varvec{f}_{i}^{o}\) is generalized external force of system acting on body Bi; \(\varvec{f}_{i}^{u}\) is the generalized elastic force acting on body Bi; \(\Delta P\) is the sum of virtual power of the inner forces of system. With the generalized variables y of the system, the \(\Delta P\) can be expressed as \(\Delta P = \Delta\varvec{y}^{\text{T}} (\varvec{f}_{e}^{ey} + \varvec{f}_{nc}^{ey} + \varvec{f}_{s}^{ey} )\), where \(\varvec{f}_{nc}^{ey}\) is the generalized force corresponding to the non-idealized constraint force, and \(\varvec{f}_{e}^{ey}\) and \(\varvec{f}_{s}^{ey}\) are the generalized force corresponding to other inner forces of the system. For the space robot system considered in this paper, the active control torque acted on the joint is the generalized force \(\varvec{f}_{e}^{ey}\), the elastic torque caused by elastic deformation of joints is the generalized force \(\varvec{f}_{s}^{ey}\), and the non-idealized constraint force \(\varvec{f}_{e}^{ey}\) represents the joint frictional force. For the joint friction, from Eq. (91) we have \(\varvec{f}_{nc}^{ey} = \varvec{f}_{f}^{ey}\). To express Eq. (92) conveniently, we set

$$\varvec{f}_{i} = - \varvec{f}_{i}^{\omega } + \varvec{f}_{i}^{o} - \varvec{f}_{i}^{u} .$$
(93)

So Eq. (92) becomes

$$\sum\limits_{i = 1}^{N} {\Delta\varvec{\upsilon}_{i}^{\text{T}} ( - \varvec{M}_{i} \dot{\varvec{\upsilon }}_{i} + \varvec{f}_{i} )} + \Delta P = 0.$$
(94)

In matrix form, Eq. (94) can be written as

$$\Delta\varvec{\upsilon}^{\text{T}} ( - \varvec{M\dot{\upsilon }} + \varvec{f}) + \Delta P = 0,$$
(95)

where \(\varvec{v} = [\varvec{\upsilon}_{1}^{\text{T}} , \ldots ,\varvec{\upsilon}_{N}^{\text{T}} ]^{\text{T}}\) is the velocity vector of the system; \(\varvec{M} = {\text{diag}}[\varvec{M}_{1} , \ldots ,\varvec{M}_{N} ]\) and \(\varvec{f} = [\varvec{f}_{1}^{\text{T}} , \ldots ,\varvec{f}_{N}^{\text{T}} ]^{\text{T}}\) are the matrices of generalized mass and generalized external force of the system, respectively.

Combining Eq. (58) with \(\Delta P = \Delta\varvec{y}^{\text{T}} (\varvec{f}_{e}^{ey} + \varvec{f}_{f}^{ey} + \varvec{f}_{s}^{ey} )\), Eq. (95) can be expressed as

$$\Delta\dot{\varvec{y}}^{\text{T}} [ - \varvec{Z\ddot{y}} + \varvec{z} + \varvec{f}_{e}^{ey} + \varvec{f}_{f}^{ey} + \varvec{f}_{s}^{ey} ] = 0,$$
(96)

where \(\varvec{Z} = \varvec{G}^{\text{T}} \varvec{MG}\) and \(\varvec{z} = \varvec{G}^{\text{T}} (\varvec{f} - \varvec{Mg\hat{I}}_{N} )\).\(\varvec{y} = [\varvec{y}_{1}^{\text{T}} , \ldots ,\;\varvec{y}_{N}^{\text{T}} ]^{\text{T}}\) is the vector of generalized coordinates of the system. All the elements of yi are independent, so the dynamic equations are acquired

$$- \varvec{Z\ddot{y}} + \varvec{z} + \varvec{f}_{e}^{ey} + \varvec{f}_{f}^{ey} + \varvec{f}_{s}^{ey} = {\mathbf{0}}.$$
(97)

Solving the nonlinear equation set (97), friction force can be obtained.

For the flexible space robot described in Sect. 2, the dimension of dynamic equations established with this paper approach is 12 + nm1 + nm2 + ns, and the number of unknown variables is also 12 + nm1 + nm2 + ns, where nm1 and nm2 respectively represent the number of the extracted modes of Link 1 and Link 2, and ns is the number of the additional generalized coordinates of flexible joints. In this paper, the elastic torque of flexible joints can be regarded as generalized force. This can decrease the number of the extra dynamic equations caused by the added fictitious links. Both the dimension of dynamic equations and the number of unknown variables with the Lagrange’s equation are no less than 30 + nm1 + nm2 + 6 ns. Thereby, the method utilized in this paper curtails the complexity of dynamic equations.

3 Trajectory Tracking Control

3.1 Trajectory Planning

To complete tracking tasks, such as point to point or continuous path, the motion of joints needs to be planned in joint-space. In this paper, a quintic polynomial trajectory planning method is used to design the motion of joints. Set the joint trajectory as

$$\theta_{i} (t) = a_{i0} + a_{i1} t + a_{i2} t^{2} + a_{i3} t^{3} + a_{i4} t^{4} + a_{i5} t^{5} ,\quad (i = 1, \ldots ,j_{N} ),$$
(98)

where \(a_{i0}\), \(a_{i1}\), \(a_{i2}\) and \(a_{i3}\) are the multinomial coefficients, \(j_{N}\) is the number of joints.

The initial state variables of joints and the state variable of joints at the schedule time te are

$$\theta_{i} (0) = \theta_{i0} ,\quad \dot{\theta }_{i} (0) = 0,\quad \ddot{\theta }_{i} (0) = 0,$$
(99)
$$\theta_{i} (t_{e} ) = \theta_{ie} ,\quad \dot{\theta }_{i} (t_{e} ) = 0,\quad \ddot{\theta }_{i} (t_{e} ) = 0.$$
(100)

Taking the first and the second derivative of Eq. (98), it can be obtained

$$\dot{\theta }_{i} (t) = a_{i1} + 2a_{i2} t + 3a_{i3} t^{2} + 4a_{i4} t^{3} + 5a_{i5} t^{4},$$
(101)
$$\ddot{\theta }_{i} (t) = 2a_{i2} + 6a_{i3} t^{{}} + 12a_{i4} t^{2} + 20a_{i5} t^{3} .$$
(102)

Substituting Eqs. (99) and (100) into Eqs. (98) (101) and (102), we can get \(a_{i0} = \theta_{i0}\), \(a_{i1} = 0\), \(a_{i2} = 0\), \(a_{i3} = \frac{10}{{t_{e}^{3} }}(\theta_{ie} - \theta_{i0} )\), \(a_{i4} = - \frac{15}{{t_{e}^{4} }}(\theta_{ie} - \theta_{i0} )\), \(a_{i5} = \frac{6}{{t_{e}^{5} }}(\theta_{ie} - \theta_{i0} )\).

3.2 Controller Design

With the method given in Sect. 3.1, the joint kinematics geometric trajectory of a robot can be designed. To track the desired trajectory and suppress the vibration of flexible components as soon as possible, adopting a suitable control method is essential. Additionally, in this paper, joint friction is considered, which may lead to disturbance on the tracking control. To eliminate the influence of joint friction on the control, the term of friction compensation will be introduced into the control law. Thereby, based on the computed torque control method, a controller with friction compensation is designed.

Equation (97) can be transformed as

$$\varvec{\ddot{y}} =\varvec{\varGamma}(\dot{\varvec{y}},\varvec{y}) + \varvec{Bu} + \varvec{F}_{\varvec{f}}^{{\varvec{ey}}} ,$$
(103)

where, \(\varvec{\varGamma}(\dot{\varvec{y}},\varvec{y}) = \varvec{Z}^{ - 1} \varvec{z}\), \(\varvec{B} = \varvec{Z}^{ - 1}\), \(\varvec{F}_{f}^{ey} = \varvec{Z}^{ - 1} \varvec{f}_{f}^{ey} (\varvec{\lambda})\), \(\varvec{u} = \varvec{f}_{e}^{ey}\) is the control force. And the controller u is designed based on the computed torque method.

Assume that the desired trajectory is \(\varvec{y}_{d}\) and the error vector is \(\varvec{e}(t) = \varvec{y}_{d} (t) - \varvec{y}(t)\), where \(\varvec{y}\) is the actual state variables of the system. The controller is

$$\varvec{u}(t) = \varvec{B}^{ - 1} \varvec{f^{\prime}}(t) - \varvec{B}^{ - 1}\varvec{\varGamma}(\varvec{y},\dot{\varvec{y}}) - \varvec{B}^{ - 1} \varvec{F}_{f}^{ey} (t - \Delta t),$$
(104)

where \(\Delta t\) is the simulation step size; \(\varvec{f^{\prime}}(t)\) can be expressed as

$$\varvec{f^{\prime}}(t) = \varvec{\ddot{y}}_{d} (t) + \varvec{K}_{D} \dot{\varvec{e}}(t) + \varvec{K}_{P} \varvec{e}(t),$$
(105)

where \(\varvec{K}_{D}\) and \(\varvec{K}_{P}\) are the differential and proportional gain matrices, respectively, which are both positive-definite matrices. \(\varvec{F}_{f}^{ey} (t - \Delta t)\) is the friction force of joints at the moment before. Substituting Eqs. (104) into (103)

$$\varvec{\ddot{e}}(t) + \varvec{K}_{D} \dot{\varvec{e}}(t) + \varvec{K}_{P} \varvec{e}(t) + (\varvec{F}_{f}^{ey} (t) - \varvec{F}_{f}^{ey} (t - \Delta t)) = {\mathbf{0}}.$$
(106)

From Eq. (106), when \(\Delta t\) is grossly small, \(\varvec{F}_{f}^{ey} (t) - \varvec{F}_{f}^{ey} (t - \Delta t) \approx {\mathbf{0}}\) can be obtained. Also, we know that e(t) will be approach to zero when \(\varvec{K}_{D} > 0\) and \(\varvec{K}_{P} > 0\), thus y will tend to yd, which suggests the controller is stable.

4 Numerical Simulations

In this section, numerical simulations are carried out to analyze the effect of joint friction and joint flexibility on the dynamic characteristics of a 6-DOF FLFJ space robot.

The physical parameters of the space robot in Fig. 2 are listed in Table 1, where the inertia moment of rotors is equivalent value, according to Ref. [2]. Also, the first two modes of Link 1 and Link 2 are considered in this paper and the modal functions of cantilever beams are used. The parameters of the revolute joint are given in Table 2. Accuracy of the dynamic model derived in this paper is demonstrated firstly in Sect. 4.1.

Table 1 Physical parameters of the FLFJ space robot
Table 2 Parameters of flexible joints

4.1 Modeling Verification

To validate the model proposed in this paper, several numerical simulations are carried out with the ADAMS and our method respectively. Here an example is shown in Fig. 8. Initially, the flexible robot is static. The initial joint angles of the manipulator are \([\theta_{1} ,\theta_{2} , \ldots ,\theta_{6} ]^{\text{T}} = [0{^\circ ,}0{^\circ },0{^\circ },0{^\circ },0{^\circ },0{^\circ }]^{\text{T}}\) and the driving torque acted on each joint are \(\varvec{f}_{e}^{ey} = [100\,{\text{N}}/{\text{m}},100\,{\text{N}}/{\text{m}},100\,{\text{N}}/{\text{m}},1\,{\text{N}}/{\text{m}},1\,{\text{N}}/{\text{m}},0.1\,{\text{N}}/{\text{m}}]^{\text{T}}\). Then, the robot starts to move under the action of the driving torque. Time histories of rotation angles of the joints calculated by both this paper method and ADAMS are respectively shown in Fig. 8. The performance obtained by the two methods is in agreement, which verifies the validity of the model established.

Fig. 8
figure 8

Time histories of flexible joint angles 1–6: a Joint 1; b Joint 2; c Joint 3; d Joint 4; e Joint 5; f Joint 6

4.2 Effect of Joint Friction and Joint Flexibility on the Dynamic Characteristics of Robots

Here two simulations are carried out to study the effect of joint flexibility and joint friction. The difference between these two simulations is whether considering both the joint flexibility and joint friction or not.

In these simulations, the flexible space robot is driven by the torque \({\mathbf{f}}_{e}^{ey} = [100\,{\text{N}}/{\text{m}},100\,{\text{N}}/{\text{m}},100\,{\text{N}}/{\text{m}},1\,{\text{N}}/{\text{m}},1\,{\text{N}}/{\text{m}},0.1\,{\text{N}}/{\text{m}}]^{\text{T}} \times \sin (2\pi t)\), and the force acted on the base is zero. The simulation lasts T = 10 s Besides, the initial position of every joint and the base are zero. Utilizing the method given in the paper, the results can be obtained in Figs. 9 and 10, where the attitude angle of each joint is shown in Fig. 9, and the elastic deflection of flexible joints is given in Fig. 10.

Fig. 9
figure 9

Time histories of flexible joint angles 1–6: a Joint 1; b Joint 2; c Joint 3; d Joint 4; e Joint 5; f Joint 6

Fig. 10
figure 10

Time histories of elastic deflection of flexible joints 1–6: a Joint 1; b Joint 2; c Joint 3; d Joint 4; e Joint 5; f Joint 6

As shown in Fig. 9, the motion of the robot with flexible joints considering friction lags behind the robot with ideal joints. Also, the hysteresis phenomenon obviously appears in the Joint 4–6. Generally, the greater the driving torque is applied, the less the variation of joint angle is affected by friction. In Fig. 11, the time histories of driving torque and frictional torque of six joints are given. It can be obtained that the driving torque is much larger than the frictional torque in the Joint 1–3. By contrast, the difference between the driving torque and frictional torque of Joint 4–6 is small, so the variation of joint angle can be significantly affected by friction, especially in Joint 6. Additionally, acted by the driving torque, the vibration occurs in the flexible joints and the flexible joint deflections are as large as \(5.581{^\circ }\). As shown in Fig. 10, compared to Joint 1–5, the result of Joint 6 presents a non-smooth high-frequency ‘burr’ response, which is caused by the reason as follows. It is shown in Fig. 4 that Joint 6 is a joint at the outermost side of the space robot, which connects with the outer body Link 4. The left side of Link 4 connects with Joint 6, and the right side is free. Therefore, the extensive vibration of Joint 6 is more likely to occur. By contrast, two sides of Joint 1–5 which connect with bodies are both constrained, so the high-frequency vibration of joints is difficult to occur. Also, as depicted in Fig. 11, the high-frequency fluctuation phenomenon exists in time historied curve of frictional torque, which is the equivalent of external excitation for flexible joints. Thus, the deformation of Joint 6 could vibrate with high frequency under the frictional torque. Because joint flexibility and joint friction may affect the precise motion of robots, which makes it difficult to achieve the operation of robots, considering joint friction and joint flexibility is important to dynamics modeling of robots.

Fig. 11
figure 11

Time histories of driving torque and frictional torque of joints: (a) Joint1; (b) Joint 2; (c) Joint 3; (d) Joint 4; (e) Joint 5; (f) Joint 6

4.3 Control of the FLFJ Space Robot

The results above indicated the flexible joint with friction could have a significant effect on the dynamic characteristics of flexible robots. In this section, the numerical simulations are carried out to validate the effectiveness of the controller designed with the computed torque method, which is utilized to realize trajectory tracking control of FLFJ robots.

In these simulations, the initial attitude angles of the base and initial joint angles of the flexible robot are \(\theta_{0} = [0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ]^{\text{T}}\), the desired angles are \(\theta_{f} = [0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,0^{ \circ } ,5^{ \circ } ,5^{ \circ } ,5^{ \circ } ,5^{ \circ } ,10^{ \circ } ,10^{ \circ } ]^{\text{T}}\), and the initial and desired angular velocity and acceleration are all zero. The desired trajectories could be designed by the method in Sect. 3.1. For these simulations, the Coulomb friction is used to describe the friction in all joints, and the parameter of the flexible joints are listed in Table 2. In the controller design, Kp and Kd are chosen as KP = [0.1, 0.1, 0.1, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 10, 10, 10, 10, 10, 10] × I19, and Kd = [0.01, 0.01, 0.01, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] × I19, where \(\varvec{I}_{19} \in \Re^{19 \times 19}\) is an identity matrix, and the control cycle is 0.05 s. According to the method in Sect. 3.1, the trajectory equation can be obtained as \(\alpha = (\theta_{f} - \theta_{0} ) \times (0.0003\;t^{5} - 0.0075\;t^{4} + 0.05\;t^{3} )\), where \(\alpha\) is the desired angle at time t. The simulation results are given in Figs. 12, 13 and 14, where Figs. 12 and 13 show the time histories of the Base attitude and the joint angles of the robot in the process of trajectory tracking.

Fig. 12
figure 12

Time histories of angular displacements of the Base: (a) Axis X; (b) Axis Y; (c) Axis Z

Fig. 13
figure 13

Time histories of flexible joint angles 1 ~ 6: (a) Joint 1; (b) Joint 2; (c) Joint 3; (d) Joint 4; (e) Joint 5; (f) Joint 6

Fig. 14
figure 14

Time histories of elastic deflection of flexible joints 1 ~ 6: (a) Joint 1; (b) Joint 2; (c) Joint 3; (d) Joint 4; (e) Joint 5; (f) Joint 6

The Base and Joints 1–5 are well controlled by our method without overshoot. Only the response of Joint 6 exists obvious deviation to the trajectory, but Joint 6 could arrive at the desire position finally. The main reason has been explained in Sect. 4.2. Here the time histories of control torque and friction torque in the simulation are given in Fig. 15. It can be observed that the frictional torque is approach to the control torque, so the frictional torque caused an obvious impact on the rotation of Joint 6. Besides, the deflection of flexible joints is shown in Fig. 14. It can be seen that the vibration of flexible joints is effectively suppressed synchronously except Joint 6, of which the vibration is intense. This is because one side of the outer body of Joint 6 is free, the high-frequency vibration is more likely to occur under the frictional torque with high-frequency fluctuation as shown in Fig. 15. However, the suppression of vibration can be achieved in the end. Therefore, the effect of the controller gets well verified.

Fig. 15
figure 15

Time histories of control torque and frictional torque of joints: (a) Joint1; (b) Joint 2; (c) Joint 3; (d) Joint 4; (e) Joint 5; (f) Joint 6

5 Conclusion

In this paper, the issues about dynamics modeling and control of 6-DOF FLFJ space robots with joint friction are investigated. Firstly, Spong’s model and Coulomb friction model are adopted to describe joint flexibility and joint friction, respectively. On this basis, the dynamic model for the FLFJ space robot was developed by the single direction recursive construction method and the Jourdain’s velocity variation principle. Also, geometry trajectories of joints are given and a controller with friction compensation for the system trajectory tracking is designed for a 6-DOF FLFJ robot by the computed torque control method. For the simulations, the results validate the accuracy of the model established. In addition, it can be acknowledged from numerical simulations that flexible joints with friction can bring a significant effect on the dynamic characteristics of robot systems. The trajectory tracking and vibration suppression can be effectively achieved with the proper planning trajectory and the controller given in this paper. Finally, the explanations for results are given in detail.