1 Introduction

Space robots will have a significant role in the forthcoming space activities. This is due to the fact that they could be used in different space missions such as on-orbit servicing missions that aim to extend the lifetime of satellites. Another space activity in which space robots could be used is the active debris removal missions. Space debris like rocket stages or inactive satellites cause a danger to active satellites and spacecraft. The number of space debris on the low Earth orbit will increase in time even if no more new satellites will be launched. This will happen through the collisions with and between already existing space debris [1]. More recently, the concepts of large orbital structures are becoming increasingly popular; this leads to another space activity called on-orbit assembly. A good example of such structures are the large space telescopes. The concepts of assembling large space telescopes on-orbit using robots are considered in various studies (e.g., [2,3,4]). Another example of such large space structures are space-based solar power satellites [5]. Application of space robots reduces missions’ costs; in addition, they can be sent to deep space or used in missions that are dangerous and risky for humans [6]. Another advantage of space robots is that they can work in hostile environment for a long period of time, and they are useful especially when it comes to perform repetitive tasks. In addition, space robots can perform tasks with reduced risk and improved performance; also, they demand less infrastructures comparing to the manned systems [7].

When it comes to the number of robot manipulators, the application of a multiarm space robot is more efficient than using a robot with a single arm. Multiple-arm systems allow a firmer grasping of the target [8]. In addition, multiple-arm space robot could be also used to perform tasks that cannot be performed by using only one manipulator. Several factors motivate the use of dual-arm setups such as flexibility, stiffness, and manipulability [9]. Restore-L [10] is an example of an on-orbit satellite servicing mission, in which the spacecraft will be equipped with two robotic arms. Moreover, a multiarm space robot can perform several tasks simultaneously. However, different problems should be considered when using several manipulators simultaneously, such as the synchronization of robot manipulators [11]. In addition, the mutual influence between the satellite and all manipulators should be taken into consideration. In such situation, the position and orientation of each end-effector of a manipulator do not only rely on the actual position of every joint of each manipulator, but also on the position history of every joint of each manipulator.

The motion planning of space robot manipulator(s) in the case where no external forces or moments act on the space robot system is a problem studied in numerous papers. The generalized Jacobian matrix (GJM) approach was developed in [12, 13] for motion control of a space robot equipped with a single robotic arm and was the basis for many later approaches. In [14] the GJM method was extended to the case of multiarm space robot system, in which one arm is used to keep constant satellite attitude. Other approaches in which one arm of a dual-arm space robot system was used to counteract the disturbance induced by the motion of the other arm on the satellite can be found in [15,16,17]. In [18] the equations of motion of a rotation floating space robot were modified through adding new states representing the kinetic moment exchange. However, these studies focus on the situation where the linear and angular momenta of the robot system are conserved and are equal to zero. An interesting approach of modeling a free-floating space robot was presented in [19]. The Takagi–Sugeno fuzzy descriptor model of the space robot was developed on the basis of its nonlinear dynamic model. In the derived model the momenta were considered to be conserved and equal to zero. A new motion-planning algorithm based on general Lagrangian Jacobian inverse including the zero momentum conservation law was proposed in [20]. The equations of motion of a space robot system in the presence of nonzero angular momentum are presented in [21]. This work studied the influence of initial angular momentum on the behavior of a free-floating space robot system. The angular momentum of the system was assumed to be constant, and thus the angular momentum of the system was conserved. The linear momentum of the system was assumed to be equal to zero. Constrained particle swarm optimization approach was proposed to solve the problem of coordinated trajectory planning of a space robot with two robotic arms in [22]. However, since the proposed method was developed for a free-floating mode, the linear and angular momenta of the system were considered to be conserved. The dynamics of the space robot system in the presence of linear and angular momenta was analyzed in [23], and a torque control law is proposed to compensate the disturbance due to nonzero momenta. However, the momenta were assumed to be conserved. In [24] the dual-arm extended Jacobian matrix was applied to stabilize base attitude without affecting the capture operation. The space robot and the target were assumed to be a single system on which no external forces are acting, and hence the linear and angular momenta of this system were assumed to be conserved.

When the space robot system is subjected to external forces and moment (for example, when external forces and moments are exerted on manipulators’ end-effectors due to the contact with the environment or when the space robot’s base is controlled using thrusters), the linear and angular momenta of this system are no longer conserved. In such a case the motion planning of robot’s manipulators can be solved either by modifying the equations derived on the basis of linear and angular momenta conservation law or by using a controller-based approach.

Several studies have been conducted using the controller-based approach. In [25] the satellite and robot manipulators were controlled to accomplish the predefined task. Here a dynamics-based adaptive control approach was proposed for the tracking control of a dual-arm space robot with closed-loop constraints and payload parameter uncertainty. Another adaptive control approach for coordinated motion between space robot base and the joints of its two robotic arms was developed in [26]. In this work the base of the space robot was also controlled in addition to robot manipulators. More recently, a novel adaptive variable structure controller for a dual-arm space robot was applied [27]. This controller achieved higher tracking accuracy and saved more energy comparing to the smoothed quasi-continuous second-order sliding-mode controller. In this work the attitude of the space robot’s base was also controlled. In [28] the motion control of a multiarm space robot while chasing a passive target was studied. Since the robot was controlled using thrusters, external forces were acting on the space robot system. Thus control algorithms that allow the coordinated tracking control of the manipulators and the spacecraft were proposed. The model-based control approach was compared with the transposed Jacobian approach for a multimanipulator space robot. The results showed that the transposed Jacobian algorithm gives good performance with reduced computational burden. A trajectory planning method for a dual-arm space robot where a disturbance is exerted on the base was proposed in [29]. In this work a pose feedback control was proposed to increase the tracking precision of the end-effector in such a case. In [30] an impedance control approach for a free-floating robot during the grasping of a target with parameters uncertainty was developed. The target was considered as a disturbance force applied on manipulator end-effector. A robust tracking control for a free-floating space robot with internal parameter uncertainty and external disturbance composed of a nonlinear observer, a fuzzy adaptive disturbance observer, a manipulator controller, and a motor controller was proposed in [31]. In [32], fractional calculus was used in the modeling, and control of a manipulator and the motor dynamics were included in the robot model. Simulations showed that using fractional-order controllers gives better results than using integer-order controllers from the robustness point of view. Another approach for capturing a free-floating satellite that has an initial angular momentum was presented in [33]; moreover, two post-impact control laws were introduced, the distributed momentum control and the reaction null space control. In [34] a controller was designed using the nonlinear decoupled control method, in which, to a certain extent, a proportional derivative controller was used during the capture of a free-floating body. More recently, a dual-arm space robot was considered with coordinated compliance control realized by combining the virtual-base modeling method and admittance control, which was used during the contact phase [35].

