Keywords

1 Introduction

In order to reuse or remove failure satellites and space debris, the space robotic system is considered to be the most suitable and efficient way [1]. There are two main types of space robotic servicing techniques [2]. One is the stiff connection capture using robotic arms or tentacles [3]; the other is the flexible connection capture using tethered flying net [4] or flying gripper [5]. The latter one allows a long capture distance between the target and the chaser spacecraft. However, for further maintenance, reuse or other operations of the captured target, the stiff connection capture using robotic arms is a much more promising technique and will be mainly considered in this paper.

The whole process of capturing an uncooperative target in space is generally decomposed into three phases: pre-contact, contact and post-contact phases. For pre-contact phase, the joint motion of free-floating space manipulator was generated to minimize the base disturbance [6, 7]. In [8], the dual-arm capturing motion can be generated to intercept the grasping point with zero relative velocity. The capturing occasion was determined by combining the prediction of the grasping point and the workspace of the space robot. The optimal path planning of free-flying space manipulators can be also realized by sequential convex programming [9]. However, only the position coupling between the manipulator and the base was considered in the optimization. For contact phase, the optimal capturing time and configuration of the target were determined to minimize the base disturbance, which required that the contact force should pass through the centroid of the base [10]. After contact, the two arms and the target will form the closed-chain constraint. The internal force analysis and load distribution for cooperative manipulation have been studied in [11,12,13]. Korayem et al. [11] compared the dynamic load-carrying capacity of a multi-arm robot in the free and constrained mode by load distribution optimization, however, the solution for the dynamic closed-chain circumstance was not considered. For post-contact phase, a time-optimal control method was proposed to stabilize a tumbling satellite which mainly consider the grasping force limitation, the target uncertainty and the arbitrary motion detumbling [14]. Another optimal detumbling strategy was proposed based on quartic Bézier curves and adaptive particle swarm optimization algorithm in which both the detumbling time and control torques are taken into account [15].

In order to reduce the momentum of the tumbling target during post-contact manipulation, an optimal trajectory of the target should be generated, which minimizes the detumbling time and base disturbance while satisfying some equality and inequality constraints simultaneously. Recently, a purely kinematic trajectory optimization method was proposed to manipulate in-grasp object with relaxed-rigidity constraints [16]. The authors in [17] used trajectory optimization for extending the payload capabilities of robotic manipulators. Similarly, trajectory optimization can also be used for motion planning problem in dyadic human-robot collaborative manipulation [18, 19] and dynamic legged robot locomotion such as jumping [20]. Betts et al. [21] reviewed the numerical method for trajectory optimization and discussed the direct and indirect methods. A detailed introduction of using direct collocation for trajectory optimization can be found in [22]. The direct collocation method was recently adopted to generate optimal trajectory for capturing the tumbling target in pre-contact phase [23]. In this paper, we adopt the direct collocation method to generate an optimal trajectory for stabilizing a tumbling target in post-contact phase.

2 Modeling of Dual-Arm Space Robot and Tumbling Object

2.1 Kinematic Equation of Dual-Arm Space Robot

A dual-arm space robot manipulating a tumbling target is schematically shown in Fig. 1, where the end-effectors of na degrees of freedom (DOF) manipulator (Arm-a) and nb DOF manipulator (Arm-b) are assumed to be fixed with the tumbling target. The reference coordinate system of each variable is denoted by the left superscript, unless specified, all the variables are expressed in the inertial coordinate system.

As shown in Fig. 1, the end-effector velocity of each manipulator can be derived as follows:

$$ {\dot{\user2{x}}}_e^{(k)} = \left[ {\begin{array}{*{20}c} {{{\varvec{v}}}_e^{(k)} } \\ {{{\varvec{\omega}}}_e^{(k)} } \\ \end{array} } \right] = {{\varvec{J}}}_b^{(k)} \left[ {\begin{array}{*{20}c} {{{\varvec{v}}}_0 } \\ {{{\varvec{\omega}}}_0 } \\ \end{array} } \right] + {{\varvec{J}}}_m^{(k)} {\dot{\user2{\Theta }}}^{(k)} $$
(1)