Following the equation modification approach, in [36] the authors have derived the equations of motion of a space robot equipped with one robotic arm considering the changes in linear and angular momenta resulting from external forces and moments acting on the satellite. The authors in [37] proposed a trajectory optimization method for a space robot with nonzero angular momentum.

Summarizing, the majority of works regarding the motion planning of space robot manipulators concern the situation in which no external forces or moments act on the space robot system, that is, the linear and angular momenta are conserved. However, when external forces and moments are exerted on the space robot, that is, the linear and angular momenta are no longer conserved; a controller-based approach is usually used. The aim of such a controller is minimizing the end-effector position and orientation errors caused by the changes in system momenta. Along with this controller, the principle of virtual work is used to counteract end-effector displacement due to external forces and moments acting on it. Only a few studies address the problem of the motion planning of space robot manipulator when the linear and angular momenta of the system are not conserved without using additional controllers. Moreover, those works consider that the nonconserved linear and angular momenta of the system result from external forces and moments acting on the space robot base. No papers address this problem when the external forces and moments act on the manipulator end-effector.

The novelty of this work is that it proposes a new method for planning the motion of dual-arm space robot manipulators when the linear and angular momenta of the space robot system are not conserved due to external forces and moments acting on the space robot base or/and manipulator’ end-effectors in which no additional controllers are needed. In the proposed method the changes in system momenta are calculated first, and then they are considered in the equations of motion of the space robot system; thus no additional controllers are needed to counteract these changes. However, when manipulator end-effectors are subjected to external forces and moments, then, in addition to considering the momenta changes in the equation of motion, the principle of virtual work is used to counteract end-effector displacements due to these forces and moments. Simulation results show that the proposed approach generates adequate torques in manipulator joints, which ensure that the manipulators track their predefined trajectories properly in spite of the changes in space robot system momenta during the realization of the task.

The next sections of this paper are as follows. In Sect. 2, we describe the dynamics of a satellite equipped with two manipulators. In Sect. 3, we present the motion planning equations of dual-arm space robot manipulators in the presence of external forces and moments acting on the space robot system. In Sect. 4, we present aimulation results for three different cases: (i) when external forces and moments act on the satellite, (ii) when external forces and moments act on manipulator end-effectors, and (iii) when external forces and moments act on the satellite and manipulator end-effectors. The conclusions follow in Sect. 5. Future research direction is presented in Sect. 6.

2 Dynamics of a dual-arm space robot system

Dynamics equations of a satellite equipped with two manipulators can be derived using the Lagrangian formalism. The generalized coordinates of the space robot system are defined as follows:

$$ \mathbf{q}_{p} = \begin{bmatrix} \mathbf{r}_{s} & \boldsymbol{\Theta }_{s} & \boldsymbol{\uptheta }_{1} & \boldsymbol{\uptheta }_{2}\end{bmatrix} ^{T}, $$
(1)
$$ \mathbf{q}_{v} = \begin{bmatrix} \mathbf{v}_{s} & \boldsymbol{\upomega }_{s} & \dot{\boldsymbol{\uptheta }}_{1} & \dot{\boldsymbol{\uptheta }}_{2}\end{bmatrix} ^{T}, $$
(2)

where, \(\mathbf{r}_{s}\) denotes the position of the satellite center of mass. \(\boldsymbol{\Theta }_{s} = (\phi ,\theta ,\psi )\) is a vector that presents the angular position of the space robot platform wherein \(\phi \), \(\theta \), and \(\psi \) are the Euler angles, the vectors \(\boldsymbol{\uptheta }_{1}\) and \(\boldsymbol{\uptheta }_{2}\) contain the angular positions of the first and second manipulator joints, respectively, \(\mathbf{v}_{s}\) and \(\boldsymbol{\upomega }_{s} = (\omega _{x},\omega _{y},\omega _{z})\) are the satellite linear and angular velocities, respectively, and the vectors \(\dot{\boldsymbol{\uptheta }}_{1}\) and \(\dot{\boldsymbol{\uptheta }}_{2}\) contain the angular velocities of the first and second manipulator joints, respectively. Since the satellite angular velocities defined in the body coordinates system \((X,Y,Z)\) are not the direct derivatives of Euler angles defined in inertial coordinates system \((X_{I},Y_{I},Z_{I})\), as it is shown in Fig. 1, the vector \(\mathbf{q}_{v}\) also is not the direct derivative of the vector \(\mathbf{q}_{p}\).

Fig. 1
figure 1

Reference frames of the dual-arm space robot system

In the case of a satellite equipped with one or more manipulators, the potential energy may be neglected. As a result, the Lagrangian of the total system is equal to the kinetic energy, which can be defined as

$$ {L} = {T} = \frac{1}{2} \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \\ \dot{\boldsymbol{\uptheta }}_{1} \\ \dot{\boldsymbol{\uptheta }}_{2} \end{bmatrix} ^{T} \begin{bmatrix} \mathbf{A} & \mathbf{B} & \mathbf{D}_{1} & \mathbf{D}_{2} \\ \mathbf{B}^{T} & \mathbf{E} & \mathbf{F}_{1} & \mathbf{F}_{2} \\ \mathbf{D}^{T}_{1} & \mathbf{F}^{T}_{1} & \mathbf{N}_{1} & \mathbf{0}_{n_{1} \times {n_{2}}} \\ \mathbf{D}^{T}_{2} & \mathbf{F}^{T}_{2} & \mathbf{0}_{n_{2}\times {n_{1}}} & \mathbf{N}_{2} \end{bmatrix} \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \\ \dot{\boldsymbol{\uptheta }}_{1} \\ \dot{\boldsymbol{\uptheta }}_{2}\end{bmatrix} , $$
(3)

where \(n_{1}\) and \(b_{2}\) are the numbers of joints of the first and second manipulators, respectively. The submatrices \(\mathbf{A}\), \(\mathbf{B}\), \(\mathbf{D}_{1}\), \(\mathbf{D}_{2}\), \(\mathbf{E}\), \(\mathbf{F}_{1}\), \(\mathbf{F}_{2}\), \(\mathbf{N}_{1}\), and \(\mathbf{N}_{2}\) are defined as follows:

$$ \mathbf{A} = \left (m_{s} + \displaystyle \sum _{i=1}^{n_{1}} m_{i} + \displaystyle \sum _{j=1}^{n_{2}} m_{j}\right )\mathbf{I}, $$
(4)

where \(m_{s}\) is the satellite mass. \(m_{i}\) is the mass of the \(i\)th link of the first manipulator, \(m_{j}\) is the mass of the \(j\)th link of the second manipulator, and \(\mathbf{I}\) is the \(3\times 3\) identity matrix;

$$ \mathbf{B} = \left (m_{s} + \displaystyle \sum _{i=1}^{n_{1}} m_{i} + \displaystyle \sum _{j=1}^{n_{2}} m_{j}\right )\tilde{\mathbf{r}}_{s \_g}, $$
(5)

where \(\mathbf{r}_{s\_g} = \mathbf{r}_{g} - \mathbf{r}_{s}\), the vector \(\mathbf{r}_{g}\) denotes the position of the center of mass of the space robot system, and the symbol ( \(\tilde{~}\) ) denotes a skew-symmetric matrix;

$$ \mathbf{D}_{1} = \displaystyle \sum _{i=1}^{n_{1}} m_{i}\mathbf{J}_{Ti}, $$
(6)

where \(\mathbf{J}_{Ti}\) is the translational part of the partial Jacobian of the first manipulator;

$$ \mathbf{D}_{2} = \displaystyle \sum _{j=1}^{n_{2}} m_{j}\mathbf{J}_{Tj}; $$
(7)

where \(\mathbf{J}_{Tj}\) is the translational part of the partial Jacobian of the second manipulator;

$$ \mathbf{E} = \mathbf{I}_{s} + \displaystyle \sum _{i=1}^{n_{1}} \left (\mathbf{I}_{i} + m_{i}\tilde{\mathbf{r}}_{i\_s}^{T} \tilde{\mathbf{r}}_{i\_s}\right )+ \displaystyle \sum _{j=1}^{n_{2}} \left (\mathbf{I}_{j} + m_{j}\tilde{\mathbf{r}}_{j\_s}^{T} \tilde{\mathbf{r}}_{j\_s}\right ), $$
(8)

where \(\mathbf{I}_{s}\) is satellite inertia matrix, \(\mathbf{I}_{i}\) is the inertia matrix of the \(i\)th link of the first manipulator, \(\mathbf{I}_{j}\) is the inertia matrix of the \(j\)th link of the second manipulator, \(\mathbf{r}_{i\_s} = \mathbf{r}_{\mathit{ic}} - \mathbf{r}_{s}\), where \(\mathbf{r}_{\mathit{ic}}\) denotes the mass center of the \(i\)th link of the first manipulator; similarly, \(\mathbf{r}_{j\_s} = \mathbf{r}_{\mathit{jc}} - \mathbf{r}_{s}\), where \(\mathbf{r}_{\mathit{jc}}\) denotes the mass center of the \(j\)th link of the second manipulator;

$$ \mathbf{F}_{1} = \displaystyle \sum _{i=1}^{n_{1}} \left (\mathbf{I}_{i} \mathbf{J}_{Ri} + m_{i}\tilde{\mathbf{r}}_{i\_s}\mathbf{J}_{Ti} \right ), $$
(9)

where \(\mathbf{J}_{Ri}\) is the rotational part of the partial Jacobian of the first manipulator;

$$ \mathbf{F}_{2} = \displaystyle \sum _{j=1}^{n_{2}} \left (\mathbf{I}_{j} \mathbf{J}_{\mathit{Rj}} + m_{j}\tilde{\mathbf{r}}_{j\_s}\mathbf{J}_{Tj} \right ), $$
(10)

where \(\mathbf{J}_{\mathit{Rj}}\) is the rotational part of the partial Jacobian of the second manipulator;

$$ \mathbf{N}_{1} = \displaystyle \sum _{i=1}^{n_{1}} \left (\mathbf{J}_{Ri}^{T} \mathbf{I}_{i}\mathbf{J}_{Ri} + m_{i}\mathbf{J}_{Ti}^{T}\mathbf{J}_{Ti} \right ); $$
(11)
$$ \mathbf{N}_{2} = \displaystyle \sum _{j=1}^{n_{2}} \left (\mathbf{J}_{\mathit{Rj}}^{T} \mathbf{I}_{j}\mathbf{J}_{\mathit{Rj}} + m_{j}\mathbf{J}_{Tj}^{T}\mathbf{J}_{Tj} \right ). $$
(12)

The second-order differential equation of a dual-arm space robot system derived using Lagrangian formalism in the presence of external forces and moments exerted on the space robot system can be written as follows:

$$ \mathbf{M}\left (\mathbf{q}_{p} \right )\dot{\mathbf{q}}_{v} + \mathbf{C}\left (\mathbf{q}_{v}, \mathbf{q}_{p} \right ) = \begin{bmatrix} \mathbf{F}_{\mathit{sc}} \\ \mathbf{H}_{\mathit{sc}} \\ \mathbf{u}_{1} \\ \mathbf{u}_{2}\end{bmatrix} + \begin{bmatrix} \mathbf{F}_{s} \\ \mathbf{H}_{s} \\ \mathbf{0}_{n_{1}\times {1}} \\ \mathbf{0}_{n_{2}\times {1}}\end{bmatrix} + \begin{bmatrix} \mathbf{0}_{3\times {6}} \\ \mathbf{0}_{3\times {6}} \\ \mathbf{J}_{M1}^{T} \\ \mathbf{0}_{n_{2}\times {6}} \end{bmatrix} \begin{bmatrix} \mathbf{F}_{{e}_{1}} \\ \mathbf{H}_{{e}_{1}} \end{bmatrix} + \begin{bmatrix} \mathbf{0}_{3\times {6}} \\ \mathbf{0}_{3\times {6}} \\ \mathbf{0}_{n_{1}\times {6}} \\ \mathbf{J}_{M2}^{T} \end{bmatrix} \begin{bmatrix} \mathbf{F}_{{e}_{2}} \\ \mathbf{H}_{{e}_{2}} \end{bmatrix} , $$
(13)