where \({{\varvec{v}}}_0 ,\;{{\varvec{\omega}}}_0\) are the linear velocity and angular velocity of the base; \({{\varvec{v}}}_e^{{(}k{)}} ,\;{{\varvec{\omega}}}_e^{{(}k{)}}\) are the linear velocity and angular velocity of the end-effector of Arm-k; \({\dot{\user2{\Theta }}}^{(k)}\) is the joint velocity of Arm-k; \({{\varvec{J}}}_b^{(k)}\) and \({{\varvec{J}}}_m^{(k)}\) are the Jacobian matrices related to the base and the manipulator respectively, which can be calculated by the following equations:

$$ \user2{J}_{b}^{{(k)}} = \left( {\begin{array}{*{20}c} {\user2{E}_{3} } & { - \user2{p}_{{0e}}^{{ \times (k)}} } \\ \user2{O} & {\user2{E}_{3} } \\ \end{array} } \right) $$
(2)
$$ {{\varvec{J}}}_m^{(k)} = \left[ {\begin{array}{*{20}c} {{{\varvec{k}}}_1^{(k)} \times \left( {{{\varvec{p}}}_e^{(k)} - \, {{\varvec{p}}}_1^{(k)} } \right)} & \ldots & {{{\varvec{k}}}_{n_k }^{(k)} \times \left( {{{\varvec{p}}}_e^{(k)} - \, {{\varvec{p}}}_{n_k }^{(k)} } \right)} \\ {{{\varvec{k}}}_1^{(k)} } & \ldots & {{{\varvec{k}}}_{n_k }^{(k)} } \\ \end{array} } \right] $$
(3)

where \({{\varvec{p}}}_{0e}^{(k)}\) is the vector from the centroid of the base to the end-effector of Arm-k; \({{\varvec{p}}}_e^{(k)} ,\;{{\varvec{p}}}_{n_k }^{(k)}\) are the position vectors of the end-effector and the nth joint of Arm-k; \({{\varvec{r}}}^\times\) is the skew symmetric matrix of r.

Fig. 1.
figure 1

The dual-arm space robot and the tumbling target object

2.2 Dynamic Equation of Tumbling Object

The dynamic equation of the tumbling object which is captured by the dual-arm space robot can be expressed as:

$$ \left[ {\begin{array}{*{20}c} {m_t {\dot{\user2{v}}}_t } & {{{\varvec{O}}}_3 } \\ {{{\varvec{O}}}_3 } & {{{\varvec{I}}}_t {\dot{\user2{\omega }}}_t + {{\varvec{\omega}}}_t \times \left( {{{\varvec{I}}}_t {{\varvec{\omega}}}_t } \right)} \\ \end{array} } \right] = {{\varvec{G}}}_a {{\varvec{F}}}_a + {{\varvec{G}}}_b {{\varvec{F}}}_b $$
(4)

where \({{\varvec{v}}}_t ,\;{{\varvec{\omega}}}_t\) are the linear velocity and angular velocity of the object; \(m_t ,\;{{\varvec{I}}}_t\) are the mass and inertia matrix; \({{\varvec{G}}}_k \left( {k = a,b} \right)\) is the grasp matrix of Arm-k [12]; \({{\varvec{F}}}_k = \left[ {\begin{array}{*{20}c} {{{\varvec{f}}}_k^{\text{T}} } & {{{\varvec{\tau}}}_k^{\text{T}} } \\ \end{array} } \right]^{\text{T}}\) is the force exerted on the object by Arm-k.

At the same time, given the desired velocity of the target \({\dot{\user2{x}}}_t\), the corresponding velocity of the end-effector of Arm-k \({\dot{\user2{x}}}_e^{(k)}\) can be obtained as:

$$ {\dot{\user2{x}}}_e^{(k)} = \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & { - \left( {{}^T{{\varvec{r}}}_{ek} } \right)^\times } \\ {{{\varvec{O}}}_3 } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{\dot{\user2{x}}}_t = {{\varvec{G}}}_k^{\text{T}} {\dot{\user2{x}}}_t $$
(5)

where \({}^T{{\varvec{r}}}_{ek}\) is the position vector of the end-effector of Arm-k with respect to the reference frame of the object.

3 Trajectory Optimization for Detumbling Manipulation

Generally speaking, the process of capturing a tumbling target in space can be decomposed into three phases: the pre-contact, contact and post-contact phase. However, in this paper the trajectory optimization problem is only formulated for stabilizing a tumbling target during post-contact phase. In this trajectory optimization, the dynamics of the tumbling target is considered while the motion of the two arms is generated from the motion of the target by considering the closed-chain constraints between the target and two arms. This trajectory optimization problem is transformed into a nonlinear programming problem (NLP) by direct collocation method [22]. Then the solution of NLP can be found by the nonlinear programming solver fmincon in the Optimization Toolbox of MATLAB. The detailed formulation of the trajectory optimization method is given in the following sections.

3.1 System Dynamics

From (4), we can rewrite the dynamic equation of the object as follows:

$$ \left[ {\begin{array}{*{20}c} {m_t {{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{{\varvec{O}}}_3 } & {{{\varvec{I}}}_t } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {{\dot{\user2{v}}}_t } \\ {{\dot{\user2{\omega }}}_t } \\ \end{array} } \right]\ + \left[ {\begin{array}{*{20}c} {{{\varvec{O}}}_3 } \\ {{{\varvec{\omega}}}_t \times \left( {{{\varvec{I}}}_t {{\varvec{\omega}}}_t } \right)} \\ \end{array} } \right] = {{\varvec{F}}}_t $$
(6)

where \({{\varvec{F}}}_t\) is the total force exerted on the object, which is the control variable in trajectory optimization; the state variable in trajectory optimization can be written as:

$$ {{\varvec{s}}} = \left[ {\begin{array}{*{20}c} {{{\varvec{x}}}_t^{\text{T}} } & {{\dot{\user2{x}}}_t^{\text{T}} } \\ \end{array} } \right],\ \quad {\dot{\user2{s}}} = \left[ {\begin{array}{*{20}c} {{\dot{\user2{x}}}_t^{\text{T}} } & {{\varvec{\ddot{x}}}_t^{\text{T}} } \\ \end{array} } \right] $$
(7)

where \({{\varvec{x}}}_t = \left[ {\begin{array}{*{20}c} {{{\varvec{p}}}_t^{\text{T}} } & {{{\varvec{\psi}}}_t^{\text{T}} } \\ \end{array} } \right]^{\text{T}} = \left[ {p_x ,\;p_y ,\;p_z ,\;\ \alpha ,\;\beta ,\;\ \gamma } \right]^{\text{T}}\), \({\dot{\user2{x}}}_t = \left[ {\begin{array}{*{20}c} {{{\varvec{v}}}_t^{\text{T}} } & {{\dot{\user2{\psi }}}_t^{\text{T}} } \\ \end{array} } \right]^{\text{T}}\). The attitude \({{\varvec{\psi}}}_t\) in \({{\varvec{x}}}_t\) is represented by the z-y-x Euler angles, the angular velocity in the dynamic equation is represented by \({{\varvec{\omega}}}_t = \left[ {\begin{array}{*{20}c} {\omega_{tx} } & {\omega_{ty} } & {\omega_{tz} } \\ \end{array} } \right]^{\text{T}}\).

In order to deal with the nonholonomic property of the angular velocity, the following relationship is used:

$$ {{\varvec{\omega}}}_t = \left[ {\begin{array}{*{20}c} 0 & { - s_\alpha } & {c_\alpha c_\beta } \\ 0 & {{\text{c}}_\alpha } & {s_\alpha c_\beta } \\ 1 & 0 & { - s_\beta } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {\dot{\alpha }} \\ {\dot{\beta }} \\ {\dot{\gamma }} \\ \end{array} } \right] = {{\varvec{N}}}_{zyx}^\omega \left( {\alpha ,\;\ \beta ,\;\ \gamma } \right){\dot{\user2{\psi }}}_t $$
(8)
$$ {\dot{\user2{\psi} }}_{t} = \user2{N}_{{zyx}}^{{\omega \;\; - 1}} \left( {\alpha ,\beta ,\gamma } \right)\user2{\omega }_{t} $$
(9)

where \({{\varvec{N}}}_{zyx}^\omega\) can project the Euler angle rate \({\dot{\user2{\psi }}}_t\) to the angular velocity \({{\varvec{\omega}}}_t\).

3.2 Objective Function

For stabilizing the tumbling target by a dual-arm space robot, the objective of trajectory optimization should be minimizing the detumbling time and base disturbance of the dual-arm space robot, i.e. minimize the energy consumption during the whole detumbling process. For the dual-arm space robot, the base disturbance mainly comes from the end-effector forces of the two arms to detumble the tumbling target. The total disturbance force exerted on the base, which is caused by the end-effector forces of the two arms, is calculated as follows:

$$ \begin{array}{*{20}l} {{{\varvec{F}}}_{dis} } \hfill & { = - \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {\left( {{}^B{{\varvec{r}}}_T + {}^T{{\varvec{r}}}_{ea} } \right)^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_a - \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {\left( {{}^B{{\varvec{r}}}_T + {}^T{{\varvec{r}}}_{eb} } \right)^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_b } \hfill \\ \, \hfill & { = - \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^B{{\varvec{r}}}_T^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]\left\{ {\left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^T{{\varvec{r}}}_{ea}^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_a + \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^T{{\varvec{r}}}_{eb}^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_b } \right\}} \hfill \\ \end{array} $$
(10)

where \({}^B{{\varvec{r}}}_{ek}\) is the position vector of the end-effector of Arm-k with respect to the reference frame of the base; \({}^B{{\varvec{r}}}_T\) is the position vector of the reference frame of the target with respect to the base.

On the other hand, the operational forces of the two arms also satisfy:

$$ {{\varvec{F}}}_t = {{\varvec{G}}}_a {{\varvec{F}}}_a + {{\varvec{G}}}_b {{\varvec{F}}}_b = \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^T{{\varvec{r}}}_{ea}^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_a + \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^T{{\varvec{r}}}_{eb}^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_b $$
(11)

Combining the Eqs. (10) and (11), then we can have:

$$ \ {{\varvec{F}}}_{dis} = - \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^B{{\varvec{r}}}_T^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]\left( {{{\varvec{G}}}_a {{\varvec{F}}}_a + {{\varvec{G}}}_b {{\varvec{F}}}_b } \right) = - \left[ {\begin{array}{*{20}c} {{{\varvec{E}}}_3 } & {{{\varvec{O}}}_3 } \\ {{}^B{{\varvec{r}}}_T^\times } & {{{\varvec{E}}}_3 } \\ \end{array} } \right]{{\varvec{F}}}_t $$
(12)

It can be seen from (12) that the disturbing force \({{\varvec{F}}}_{dis}\) exerted on the base is related to both the position vector \({}^B{{\varvec{r}}}_T\) and the detumbling force \({{\varvec{F}}}_t\) of the target. The disturbing force should be minimized in order to decrease the base disturbance. Therefore, the objective function of this trajectory optimization for stabilizing the tumbling target can be written as:

$$ \Gamma = w_1 T + w_2 \int_{t_0 }^{t_f } {{{\varvec{F}}}_{dis}^{\rm T} } {{\varvec{F}}}_{dis} dt $$
(13)

where \(T = t_f - t_0\) is the detumbling time, \(w_1\) and \(w_2\) are the weights to trade off the detumbling time and base disturbance.

3.3 Constraints and Limits

In order to ensure the target is within the workspace of the dual-arm space robot and the base disturbance is within the controllable range for the whole trajectory, the state and control limits of the trajectory optimization are introduced as follows:

$$ {{\varvec{x}}}_{min} \le {{\varvec{x}}}_t \le {{\varvec{x}}}_{max} ,\quad \ {\dot{\user2{x}}}_{min} \le {\dot{\user2{x}}}_t \le {\dot{\user2{x}}}_{max} $$
(14)
$$ {{\varvec{F}}}_{min} \le {{\varvec{F}}}_t \le {{\varvec{F}}}_{max} $$
(15)

where \({{\varvec{x}}}_{min} ,\;\;\ {{\varvec{x}}}_{max}\) are the minimum and maximum poses of the target; \({{\varvec{F}}}_{min} ,\;{{\varvec{F}}}_{max}\) are the minimum and maximum forces that can be exerted on the target.

Additionally, the state boundary conditions are included:

$$ {{\varvec{x}}}_t \left( {t_0 } \right) = {{\varvec{x}}}_{tini} ,\quad {{\varvec{x}}}_t \left( {t_f } \right) = {{\varvec{x}}}_{tfin} $$
(16)

where \({{\varvec{x}}}_{tini} ,\;{{\varvec{x}}}_{tfin}\) are the initial state and desired final state of the target, respectively.

4 Simulation Results

In order to verify the trajectory optimization framework proposed in this paper, a typical simulation of dual-arm space robot stabilizing the tumbling target with both linear velocity and angular velocity is carried out. The initial linear and angular velocity of the target are set to [0.1 0.05 0] m/s and [0.05 0.04 0.03] rad/s, respectively. The joint angles in the initial state of the two arms are set to [0, 45, 0, 90, 0, 45, 0]T*π/180 rad and [0, −45, 0, −90, 0, −45, 0]T*π/180 rad. The mass and inertia parameters of the base, each manipulator and the tumbling target are shown in Table 1. For this simulation, \(w_1\) and \(w_2\) are set to 0 and 1, respectively.

The simulation result of the whole detumbling process is shown in Fig. 2. The optimal velocity of the tumbling target is generated from the proposed trajectory optimization as shown in Fig. 3. The corresponding end-effector velocities of the two arms can be calculated according to the closed-chain kinematic constraint between the two arms and the target. Then desired joint angular velocities of the two arms are obtained by the inverse kinematics of each manipulator which can be used for detumbling the target by dual-arm space robot. Correspondingly, the base disturbance of dual-arm space robot resulting from the detumbling maneuver is given in Fig. 4.

Table 1. Mass properties of space robotic system and target
Fig. 2.
figure 2

Simulation results. Six sequentially snapshots of the trajectory optimization result.

Fig. 3.
figure 3

The optimal velocity of the tumbling target.

Fig. 4.
figure 4

The disturbance force exerted on the base of the dual-arm space robot.

5 Conclusion

In this paper, we propose a trajectory optimization framework for stabilizing a tumbling object using a dual-arm space robot. In this proposed trajectory optimization framework, only the object dynamics is used to minimize the detumbling time and base disturbance during the detumbling manipulation, while the optimal dual-arm motion is generated from the object motion by considering the closed-chain constraint. A variety of space manipulation problem can be formulated into this trajectory optimization framework which can be solved by nonlinear programming solvers. However, in the proposed method only the base disturbance generated from the dual-arm detumbling force are considered. In future study, we will further take into account the base disturbance caused by the dual-arm detumbling motion.