where \(\mathbf{F}_{\mathit{sc}}\) and \(\mathbf{H}_{\mathit{sc}}\) are the forces and moments determined by the satellite control system and applied to the satellite using its thrusters, whereas \(\mathbf{u}_{1}\) and \(\mathbf{u}_{2}\) are the control torques applied to the first and second manipulator’s joints, respectively; \(\mathbf{F}_{s}\) and \(\mathbf{H}_{s}\) denote the external forces and moments acting on the satellite center of mass; \(\mathbf{F}_{e_{1}}\) and \(\mathbf{H}_{e_{1}}\) are the external forces and moments applied by the environment to the end-effector of the first manipulator, respectively, whereas \(\mathbf{F}_{e_{2}}\) and \(\mathbf{H}_{e_{2}}\) are the external forces and moments applied by the environment to the end-effector of the second manipulator, respectively; \(\mathbf{C}\left (\mathbf{q}_{v}, \mathbf{q}_{p} \right )\) in equation (13) denotes the Coriolis matrix, whereas

$$ \mathbf{M}\left (\mathbf{q}_{p} \right ) = \begin{bmatrix} \mathbf{A} & \mathbf{B} & \mathbf{D}_{1} & \mathbf{D}_{2} \\ \mathbf{B}^{T} & \mathbf{E} & \mathbf{F}_{1} & \mathbf{F}_{2} \\ \mathbf{D}^{T}_{1} & \mathbf{F}^{T}_{1} & \mathbf{N}_{1} & \mathbf{0}_{n_{1} \times {n_{2}}} \\ \mathbf{D}^{T}_{2} & \mathbf{F}^{T}_{2} & \mathbf{0}_{n_{2}\times {n_{1}}} & \mathbf{N}_{2} \end{bmatrix} $$
(14)

is the mass matrix of the system.

Both the mass matrix \(\mathbf{M}\left (\mathbf{q}_{p} \right )\) and the Coriolis matrix \(\mathbf{C}\left (\mathbf{q}_{v}, \mathbf{q}_{p} \right )\) are derived in the Appendix for a planar dual-arm space robot that was used in the simulations. Having the desired motion of the space robot system, that is, \(\mathbf{q}_{p}\) and \(\mathbf{q}_{v}\), equation (13) can be used to determine the control torques \(\mathbf{u}_{1}\) and \(\mathbf{u}_{2}\) applied to the joints of both manipulators and the forces \(\mathbf{F}_{\mathit{sc}}\) and moments \(\mathbf{H}_{\mathit{sc}}\) applied to the satellite to achieve the desired motion of the system. In this work, we focus on the motion planning of space robot manipulators for the situation in which the satellite is in a free-floating mode, and thus forces and moments determined by the satellite’ control system are equal to zero, that is, \(\mathbf{F}_{\mathit{sc}}=0\) and \(\mathbf{H}_{\mathit{sc}}=0\).

3 Motion planning of manipulators in the presence of external forces and moments acting on the space robot system

In this section, we present the kinematic equations of a satellite equipped with two manipulators with rotational joints in the general case, in which external forces and moments act both on the satellite and on manipulator’ end-effectors. All the following equations are expressed with respect to the inertial reference frame. Starting from the equations of motion of a dual-arm space robot and assuming that the linear and angular momenta of the space robot system are conserved and are equal to zero, we define the position of the end-effector of the first manipulator as follows:

$$ \mathbf{r}_{ee1} = \mathbf{r}_{s} + \mathbf{r}_{q1} + \displaystyle \sum _{i=1}^{n_{1}} \mathbf{l}_{i}, $$
(15)

where \(\mathbf{r}_{q1}\) denotes the mounting position of the first manipulator of the robot with respect to the origin of coordinate system located in the satellite center of mass, and \(\mathbf{l}_{i}\) is the \((i+1)\)th kinematic pair position with respect to the \(i\)th kinematic pair (all defined in the inertial coordinate system). The linear velocity of the end-effector of the first manipulator is defined as

$$ \mathbf{v}_{ee1} = \mathbf{v}_{s} + \boldsymbol{\upomega }_{s} \times ( \mathbf{r}_{ee1} - \mathbf{r}_{s}) + \displaystyle \sum _{i=1}^{n_{1}} \begin{bmatrix} \mathbf{k}_{1i} \times (\mathbf{r}_{ee1} - \mathbf{r}_{1i}) \end{bmatrix} \dot{\theta }_{1i}, $$
(16)

where \(\mathbf{k}_{1i}\) denotes the angular velocity unit vector, \(\mathbf{r}_{1i}\) is the position of the \(i\)th kinematic pair of the first manipulator, and \(\dot{\theta }_{1i}\) denotes the angular velocity of the \(i\)th joint of the first manipulator of the robot. The angular velocity of the end-effector of the first manipulator can be written using the angular velocity of the satellite and the angular velocities of all kinematic pairs as follows:

$$ \boldsymbol{\upomega }_{ee1} = \boldsymbol{\upomega }_{s} + \displaystyle \sum _{i=1}^{n_{1}} \mathbf{k}_{1i}\dot{\theta }_{1i}. $$
(17)

Thus the linear and angular velocities of the end-effector of the first manipulator can be calculated using the following equation:

$$ \begin{bmatrix} \mathbf{v}_{ee1} \\ \boldsymbol{\upomega }_{ee1} \end{bmatrix} = \mathbf{J}_{s1} \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \end{bmatrix} + \mathbf{J}_{M1}\dot{\boldsymbol{\uptheta }}_{1}, $$
(18)

where \(\mathbf{J}_{s1}\) is the satellite Jacobian according to the first manipulator given by the \(6\times 6\)-dimensional matrix

$$ \mathbf{J}_{s1} = \begin{bmatrix} \mathbf{I} & \tilde{\mathbf{r}}_{ee1\_s}^{T} \\ \mathbf{0}_{3\times 3} & \mathbf{I} \end{bmatrix} , $$
(19)

where \(\mathbf{r}_{ee1\_s} = \mathbf{r}_{ee1} - \mathbf{r}_{s}\). \(\mathbf{J}_{M1}\) in equation (18) is the Jacobian of a manipulator mounted on a fixed base (first manipulator) stated in inertial reference frame and defined by the \(6\times {n_{1}}\)-dimensional matrix

$$ \mathbf{J}_{M1} = \begin{bmatrix} \mathbf{k}_{11} \times (\mathbf{r}_{ee1} - \mathbf{r}_{11}) & \cdots & \mathbf{k}_{1n_{1}} \times (\mathbf{r}_{ee1} - \mathbf{r}_{1n_{1}}) \\ \mathbf{k}_{11} & \cdots & \mathbf{k}_{1n_{1}}\end{bmatrix} . $$
(20)

The same approach was used to determine the position \(\mathbf{r}_{ee2}\) and the velocities \(\mathbf{v}_{ee2}\), \(\boldsymbol{\upomega }_{ee2}\) of the end-effector as well as the Jacobians \(\mathbf{J}_{s2}\) and \(\mathbf{J}_{M2}\) of the second manipulator.

The authors followed the approach presented in [36,37,38], which involves a satellite equipped with one manipulator where external forces and moments act on the satellite. In this paper, we extend this approach to the case of two manipulators mounted on the same robotic platform, where external forces and moments act on the satellite and end-effectors of the manipulators.

When external forces or moments act on any part of satellite–manipulator(s) system, the linear and angular momenta of the entire system are no longer conserved. The angular momentum of the space robot system can be written as follows:

$$ \mathbf{L} = \mathbf{L}_{0} + \mathbf{r}_{s} \times \mathbf{P}, $$
(21)

where \(\mathbf{L}_{0}\) denotes the initial system angular momentum and \(\mathbf{P}\) denotes the linear system momentum. Thus the momenta of the system that consists of a satellite equipped with two manipulators in the presence of external forces and moments can be expressed as

$$ \begin{bmatrix} \mathbf{P} \\ \mathbf{L} \end{bmatrix} = \mathbf{H}_{2} \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \end{bmatrix} + \begin{bmatrix} \mathbf{H}_{31} & \mathbf{H}_{32}\end{bmatrix} \begin{bmatrix} \dot{\boldsymbol{\uptheta }}_{1} \\ \dot{\boldsymbol{\uptheta }}_{2}\end{bmatrix} = \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} + \begin{bmatrix} \mathbf{P}_{0} \\ \mathbf{L}_{0} \end{bmatrix} . $$
(22)

where \(\mathbf{f}_{m}\) and \(\mathbf{f}_{\mathit{am}}\) are time-dependent functions that describe changes of linear and angular momenta of the space robot system and depend on the external forces and moments both applied on the satellite center of mass and on the manipulator end-effectors:

$$\begin{aligned} \mathbf{f}_{m} =& \int _{t_{0}}^{t_{f}} \left (\mathbf{F}_{s} + \mathbf{J}_{s1}^{T}\mathbf{F}_{{e}_{1}}+ \mathbf{J}_{s2}^{T} \mathbf{F}_{{e}_{2}}\right )\,dt, \end{aligned}$$
(23)
$$\begin{aligned} \mathbf{f}_{\mathit{am}} =&\int _{t_{0}}^{t_{f}} \left (\mathbf{H}_{s} + \mathbf{J}_{s1}^{T}\mathbf{H}_{{e}_{1}} + \mathbf{J}_{s2}^{T} \mathbf{H}_{{e}_{2}}+ \tilde{\mathbf{r}}_{s\_g}\left ( \mathbf{F}_{s} + \mathbf{J}_{s1}^{T}\mathbf{F}_{{e}_{1}}+ \mathbf{J}_{s2}^{T} \mathbf{F}_{{e}_{2}}\right )\right )\, dt. \end{aligned}$$
(24)

where \(t_{0}\) and \(t_{f}\) are the initial and final times in which the external forces and moments are exerted on the satellite–manipulator(s) system, respectively. If the external forces act on any other point on the satellite rather than its center of mass, then this force should be first translated to satellite center of mass first, and then the equations presented here could be used. In equations (23) and (24), all the external forces and moments are transferred to the center of mass of the space robot system’.

In this work, we consider the initial momenta of the space robot system to be equal to zero. Thus equation (22) takes the form

$$ \mathbf{H}_{2} \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \end{bmatrix} + \begin{bmatrix} \mathbf{H}_{31} & \mathbf{H}_{32}\end{bmatrix} \begin{bmatrix} \dot{\boldsymbol{\uptheta }}_{1} \\ \dot{\boldsymbol{\uptheta }}_{2}\end{bmatrix} = \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} , $$
(25)

where

$$\begin{aligned} \mathbf{H}_{2} =& \begin{bmatrix} \mathbf{A} & \mathbf{B} \\ \mathbf{B}^{T} + \tilde{\mathbf{r}}_{s}\mathbf{A} & \mathbf{E} + \tilde{\mathbf{r}}_{s}\mathbf{B} \end{bmatrix} , \end{aligned}$$
(26)
$$\begin{aligned} \mathbf{H}_{31} =& \begin{bmatrix} \mathbf{D}_{1} \\ \mathbf{F}_{1} + \tilde{\mathbf{r}}_{s}\mathbf{D}_{1} \end{bmatrix} , \end{aligned}$$
(27)
$$\begin{aligned} \mathbf{H}_{32} =& \begin{bmatrix} \mathbf{D}_{2} \\ \mathbf{F}_{2} + \tilde{\mathbf{r}}_{s}\mathbf{D}_{2} \end{bmatrix} . \end{aligned}$$
(28)

Assuming that the initial linear and angular momenta are zero, the linear and angular velocities of the satellite can be defined as follows:

$$ \begin{bmatrix} \mathbf{v}_{s} \\ \boldsymbol{\upomega }_{s} \end{bmatrix} = \mathbf{H}_{2}^{-1}\left ( \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} - \begin{bmatrix} \mathbf{H}_{31} & \mathbf{H}_{32}\end{bmatrix} \begin{bmatrix} \dot{\boldsymbol{\uptheta }}_{1} \\ \dot{\boldsymbol{\uptheta }}_{2}\end{bmatrix} \right ). $$
(29)

Thus the velocity of the end-effector of the first manipulator can be written as follows:

$$ \begin{bmatrix} \mathbf{v}_{ee1} \\ \boldsymbol{\upomega }_{ee1} \end{bmatrix} = \mathbf{J}_{s1}\mathbf{H}_{2}^{-1} \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} + \left (\mathbf{J}_{M1} - \mathbf{J}_{s1}\mathbf{H}_{2}^{-1} \mathbf{H}_{31}\right )\dot{\boldsymbol{\uptheta }}_{1} - \mathbf{J}_{s1} \mathbf{H}_{2}^{-1}\mathbf{H}_{32}\dot{\boldsymbol{\uptheta }}_{2}. $$
(30)

Similarly, the velocity of the end-effector of the second manipulator can be written as follows:

$$ \begin{bmatrix} \mathbf{v}_{ee2} \\ \boldsymbol{\upomega }_{ee2} \end{bmatrix} = \mathbf{J}_{s2}\mathbf{H}_{2}^{-1} \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} - \mathbf{J}_{s2}\mathbf{H}_{2}^{-1}\mathbf{H}_{31} \dot{\boldsymbol{\uptheta }}_{1}+ \left (\mathbf{J}_{M2} - \mathbf{J}_{s2} \mathbf{H}_{2}^{-1}\mathbf{H}_{32}\right )\dot{\boldsymbol{\uptheta }}_{2}. $$
(31)

Equations (30) and (31) are simultaneous equations, and for a given Cartesian trajectories of both end-effectors (defined by linear and angular velocities of end-effectors), the joints velocities \(\dot{\boldsymbol{\uptheta }}_{1}\) and \(\dot{\boldsymbol{\uptheta }}_{2}\) of both manipulators for the case where linear and angular momenta are not conserved can be determined as follows:

$$\begin{aligned} \dot{\boldsymbol{\uptheta }}_{\mathbf{1}} =& \left ( \mathbf{{Z}_{1}+ {Z}_{2}{Z}_{3}{Z}_{4}}\right )^{-1} \left ( \begin{bmatrix} \mathbf{v}_{ee2} \\ \boldsymbol{\upomega }_{ee2} \end{bmatrix} + \mathbf{{Z}_{2}{Z}_{3}} \begin{bmatrix} \mathbf{v}_{ee1} \\ \boldsymbol{\upomega }_{ee1} \end{bmatrix} -\mathbf{Z}_{6} -\mathbf{Z}_{2}\mathbf{Z}_{3}\mathbf{Z}_{5} \right ), \end{aligned}$$
(32)
$$\begin{aligned} \dot{\boldsymbol{\uptheta }}_{\mathbf{2}} =& \mathbf{{Z}_{3}}\left ( \mathbf{Z}_{5} +\mathbf{{Z}_{4}} \dot{\boldsymbol{\uptheta }}_{\mathbf{1}} - \begin{bmatrix} \mathbf{v}_{ee1} \\ \boldsymbol{\upomega }_{ee1} \end{bmatrix} \right ), \end{aligned}$$
(33)

where

$$\begin{aligned} \mathbf{Z}_{1} =& - \mathbf{J}_{s2}\mathbf{H}_{2}^{-1}\mathbf{H}_{31}, \end{aligned}$$
(34)
$$\begin{aligned} \mathbf{Z}_{2} =& \mathbf{J}_{M2} - \mathbf{J}_{s2}\mathbf{H}_{2}^{-1} \mathbf{H}_{32}, \end{aligned}$$
(35)
$$\begin{aligned} \mathbf{Z}_{3} =& \left (\mathbf{J}_{s1}\mathbf{H}_{2}^{-1}\mathbf{H}_{32} \right )^{-1}, \end{aligned}$$
(36)
$$\begin{aligned} \mathbf{Z}_{4} =& \mathbf{J}_{M1} - \mathbf{J}_{s1}\mathbf{H}_{2}^{-1} \mathbf{H}_{31}, \end{aligned}$$
(37)
$$\begin{aligned} \mathbf{Z}_{5} =& \mathbf{J}_{s1}\mathbf{H}_{2}^{-1} \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} , \end{aligned}$$
(38)
$$\begin{aligned} \mathbf{Z}_{6} =& \mathbf{J}_{s2}\mathbf{H}_{2}^{-1} \begin{bmatrix} \mathbf{f}_{m} \\ \mathbf{f}_{\mathit{am}} \end{bmatrix} . \end{aligned}$$
(39)

Equations (32) and (33) enable us to calculate the joints velocities of both manipulators for given Cartesian trajectories of both end-effectors. After the joints velocities are determined, the satellite linear and angular velocities are computed using equation (29). Then equation (13) is used to calculate the control torques that should be applied in the joints of both manipulators to achieve the predefined Cartesian trajectories of the end-effectors.

4 Simulations and results

To verify the method proposed in this work, we developed a planar dual-arm space robot using MATLAB/Simulink software. This robot consists of a free-floating satellite and two robotic arms with two degrees of freedom, each mounted on this satellite. The space robot system used in simulations is presented in Fig. 2.

Fig. 2
figure 2

The space robot system used in simulations

The state vector of the space robot system used in simulations is defined as \(\mathbf{q}_{p}= \begin{bmatrix} x_{0} & y_{0} & q_{0} & q_{11} & q_{12} & q_{21} & q_{22} \end{bmatrix} ^{T} \), where \(x_{0}\) is the satellite position in the \(x\)-axis, \(y_{0}\) is the satellite position in the \(y\)-axis, whereas \(q_{0}\) is the satellite orientation around the \(z\)-axis; \(q_{11}\) and \(q_{12}\) are the angular positions of the first and second joints of the first manipulator, respectively, and \(q_{21}\) and \(q_{22}\) are the angular positions of the first and second joints of the second manipulator, respectively. Mass and inertia parameters of the satellite are shown in Table 1.

Table 1 Satellite parameters

For simplicity, in this work, both manipulators are of the same construction. However, the proposed method is universal and could be used for manipulators with different degrees of freedom and different lengths and masses. The parameters of manipulator links are presented in Table 2. In addition to the mass and inertia parameters, the lengths of manipulator links and the positions of centers of masses of links are also given in Table 2. The mounting points of manipulators are given in Table 3. Several assumptions were made: the satellite was assumed to be a rigid body, and each manipulator was assumed to be composed of rigid links connected with each other by revolute joints. The mass matrix and the Coriolis matrix of the space robot system used in simulations are derived in the Appendix.

Table 2 Parameters of manipulator links
Table 3 Mounting points of manipulators

To verify the proposed method, simulation experiments were conducted for three situations: (i) for the situation in which the external forces and moments act on the satellite, (ii) for the situation in which the external forces and moments act on the end-effectors of manipulators, and (iii) for the situation in which the external forces and moments act on the satellite and on the end-effectors of manipulators.

The predefined Cartesian trajectories of the end-effectors manipulators will be the same for all situations. The first manipulator has to realize a straight-line trajectory. The predefined trajectory starts at the position (1.3 m, 0.7 m) and ends at the position (1.3 m, 0.2 m). The task of the second manipulator is to keep its end-effector in the same position (1.2 m, \(-0.4\text{ m}\)) during the maneuver. Such trajectories can be related to the problem of on-orbit assembly (where one manipulator has to hold the structure being assembled, whereas the other manipulator has to perform the assembling task, for example, “welding”) and to the problem of on-orbit servicing. The space robot should accomplish its mission within 5 s. Having the predefined Cartesian trajectories of the end-effectors, the related linear and angular velocities of these end-effectors can be determined using 5th-order polynomials. To get smooth profiles of end-effectors velocities, three phases are used. The first phase is an acceleration phase in which the end-effector velocity accelerates from zero to a predefined maximal value. This phase lasts for 1.5 s. In the second phase, end-effector moves at maximum velocity for the next 2 s. The last phase is the deceleration phase in which the end-effector velocity decelerates from its maximal value to zero. The duration of the last phase is 1.5 s. Having these trajectories, the method described in Sect. 3 is used to determine joints angular positions considering that the satellite is a free-floating object and there are external forces and moments acting on the satellite or end-effectors or both of them. Then the control torques are calculated. Later, simulations in which the calculated control torques are used are conducted, and the behavior of the space robot system due to these control torques and the external forces and moments is presented.

4.1 Situation 1: external forces and moments act on the satellite

The first simulation is dedicated to the situation in which the external forces and moments act on the satellite. The external forces and moments are constant and equal to

$$\begin{bmatrix} \mathbf{F}_{s} \\ \mathbf{H}_{s} \end{bmatrix} = \begin{bmatrix} 1 & 0.6 & 0 & 0 & 0 & 0.1\end{bmatrix} ^{T}. $$

Here \(\mathbf{F}_{e_{1}}=0\), \(\mathbf{F}_{e_{2}}=0\), \(\mathbf{H}_{e_{1}}=0\), \(\mathbf{H}_{e_{2}}=0\).

The forces are given in N, whereas the moments are given in Nm. The forces and moments are given in the inertial reference frame. Figure 3 presents the results of the motion planning of space robot manipulators while performing the previously defined task for two cases. In both cases the torques applied in the joints of manipulators consider their Cartesian trajectories being executed and the dynamic coupling between the satellite and manipulators. However, in the first case (Case 1) the changes in system’s momenta caused by the external forces and moments that act on the satellite are not considered, whereas in the second case (Case 2) the changes in system’s momenta are considered.

Fig. 3
figure 3

Space robot system while performing the predefined task: when the changes in system’s momenta are not considered (on the left) and when they are considered (on the right)

The trajectory error for both cases is presented in Fig. 4 (for the error in the \(x\)-axis) and in Fig. 5 (for the error in the \(y\)-axis). Note that the consideration of system’s momenta changes during manipulator motion planning ensures the proper realization of the task in spite of the external forces and moments that are exerted on the satellite.

Fig. 4
figure 4

Manipulators’ end-effectors trajectories errors in the \(x\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

Fig. 5
figure 5

Manipulators’ end-effectors trajectories errors in the \(y\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

The corresponding control torques for both cases are presented in Fig. 6, and the corresponding positions of joints are presented in Fig. 7. The changes in linear and angular momenta of the space robot system due to the external forces and moments applied on the satellite are presented in Fig. 8. Note that at the end of the maneuver, all the torques applied in manipulator joints are equal to zero in the first case. This is correct for the situation where no external forces and moments act on the space robot system. However, when the external forces and moments act on the system, the linear and angular momenta of the space robot system have nonzero values. Thus nonzero torque(s) is (are) needed to counteract the effect of these external forces and moments as in the second case.

Fig. 6
figure 6

Control torques

Fig. 7
figure 7

Positions of joints

Fig. 8
figure 8

Linear and angular momenta of the space robot system

4.2 Situation 2: external forces and moments act on end-effectors of manipulators

The second simulation is dedicated to the situation in which the external forces and moments act on the end-effectors of manipulators. The forces and moments applied on the end-effector of the first manipulator are constant and are equal to

$$\begin{bmatrix} \mathbf{F}_{e_{1}} \\ \mathbf{H}_{e_{1}} \end{bmatrix} = \begin{bmatrix} -0.15 & 0.1 & 0 & 0 & 0 & 0\end{bmatrix} ^{T}, $$

whereas the forces and moments applied on the end-effector of the second manipulator are also constant but are equal to

$$\begin{bmatrix} \mathbf{F}_{e_{2}} \\ \mathbf{H}_{e_{2}} \end{bmatrix} = \begin{bmatrix} 0.1 & -0.2 & 0 & 0 & 0 & -0.3\end{bmatrix} ^{T}, $$

where \(\mathbf{F}_{s}=0\), \(\mathbf{H}_{s}=0\).

The forces are given in N, whereas the moments are given in Nm. The forces and moments are given in the inertial reference frame. Figure 9 presents the results of manipulators motion planning in the presence of external forces and moments acting on manipulator end-effectors while performing the previously defined task for two cases. In the first case (Case 1) the motion of the manipulators is planned on the basis of the Cartesian trajectories, which need to be executed considering the dynamic coupling between the satellite and manipulators and using the principle of virtual work. In the second case (Case 2), in addition to the previously mentioned aspects, system nonzero momenta due to the external forces and moments acting on manipulator end-effectors are considered using the proposed method. The trajectory error for both cases is presented in Fig. 10 (for the error in the \(x\)-axis) and in Fig. 11 (for the error in the \(y\)-axis).

Fig. 9
figure 9

Space robot system while performing the predefined task: when the changes in system’s momenta are not considered (on the left) and when they are considered (on the right)

Fig. 10
figure 10

Manipulators’ end-effectors trajectories errors in the \(x\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

Fig. 11
figure 11

Manipulators’ end-effectors trajectories errors in the \(y\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

The corresponding control torques for both cases are presented in Fig. 12, and the corresponding joints positions are presented in Fig. 13. The changes in linear and angular momenta of the space robot system due to the external forces and moments acting on the manipulator’ end-effectors are presented in Fig. 14.

Fig. 12
figure 12

Control torques

Fig. 13
figure 13

Positions of joints

Fig. 14
figure 14

Linear and angular momenta of the space robot system

4.3 Situation 3: external forces and moments act on the space robot system

In this simulation the external forces and moments act on the satellite and on the end-effectors of manipulators. The external forces and moments to which the satellite is subjected are constant and equal to

$$\begin{bmatrix} \mathbf{F}_{s} \\ \mathbf{H}_{s} \end{bmatrix} = \begin{bmatrix} 1 & 0.6 & 0 & 0 & 0 & 0.1\end{bmatrix} ^{T}. $$

The forces and moments applied on the end-effector of the first manipulator are constant and equal to

$$\begin{bmatrix} \mathbf{F}_{e_{1}} \\ \mathbf{H}_{e_{1}} \end{bmatrix} = \begin{bmatrix} -0.15 & 0.1 & 0 & 0 & 0 & 0\end{bmatrix} ^{T}, $$

whereas the forces and moments applied on the end-effector of the second manipulator are also constant but are equal to

$$\begin{bmatrix} \mathbf{F}_{e_{2}} \\ \mathbf{H}_{e_{2}} \end{bmatrix} = \begin{bmatrix} 0.1 & -0.2 & 0 & 0 & 0 & -0.3\end{bmatrix} ^{T}. $$

The forces are given in N, whereas the moments are given in Nm. The forces and moments are given in the inertial reference frame. Figure 15 presents the results of manipulators motion planning in the presence of external forces and moments acting on the satellite and on the end-effectors of manipulators while performing the previously defined task for two cases. In the first case (Case 1) the motion of the manipulators is planned on the basis of the Cartesian trajectories, which need to be executed considering the dynamic coupling between the satellite and manipulators and using the principle of virtual work. In the second case (Case 2), in addition to the previously mentioned aspects, system’s nonzero momenta due to external forces and moments acting on both, the satellite and manipulators’ end-effectors are considered using the method proposed in this paper.

Fig. 15
figure 15

Space robot system while performing the predefined task: when the changes in system’s momenta are not considered (on the left) and when they are considered (on the right)

The trajectory error for both cases is presented in Fig. 16 (for the error in the \(x\)-axis) and in Fig. 17 (for the error in the \(y\)-axis).

Fig. 16
figure 16

Manipulators’ end-effectors trajectories errors in \(x\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

Fig. 17
figure 17

Manipulators’ end-effectors trajectories errors in \(y\)-axis. EE1 denotes the end-effector of the first manipulator, whereas EE2 denotes the end-effector of the second manipulator

The corresponding control torques for both cases are presented in Fig. 18, and the corresponding positions of joints are presented in Fig. 19. The changes in linear and angular momenta of the space robot system due to the external forces and moments acting on the satellite and on the end-effectors of manipulators are presented in Fig. 20.

Fig. 18
figure 18

Control torques

Fig. 19
figure 19

Positions of joints

Fig. 20
figure 20

Linear and angular momenta of the space robot system

Note that at the end of the maneuver, the torques applied in manipulator joints (in Sects. 4.2 and 4.3) are not equal to zero in both cases. This results from using the principle of a virtual work, in which additional torques are determined to counteract the effect generated by the external forces and moments acting on the end-effectors of manipulators. Using only the principle of a virtual work is sufficient in the case of a robot with fixed base or in the case of a space robot in which the satellite is controlled in such a way that it keeps its position and orientation fixed during the maneuver. However, we can seen that this approach alone does not ensure a proper realization of the task when the space robot has a free-floating base. The method introduced in this paper proposes to consider also the changes in linear and angular momenta of the space robot system that result due to external forces and moments acting on manipulator end-effectors and on the satellite during the motion planning of the manipulators. Thus the overall torque applied in a single manipulator joint consists of the torque due to the predefined Cartesian trajectory of the manipulator end-effector, the torque due to the principle of a virtual work, and the torque due to the consideration of the momenta of the space robot system. Note that the consideration of nonzero momenta of the space robot system during the motion planning of the manipulators in addition to the usage of the virtual work principle ensures the proper realization of the task in spite of the external forces and moments that are exerted on the space robot system.

5 Future research direction

Hybrid impedance control technique (HIC) combines the hybrid force/position control and the impedance control of the manipulator end-effector. The HIC system generates adequate acceleration in task space that allows us to accomplish the predefined task. Such a system would be useful during different on-orbit missions in which a contact between the space robot and the target satellite/structure occurs. In the future, we plan to integrate the method presented in this paper into a hybrid impedance control system of a space robot. The module in which this method will be implemented will be responsible for calculating the torques in the manipulator joint on the basis of the received acceleration, in the presence of external forces and moments acting on the space robot system due to the contact.

6 Conclusions

When the manipulator of a robot is subjected to external forces and moments, the principle of the virtual work is used to counteract end-effector displacement due to these forces and moments. This approach is sufficient in the case of a terrestrial robot with fixed base or a space robot in which the satellite is controlled in such a way that it keeps its position and orientation fixed during the maneuver. However, in the case of a free-floating space robot, this approach is not adequate. This is due to the fact that the momenta of the free-floating space robot system are note equal to zero in the presence of external forces and moments. Moreover, these momenta are changing in time. Most of the works that concern the motion planning problem of a space robot manipulator(s) either consider that no external forces or moments act on the space robot system or use additional controllers when the space robot system is subjected to external forces and moments. The aim of such a controller is minimizing the end-effector position and orientation errors caused by system nonzero momenta due to external forces and moments acting on this system. In this work, we propose a novel method for motion planning of dual-arm space robot manipulators when the space robot is subjected to external forces and moments in which no additional controllers are needed. The motion planning equations of dual-arm space robot manipulators in the presence of external forces and moments acting on the space robot system were derived first. Then we verified the method proposed in this paper for three cases: (i) when external forces and moments act on the satellite, (ii) when external forces and moments act on the end-effectors of manipulators, and (iii) when external forces acton both, the satellite and the end-effectors of manipulators. The simulation results show that the proposed method ensures that the manipulators will realize the predefined task properly in spite of the changing momenta of the space robot system caused by the external forces and moments exerted on this system. It is worth noting that the external forces and moments used in simulations were constant; however, the proposed method also works properly in the case of external forces and moments that are changing in time. Although the approach proposed in this paper is still being tested (open-loop simulation), it could be useful in real space mission with inclusion of other aspects like, for example, the uncertainties in systems dynamics; however, the torques calculated using this method could be used as a reference values when developing a manipulator control system that would be used in a real missions. Moreover, knowing the predicted values of the external forces and moments, provided to some extent, by using this method, it could be ascertained whether or not the predefined task is executable.