# Equations of Motion of Free-Floating Spacecraft-Manipulator Systems: An Engineer's Tutorial

^{1}Department of Mechanical and Aerospace Engineering, Florida Institute of Technology, Melbourne, FL, United States^{2}Spacecraft Robotics Laboratory, Mechanical and Aerospace Engineering Department, Naval Postgraduate School, Monterey, CA, United States

The paper provides a step-by-step tutorial on the Generalized Jacobian Matrix (GJM) approach for modeling and simulation of spacecraft-manipulator systems. The General Jacobian Matrix approach describes the motion of the end-effector of an underactuated manipulator system solely by the manipulator joint rotations, with the attitude and position of the base-spacecraft resulting from the manipulator motion. The coupling of the manipulator motion with the base-spacecraft are thus expressed in a generalized inertia matrix and a GJM. The focus of the paper lies on the complete analytic derivation of the generalized equations of motion of a free-floating spacecraft-manipulator system. This includes symbolic analytic expressions for all inertia property matrices of the system, including their time derivatives and joint-angle derivatives, as well as an expression for the generalized Jacobian of a generic point on any link of the spacecraft-manipulator system. The kinematics structure of the spacecraft-manipulator system is described both in terms of direction-cosine matrices and unit quaternions. An additional important contribution of this paper is to propose a new and more detailed definition for the modes of maneuvering of a spacecraft-manipulator. In particular, the two commonly used categories free-flying and free-floating are expanded by the introduction of five categories, namely floating, rotation-floating, rotation-flying, translation-flying, and flying. A fully-symbolic and a partially-symbolic option for the implementation of a numerical simulation model based on the proposed analytic approach are introduced and exemplary simulation results for a planar four-link spacecraft-manipulator system and a spatial six-link spacecraft manipulator system are presented.

## Introduction

Small spacecraft equipped with robotic manipulators will be the backbone of any robotic on-orbit servicing, asteroid mining, or active space debris removal missions. Examples for such missions are discussed in more detail by Yoshida (2003), Shoemaker and Wright (2004), Reintsema et al. (2010), Barnhart et al. (2013). The use of spacecraft-mounted robotic manipulator systems for the assembly and maintenance of spacecraft has a long and successful history with the Space Shuttle and International Space Station programs. The Space Shuttle orbiters were equipped with the Shuttle Remote Manipulator System, colloquially known as *Canadarm* (Sallaberger, 1997). The SRMS was successfully used to capture the Hubble space telescope and other satellites during servicing missions, to position astronauts during extra-vehicular activities, and to assemble and resupply the ISS (Goodman, 2006; Hale et al., 2011). The ISS is currently equipped with two manipulator systems, the Space Station Remote Manipulator System (Stieber et al., 1997), also known as *Canadarm 2*, and the Japanese Experiment Module Remote Manipulator System (Sato and Wakabayashi, 2001). The Space Station Remote Manipulator System is used to capture and berth H-II Transfer Vehicle (HTV), *Dragon*, and *Cygnus* vehicles, and to position supplies and astronauts (Dreyer, 2009; Bain, 2010; Ueda et al., 2010). With the Special Purpose Dexterous Manipulator (also called *Dextre*) as end-effector, the Space Station Remote Manipulator System is capable of fine manipulation (Coleshill et al., 2009). This capability is, for example, used in the NASA Robotic Refueling Mission, which demonstrated the feasibility of accessing and refueling a typical satellite fuel port (Cepollina, 2013). The Japanese Experiment Module Remote Manipulator System is mostly used to service the Japanese Experiment Module *Kibo* and is also equipped with a dexterous end-effector. The manipulator suite of the ISS is planned to be completed with the installation of the European Robotic Arm on the Russian module (Patten et al., 2002). The use of robotic manipulator arms mounted on small servicing spacecraft to capture and manipulate a client satellite has successfully been demonstrated with the Engineering Test Satellite VII (ETS-VII) and Orbital Express missions (Yoshida, 2003; Kennedy, 2008). The upcoming on-orbit servicing demonstration missions Restore-L and Robotic Servicing of Geostationary Satellites will also feature robotic manipulators as core component of the capture and servicing system (Reed et al., 2016; Roesler et al., 2017).

Operating a robotic manipulator on a spacecraft results in a complex system overlapping the disciplines of robotics and aerospace engineering. Since the dynamics between the manipulator and the base-spacecraft are coupled, the system requires an integrated control system to meet the capture or manipulation goals and ensure mission success. Moreover, the complex dynamics of the spacecraft-manipulator system must be accounted for in the maneuver planning and in its overall maneuver timeline. The effects of manipulator operations on the orientation and position of the Shuttle orbiter and the ISS have been small and could be managed through operational procedures (Sargent, 1984). For fast-moving manipulators mounted on small base-spacecraft, the position and orientation disturbances due to manipulator motion become critical, as demonstrated on ETS-VII and Orbital Express (Oda, 2000; Kennedy, 2008). Hence, the engineers developing the spacecraft control system, specifying the sensor systems to be used, developing the communications system, and developing the operations plan must have an understanding of the complex dynamics arising from the multi-body system. However, multi-body dynamics and modeling of robotic systems are not part of a typical undergraduate aerospace engineering curriculum and are rarely covered in aerospace engineering graduate programs. Therefore, aerospace engineers must resort to the academic literature to fill this knowledge gap. Available literature focusses on the application and performance analysis of various approaches to describing the coupled dynamics of a spacecraft-manipulator system (Moosavian and Papadopulos, 2007; Flores-Abad et al., 2014), but does not provide a complete description of the modeling approach that would allow an aerospace engineer to access the topic without consulting a combination of research publications and textbooks.

There are two common methods for modeling the dynamics and deriving the equations of motion of multibody systems: the recursive Newton-Euler method and the Lagrangian method. A general description of the Newton-Euler method is given in Siciliano et al. (2010). Stoneking (2007) provides a detailed presentation of the use of Newton-Euler dynamics to develop the equations of motion for a multibody spacecraft. Applications in the field of spacecraft-manipulator dynamics are shown in Longman et al. (1987) and Mukherjee and Nakamura (1992). In the Newton-Euler method, the equations of motion of the multibody system are computed from the equilibria of forces and torques acting on each link of the system. From this, a recursive algorithm can be developed. In the forward recursion through the structure of the multibody system, the linear and angular link accelerations and velocities are computed. The forces and moments acting on the links are then computed in the backward recursion. To develop the equations of motion of a system of flexible links, the Direct Path Method was developed (Ho, 1977; Hughes, 1979). In the Direct Path Method, the point of reference of the equations of motion is moved from the system center-of-mass to a fixed point in one of the bodies, which is typically selected to be the center-of-mass of the base spacecraft. The structure of the system is then described following the most direct path through the links. The torques acting on the links are taken about the joints instead of the link centers-of-mass, thus eliminating constraint forces and torques between the links.

The Lagrangian method develops the equations of motion of a multibody system from its kinetic and potential energies, using a set of generalized coordinates describing the positions of the links (Siciliano et al., 2010). Following Siciliano et al. (2010), the Lagrangian method is advantageous in it being systematic and easily comprehensible and in providing the equations of motion in a compact analytical form facilitating control systems design. The fundamental advantage of the Newton-Euler approach is its computational efficiency as a recursive algorithm. The Lagrangian method is thus used to explain the development of the equations of motion in the present paper, due to its systematic nature.

When controlling the motion of the spacecraft-manipulator system, the dynamic coupling of the base spacecraft and the manipulator becomes a concern. Since the base spacecraft in one of the five maneuvering modes described in section Detailed Classification of Spacecraft-Manipulator System Maneuvering, and thus not fixed in space, any motion of the manipulator will cause a rotation and translation of the base spacecraft. A comprehensive overview of methods to account for the dynamic coupling in controlling the position and orientation of both the end-effector of the manipulator and the base-spacecraft is provided in Flores-Abad et al. (2014). Three of these methods shall be highlighted here: The Virtual Manipulator (VM) approach, the Dynamically Equivalent Manipulator (DEM) approach, and the Generalized Jacobian Matrix (GJM) approach. The VM approach replaces the physical spacecraft-manipulator system with a dynamically consistent VM system (Vafa and Dubowsky, 1987). The base of the VM is a spherical joint located at the center-of-mass of the physical spacecraft-manipulator system. The orientation of this joint equals the orientation of the base-spacecraft in inertial space. Since, in the absence of external forces, the system center-of-mass remains stationary, the complex free-floating system is replaced by a dynamically consistent fixed-base system. The VM is a purely kinematic computational model in the sense that it is a massless kinematic chain with constant dimensions calculated from the geometry and mass properties of the spacecraft-manipulator system. It is typically used for workspace analysis for floating spacecraft-manipulator systems (Vafa and Dubowsky, 1987; Dubowsky and Papadopoulos, 1993). In particular, the VM cannot be represented by a physical manipulator. However, this can be achieved by the DEM approach (Liang et al., 1998). The base joint of the DEM is also a spherical joint at the system center-of-mass, and the DEM is geometrically identical to the VM for the same spacecraft-manipulator system. Differing from the VM, the DEM links have masses and moments-of-inertia matrices that are calculated from the mass distributions of the real system. Therefore, the DEM computation model can be reproduced in a real mechanical system, and thus be used in experimental systems.

The Generalized Jacobian approach was originally proposed by Yoshida and Umetani (1993), expanding the dynamic analysis previously introduced by Dubowsky and Papadopoulos (1993) and in the dissertation of Papadopoulos (1990). The Generalized Jacobian approach was used successfully in running simulations and developing control algorithms for the ETS-VII demonstrator mission (Yoshida, 2003). The approach was also further generalized to serve as a description for any under-actuated manipulator system (Yoshida and Nenchev, 1998). The Generalized Jacobian method formed the basis for the development of non-holonomic path planning algorithms (Nakamura and Mukherjee, 1989; Xu et al., 2008), target capture algorithms (Yoshida and Nakanishi, 2003), spacecraft-manipulator control strategies (Marchesi, 1997; Caccavale and Siciliano, 2001; Aghili, 2009), hardware-in-the-loop simulation of space robotic systems (Wei et al., 2006), Reaction Null-Space Control algorithms (Nenchev et al., 1999) and contact dynamics models (Nenchev and Yoshida, 1999). The method is advantageous for a symbolic analytic description of the dynamics of a complex spacecraft-manipulator system, which is important for the synthesis of guidance and control laws, as well as to guide the selection of proximity operations sensor systems and the design of pointing mechanisms for antennas, solar arrays, etc.

Notwithstanding the widespread use of the GJM approach, a complete description for the computation of all inertial parameters of the spacecraft-manipulator system is missing in the literature for the general case of a spatial *N*-link manipulator mounted on a six degrees-of-freedom (DOF) base-spacecraft. However, this is critical for its use in the design of the base spacecraft and the overall rendezvous and capture system and mission. This paper aims at filling this significant gap by presenting a complete symbolic, step-by-step derivation of the coupled equations of motion of a spacecraft-manipulator system following the GJM approach, including the time and joint angle derivatives of the generalized inertia matrix. The tutorial presented here uses the Lagrangian method for a single manipulator mounted on a base-spacecraft, under the assumption of zero linear and angular momenta, which makes it applicable to the description of the majority of current spacecraft-manipulator systems. The kinematics of the spacecraft-manipulator system are described both using direction cosine matrices and quaternions. For the extension of this approach to multi-manipulator systems, the reader is referred to Moosavian and Papadopoulos (2004), while the equations of motion of a spacecraft-manipulator system with non-zero angular momentum is covered in Nanos and Papadopoulos (2011). This complete discussion of the GJM approach enables the computation of symbolic expressions of the spacecraft-manipulator system equations of motion, which can then be used for the formulation of guidance and control laws in addition to numerical simulations.

A second important contribution of the paper is the introduction of a new, more accurate and detailed categorization for spacecraft-manipulator control modes. In particular, the two commonly used categories (free-flying and free-floating) are expanded by the introduction of five categories (namely floating, rotation-floating, rotation-flying, translation-flying, and flying).

A third contribution of the paper is the definition of the generalized Jacobian for an arbitrary point of the spacecraft-manipulator system, which is useful for guidance and control, obstacle avoidance, and collision detection and modeling.

To the authors' knowledge, this is the first time that the Generalized Jacobian approach is derived in completeness, drawing from multiple references in literature and the authors' own research. The paper thus forms a valuable resource for aerospace engineers to understand and model the complex dynamics of a robotic manipulator operated on a spacecraft.

The paper is organized as follows. Section Detailed Classification of Spacecraft-Manipulator System Maneuvering provides a detailed classification of the maneuvering modes of a spacecraft-manipulator system. Section Kinematics of a Spacecraft-Manipulator System develops expressions for the kinematics of a spacecraft-manipulator system based on a customized version of Denavit-Hartenberg parameters. Using these expressions, the dynamics of a floating spacecraft-manipulator system are described in section Dynamics of a Floating Spacecraft-Manipulator System. The paper proceeds to develop the generalized form of the equations of motion of a floating spacecraft-manipulator system from section Generalized Form of the Equations of Motion for a Floating Spacecraft-Manipulator System, followed by the generalized form of the generic Jacobians of a spacecraft-manipulator system in section Generalized Jacobian. Section Implementation of a Simulation Model for a Floating Spacecraft-Manipulator System then discusses the implementation options for a computer simulation model based on the generalized approach. The results of sample simulations are reported in section Numerical Simulations. Finally, section Conclusion provides concluding remarks.

## Detailed Classification of Spacecraft-Manipulator System Maneuvering

The spacecraft-manipulator system can maneuver in different modes, typically designated by the terms *free-floating* and *free-flying* (Umetani and Yoshida, 1989; Dubowsky and Papadopoulos, 1993). To arrive at a more detailed and complete classification of spacecraft maneuvering modes, the authors propose to add three modes, thus fully covering all possible spacecraft maneuvers (see Table 1). The new modes are defined for an isolated spacecraft-manipulator system operating in pure weightlessness and in the absence of friction.

### Conserved Linear and Angular Momentum

The maneuvering cases here defined as *floating* and *rotation-floating* have in previous literature been referred to as *free-floating*. In both cases the total linear momentum and the total angular momentum of the spacecraft-manipulator system are not subject to any external control forces or torques and are thus conserved.

#### Floating

A spacecraft-manipulator system is here defined to be *floating* when maneuvering in a six DOF under-actuated mode in which only the manipulator joints are actively controlled. The system moves only under the effect of the internal reactions due to the actuation of the manipulator's joint motors. As robotic manipulators mounted on spacecraft typically only use revolute joints, these internal reactions are typically torques. Therefore, the 3 DOF of orientation of the base-spacecraft and the 3 DOF of translation of the system's center-of-mass are not actively controlled.

#### Rotation-Floating

A spacecraft-manipulator system is here defined to be *rotation-floating* when maneuvering in a 3 DOF under-actuated mode, in which both the DOF at the manipulator's joints and the three DOF of orientation of the base-spacecraft are controlled by internal torques only. The rotation-floating maneuver case thus differs from floating in that the attitude of the base-spacecraft is actively controlled by momentum-exchange devices [i.e., reaction wheels or control-moment gyroscopes (Hughes, 2004)]. The three DOF of translation of the system's center-of-mass are not actively controlled.

### Controlled Linear and Angular Momentum

All of the three maneuvering cases here defined as *rotation-flying, translation-flying*, and *flying* have been defined in previous literature as *free-flying*. In all three cases, the total angular momentum, total linear momentum, or both are actively controlled by external forces and/or torques, e.g., by a reaction control system.

#### Rotation-Flying

A spacecraft-manipulator system is here defined to be *rotation-flying* when the DOF at the manipulator joints are actively controlled by joint motor torques and the three DOF of orientation of the base-spacecraft are actively controlled by external torques only. This is typically achieved by reaction-jet thrusters firing in couples, thus generating a pure torque with total null force. The three DOF of translation of the system center-of-mass are not actively controlled. Therefore, the system's total linear momentum is in this case constant while the angular momentum is time-varying.

#### Translation-Flying

A spacecraft-manipulator system is here defined to be *translation-flying* when both the DOF at the manipulator joints and the three DOF of translation of the base-spacecraft are actively controlled. The manipulator DOF are controlled by joint motor torques. The base-spacecraft translation is controlled by external forces, provided typically by reaction-jet thrusters. Furthermore, the three DOF of orientation of the base-spacecraft are either not actively controlled or controlled only by momentum-exchange devices. Therefore, the system's total angular momentum is in this case constant while the linear momentum is time-varying.

#### Flying

A spacecraft-manipulator system is here defined to be *flying* when maneuvering in a mode in which all of the DOF at the manipulator joints are actively controlled by joint motor torques and the six DOF of motion of the base-spacecraft are actively controlled by external forces, provided typically by reaction jet thrusters. In this case, both the system's total angular momentum and the linear momentum are time-varying.

The classification above is rigorously valid only for an isolated spacecraft-manipulator system. In reality, a spacecraft-manipulator system is never isolated but orbiting an extended body (e.g., the Earth) under its gravitational attraction. However, the classification above can still be used in an approximate sense, due to the weightless (e.g., free-falling) condition of the system center-of-mass (due to the balancing of gravitational attraction and centrifugal force) and neglecting the effect of environmental torques (typically dominated by gravity-gradient torque, atmospheric torque, and solar radiation-pressure torque^{)} and non-gravitational environmental forces (typically dominated by atmospheric drag and solar radiation-pressure). The analysis and simulation of *floating, rotation-floating* and *rotation-flying* maneuvering modes can be typically conducted with good accuracy as if the system was isolated. In those three cases, a coordinate system centered at the center-of-mass of the orbiting spacecraft-manipulator system and having axes oriented in a fixed way with respect to an inertial frame (i.e., having zero absolute angular velocity) can be considered as equivalent to an inertial coordinate system for the description of the spacecraft-manipulator system motion.

## Kinematics of a Spacecraft-Manipulator System

The geometry of a base-spacecraft equipped with a single *N*-link manipulator is illustrated in Figure 1. The base-spacecraft is defined as link 0, with joint 0 residing at the base-spacecraft center-of-mass. The end-effector (EE) of the manipulator is part of link *N* and located at the end of that link. Therefore, its location can be treated as a virtual joint *N* + *1*. The geometry of a spacecraft-manipulator system with respect to the origin Ω of an inertial reference frame ${J}$ can be described unequivocally by the position vectors of the joints, **p**_{i} (0 ≤ *i* ≤ *N* + 1), and by the position vectors of the centers-of-mass of the links, **r**_{j} (0 ≤ *j* ≤ *N*). In this paper, the word “vector” is rigorously reserved for Gibbsian vectors (see, for instance, Hughes, 2004).

Three types of Cartesian coordinate systems are used in the analysis: an inertial coordinate system ${J}$, a set of *N*+*2* joint-fixed coordinate systems ${{J}}_{i}$ (0 ≤ *i* ≤ *N* + 1), and a set of *N* + *1* link-fixed coordinate systems ${{L}}_{i}$ (0 ≤ *i* ≤ *N*), with ${{J}}_{0}\equiv {{L}}_{0}$ and ${{J}}_{N+1}={{J}}_{EE}$. The base-spacecraft coordinate system ${{J}}_{0}\equiv {{L}}_{0}$ has its origin at the center-of-mass of the base-spacecraft, and has an arbitrary orientation (for instance, corresponding to its principal directions of inertia). Each joint coordinate system ${{J}}_{i}$ (1 ≤ *i* ≤ *N* + 1) is built using of the Denavit-Hartenberg (DH) convention as specified in Siciliano et al. (2010). The axis ${z}_{{{J}}_{i}}$ of ${{J}}_{i}$ is parallel to the joint rotation axis ${\widehat{k}}_{i}$ for 1 ≤ *i* ≤ *N*. The origin ϱ_{1} of ${{J}}_{1}$ as well as the directions of ${x}_{{{J}}_{1}}$ and ${y}_{{{J}}_{1}}$ can be selected as needed for a particular geometry. The same is true for the end-effector coordinate system ${{J}}_{N+1}$. Furthermore, for 2 ≤ *i* ≤ *N*, the origin ϱ_{i} of ${{J}}_{i}$ is at the intersection of ${z}_{{{J}}_{i}}$ and the common normal between ${z}_{{{J}}_{i-1}}$ and ${z}_{{{J}}_{i}}$. Whenever ${z}_{{{J}}_{i-1}}$ and ${z}_{{{J}}_{i}}$ are parallel, the common normal is uniquely defined and ϱ_{i} is selected for convenience (e.g., passing through the center-of-mass of the link *i-1*). The axis ${x}_{{{J}}_{i}}$ points from ϱ_{i} along the direction of the common normal defined above. The axis ${y}_{{{J}}_{i}}$ completes the right-handed Cartesian coordinate system. The link coordinate system ${{L}}_{i}$ is parallel to ${{J}}_{i+1}$ (for 1 ≤ *i* ≤ *N*), but with the origin at the center-of-mass (*CM*_{i}) of link *i*. This way of defining the joint coordinate systems follows Siciliano with the following difference: Siciliano's link *i* coordinate system is identical to our joint *i* + *1* coordinate system ${{J}}_{i+1}$. Furthermore, the origins of the link coordinate systems ${{L}}_{i}$ are placed into the link centers-of-mass to comply with Yoshida's approach (Yoshida and Umetani, 1993).

The geometrical relationship between subsequent joint coordinate systems ${{J}}_{i}$ and ${{J}}_{i+1}$ (1 ≤ *i* ≤ *N*) is described by the four DH parameters *d*_{i}, θ_{i}, α_{i}, and *c*_{i} (see Table 2 and Figure 2). For a link with a rotary joint, θ_{i} is the only variable parameter and is identical to the joint angle *q*_{i}. The parameters *d*_{i}, α_{i}, and *c*_{i} represent fixed geometric properties of the manipulator link. For a prismatic joint, the parameter *d*_{i} is variable and identical to the joint extension. Since prismatic joints are not commonly used in orbital robotics applications, only rotary joints are considered in this paper.

The homogenous transformation matrix ${\u200a}^{{{J}}_{i}}{T}_{{{J}}_{i+1}}$ from *mathcalJ*_{i} to ${{J}}_{i+1}$ coordinates can be expressed as a function of the DH parameters as follows:

where the DH transformation matrix function * A* (β,

*u*, γ,

*w*) is defined as:

Therefore, the position and orientation of each joint coordinate system ${{J}}_{i}$ (2 ≤ *i* ≤ *N* + 1) can be expressed recursively by a product of DH transformation matrices. The resulting homogenous transformation matrix ${\u200a}^{{J}}{T}_{{{J}}_{i}}$ contains the direction-cosine matrix (DCM) ${\u200a}^{{J}}{R}_{{{J}}_{i}}$ and the position vector ${\u200a}^{{J}}{p}_{i}$:

Analogously, the homogenous transformation matrix ${\u200a}^{{J}}{T}_{{{L}}_{i}}$ contains the DCM ${\u200a}^{{J}}{R}_{{{L}}_{i}}$ and position ${\u200a}^{{J}}{r}_{i}$. Notably, because of the fact that ${{L}}_{i}$ is oriented as ${{J}}_{i+1}$, it yields:

The joint DCM are used to derive the directions ${\widehat{k}}_{i}$ of the joint rotation axes in the inertial frame. In the DH convention, the rotation axis of a rotary joint is defined as the *z* axis in the corresponding link frame. So, ${\widehat{k}}_{i}$ is defined by:

Furthermore, it is useful to define the following additional vectors. The position vector **a**_{i} connects the origin ϱ_{i} of the joint *i* coordinate system ${{J}}_{i}$ to the center-of-mass of link *i* (CM_{i}, origin of link *i* coordinate system ${{L}}_{i}$). The position vector **b**_{i} connects CM_{i} and ϱ_{i+1}. Notably, if CM_{i} lies on a straight line connecting ϱ_{i} and ϱ_{i+1}, which is a valid assumption for most common spacecraft manipulators, **a**_{i} and **b**_{i} can be substituted by their scalar components *a*_{i} and *b*_{i} on the *x* axis of ${{L}}_{i}$ and ${{J}}_{i+1}$.

Notably, since the base-spacecraft is designated as link 0 and its center-of-mass is joint 0, it is ** r_{0} = p_{0}**, ${{L}}_{0}={{J}}_{0}$, ${\u200a}^{{J}}{R}_{{{L}}_{0}}{=}^{{J}}{R}_{{{J}}_{0}}$, and ${\u200a}^{{J}}{T}_{{{L}}_{0}}{=}^{{J}}{T}_{{{J}}_{0}}$. In particular, we have chosen to express the DCM for the base-spacecraft in Euler angles (roll angle ϕ, pitch angle θ, yaw angle ψ) in the following 1-2-3 rotation sequence:

Therefore:

The joint coordinate system ${{J}}_{1}$ has a constant position ${\u200a}^{\mathbf{\text{0}}}{b}_{\mathbf{\text{0}}}$ and orientation ${\u200a}^{{{L}}_{0}}{R}_{{{J}}_{1}}$, with respect to the base-spacecraft coordinate system. By expressing ${\u200a}^{{{L}}_{0}}{R}_{{{J}}_{1}}$ in Euler angles with 1-2-3 sequence (ϵ, ζ, and η), it yields:

For all of the subsequent joint coordinate systems ${{J}}_{i}$, by taking into account Equation (1), it yields:

where the transformation matrices for the link coordinate systems, ${\u200a}^{I}{T}_{{{L}}_{i}}$, are derived as:

The relative position between the base-spacecraft center-of-mass and the link centers-of-mass, ${\u200a}^{{J}}{r}_{0i}$, and the position of the system center-of-mass, ${\u200a}^{{J}}{r}_{C}$, can be expressed as:

where ${m}_{tot}=\sum _{i=0}^{N}{m}_{i}$.

Furthermore, the position of the system center-of-mass with respect to the base-spacecraft center-of-mass is given by:

Equations (12) and (13) yield:

Given the geometry of the spacecraft-manipulator system, the linear velocity ${\u200a}^{{J}}{v}_{{X}_{i}}$ of any point *X*_{i} on the *i*-th link of the manipulator and the angular velocity ${\u200a}^{{J}}{\omega}_{i}$ of the *i*-th link can be expressed as:

The notation ** a^{×}** is used to denote the skew-symmetric matrix (Hughes, 2004) associated with any vector

*, so that the vector product*

**a****can be expressed in the matrix-vector operation**

*c*=*a*×*b***:**

*c*=*a*^{×}*b*### Alternative Expression of Transformations Using the Unit Quaternion Instead of the DCM

The use of DCM in developing the transformation matrices for the spacecraft-manipulator system is familiar and intuitive. DCM, or equivalently rotation matrices, offer a unique and singularity-free parameterization of the orientation. As such, the DCM method is used above to describe the DH formalism, and DCM-based notation is used throughout this paper. However, the parameterization of the rotation using three parameters, e.g., Euler angle combinations, creates singularities, thus making the resulting DCM non-invertible. In addition, the multiplication of transformation matrices results in a large number of operations, 27 for two [3 × 3] rotation matrices and 64 for two [4 × 4] homogenous transformation matrices, thus making the approach computationally inefficient. The alternative is to use Euler symmetric parameters, also called unit quaternions (Wertz, 1978; Hughes, 2004). Unit quaternions are used to describe rotations following the Euler axis-angle theorem, with the vector part **ε** of the quaternion describing the rotation axis, and the scalar part η describing the rotation angle. A unit quaternion $\overline{q}$ expressing a rotation about any axis $\widehat{u}$ by any angle α can be written as a four-vector:

The magnitude of $\overline{q}$ is $\left|\overline{q}\right|=1$, hence $\overline{q}$ is called a unit quaternion. The unit quaternion thus corresponds to a rotation matrix * R* (Hughes, 2004):

A sequence of rotations, ** R_{3} = R_{1}R_{2}**, is then expressed by the quaternion product (Campa and Camarillo, 2008):

Therefore, any vector * a*, expressed as four-vector $\text{a}={\begin{array}{cccc}{[a}_{1}& {a}_{2}& {a}_{3}& 0]\end{array}}^{T}$, can be rotated using a unit quaternion (Kuipers, 2000):

with the conjugate quaternion ${\overline{q}}^{*}={\begin{array}{cc}-[{\epsilon}^{T}& \eta ]\end{array}}^{T}$. Therefore, the application of the DH convention results in an unit quaternion ${\u200a}^{{{J}}_{i}}{{\overline{q}}_{r}}_{{{J}}_{i\mathit{\text{}}+\mathit{\text{1}}}}$ for the rotation between coordinate systems ${{J}}_{i}$ and ${{J}}_{i+1}$, and a four-vector ${\u200a}^{{{J}}_{i}}{t}_{{{J}}_{i+1}}$ for the translation between origins of ${{J}}_{i}$ and ${{J}}_{i+1}$ (Campa and Camarillo, 2008):

The rotation from the base joint ${{J}}_{1}$ to the end-effector ${{J}}_{N+1}$ can thus be computed from a sequence of rotations using Equation (20):

The sequence of translations results from Equation (21):

## Dynamics of a Floating Spacecraft-Manipulator System

The equations of motion of the spacecraft-manipulator system illustrated in Figure 1 are here derived using the Lagrangian approach for the case of floating maneuvering mode (see section Detailed Classification of Spacecraft-Manipulator System Maneuvering and Table 1). In this case, the potential energy of the system is zero, and the Lagrangian equals the kinetic energy *T*:

By collecting the mass and inertia properties of the spacecraft-manipulator system into the [6 × 6] base-spacecraft inertia matrix ** H_{0}**, the [

*N*×

*N*]manipulator inertia matrix

**, and the [6 ×**

*H*_{m}*N*] dynamic-coupling inertia matrix

**, after some algebraic steps the kinetic energy can be expressed as (Yoshida and Umetani, 1993):**

*H*_{0m}where ${\u200a}^{{J}}{\stackrel{.}{x}}_{0}={\left[\begin{array}{cc}{\u200a}^{{J}}{v}_{0}{\u200a}^{T}& {\u200a}^{{J}}{\omega}_{0}^{T}\end{array}\right]}^{T}$ is the combined and angular velocity matrix of the base-spacecraft. The base-spacecraft inertia matrix, manipulator inertia matrix, and the dynamic-coupling inertia matrix are thoroughly explained in the following subsections.

### Base-Spacecraft Inertia Matrix

The [6 × 6] base-spacecraft inertia matrix ** H_{0}** is resulting to be:

where 𝕀_{3, 3} is the [3 × 3] identity matrix and the [3 × 3] submatrix ** H_{S}** collects the moments-of-inertia of the spacecraft-manipulator system about the base-spacecraft center-of-mass, expressed in the inertial frame ${J}$:

The *i*-th link moments-of-inertia matrix in the inertial coordinate system is derived from the moments-of-inertia matrix in the *i*-th link coordinate system as:

### Dynamic-Coupling Inertia Matrix

The [6 × *N*] dynamic-coupling inertia matrix ** H_{0m}** expresses the contribution of the dynamic coupling between the manipulator and the base-spacecraft to the kinetic energy of the spacecraft-manipulator system. In particular, it is:

where the [3 × *N*] submatrix ${J}$** _{TS}** collects the contribution to the system kinetic energy of the combination of the effect of the manipulator joint rate $\dot{q}$ and the base-spacecraft linear velocity ${\u200a}^{{J}}{v}_{0}$. In detail, it is:

where the [3 × *N*] matrix ** J_{Ti}** represents the linear velocity Jacobian for the center-of-mass of the

*i*-th link (Siciliano et al., 2010), and is given by:

Finally, the [3 × *N*] submatrix ** H_{Sq}** contains the contribution to the system kinetic energy of the combination of the effect of the manipulator joint rate $\dot{q}$ and the base-spacecraft angular velocity ${\u200a}^{{J}}{\omega}_{0}$. In detail, it is:

where the [3 × *N*] matrix ${J}$** _{Ri}** represents the angular velocity Jacobian for the

*i*-th link (Siciliano et al., 2010):

### Manipulator Inertia Matrix

The [*N* × *N*] inertia matrix for the manipulator, ** H_{m}**, is identical to that of any fixed-base manipulator (Siciliano et al., 2010) and expressed as:

### Equations of Motion of a Floating Spacecraft-Manipulator System

The generalized coordinates for the description of the spacecraft-manipulator system were chosen to be the manipulator joint angles * q* and the base-spacecraft combined linear and angular position ${\u200a}^{{J}}{x}_{0}$, resulting in the following two matricial Lagrangian equations. In the following, the coordinate system superscript will be omitted for better readability:

where the [*N* × 1] matrix **τ** contains the manipulator joint torques. It would be possible to include the effects of the internal torques due to the presence of momentum-exchange devices on the right-hand side of Equation (37), following the procedure outlined in Wie (2008). That would extend the analysis to the case of *rotation-floating* (see Table 1).

By substituting the kinetic energy expressed in Equation (27) into Equations (37) and (38), by computing the derivatives, and by properly rearranging the terms, the matricial equations of motion (corresponding to *N*+*6* scalar equations) for the floating spacecraft-manipulator system result as:

where the [6 × 1] matrix ** c_{0}** and the [

*N*× 1] matrix

**are defined as:**

*c*_{m}## Generalized Form of the Equations of Motion for a Floating Spacecraft-Manipulator System

The equations of motion in Equation (39) govern the dynamics of a floating spacecraft-manipulator system in terms of coupled base-spacecraft motion (first six scalar equations) and manipulator motion (last *N* scalar equations). In this section, the *N*+*6* scalar equations of motion are rewritten into a set of *N* scalar generalized equations, as typically done for under-actuated systems (Yoshida and Nenchev, 1998). The linear momentum, * P*, and the angular momentum,

*, are given by (Umetani and Yoshida, 1989):*

**L**where ${M}_{0}={\left[\begin{array}{cc}P& L\end{array}\right]}^{T}$ is the [61] combined matrix of initial linear and angular momentum about the base-spacecraft center-of-mass, expressed in the inertial frame ${J}$. Because of the hypothesis of floating maneuvering in the absence of any external forces or moments, the location of the system center-of-mass remains constant, the momenta are conserved, and therefore it yields:

Equation (42) is solved for ${\dot{x}}_{0}$. The result is inserted into Equation (43), which is then solved for ${\ddot{x}}_{0}$. The resulting expressions are finally inserted into the last *N* scalar equations of Equation (39). By considering the symmetry of ${H}_{0}^{\mathbf{\text{}}-\mathbf{\text{1}}}$ (which will be discussed below), the resulting matricial equation (corresponding to *N* scalar equations) is:

where the [*N* × *N*] generalized inertia matrix ** H^{⋆}** is defined to be:

The further treatment of this generalized equation of motion in the presence on non-zero angular momentum is described in Nanos and Papadopoulos (2011). For the purposes of this tutorial, we assume from now on that the initial momentum of the floating spacecraft-manipulator system is zero, i.e.:

Therefore, Equation (44) simplifies to:

where the [*N* × 1] matrix *c*^{⋆} is defined as:

The velocity and position dependent terms in the generalized equations of motion can be combined into a single [*N* × 1] matrix ** C^{⋆}**:

This permits the familiar representation of the generalized equations of motion which closely resembles the equations of motion for a fixed-base manipulator (Siciliano et al., 2010):

The thorough symbolic expression of the terms of Equation (47) is provided in the following subsections.

### Inverse Base-Spacecraft Inertia Matrix

The calculation of the symbolic expression of **H**^{⋆} from Equation (45) requires the inverse of the [6 × 6] base-spacecraft inertia matrix **H**_{0}. The matrix **H**_{0} is a partitioned block matrix of the form:

By following the approach taken by Mukherjee and Nakamura (1992), the inverse of **H**_{0} is determined using the Banachiewicz inversion formula (Baksalary and Styan, 2002) and the Schur complement **S**_{U} of the non-singular submatrix * U*:

where the Schur complement of * U* for a matrix $\left[\begin{array}{cc}U& V\\ W& X\end{array}\right]\text{}$ is defined as Baksalary and Styan (2002):

In detail, **S**_{U} is a symmetric [3 × 3] matrix with the elements:

The determinant of **S**_{U} is given by:

Therefore, **S**_{U} can be inverted symbolically, resulting in the symmetric [3 × 3] matrix:

This symbolic expression for **S**_{U} allows the calculation of the symbolic expression of ${H}_{0}^{\mathbf{\text{}}-\mathbf{\text{1}}}$ by using Equation (52).

### Time Derivative of the Generalized Inertia Matrix

The time derivative of the generalized inertia matrix, ${\dot{H}}^{\star}$, is calculated by taking the time derivative of Equation (45), resulting in:

The derivative of a matrix inverse with respect to a scalar can be expressed as:

as it can be immediately obtained from

where **Q** is any square-invertible matrix and *x* is a scalar. This allows computing the time derivative of the generalized inertia matrix without the need for calculating the time derivative of the inverse of the base-spacecraft inertia matrix, ${H}_{0}^{\mathbf{\text{}}-\mathbf{\text{1}}}$:

The following subsections discuss the calculation of the individual matrix derivatives in Equation (65).

#### Time Derivative of the Manipulator Inertia Matrix

By taking the time derivative of Equation (36), it yields:

The only new values to be calculated are the time derivatives of the angular and linear motion Jacobians, ${\dot{J}}_{Ri}$ and ${\dot{J}}_{Ti}$, as well as the time derivative of the link moments-of-inertia matrices, ${\u200a}^{{J}}{\dot{I}}_{i}$ (1 ≤ *i* ≤ *N*). For the calculation of these terms, the time derivatives of the joint and link direction-cosine matrices, ${\u200a}^{{J}}{\dot{R}}_{{{J}}_{i}}$ and ${\u200a}^{{J}}{\dot{R}}_{{{L}}_{i}}$ are required. The time derivative of any joint direction-cosine matrix ${\u200a}^{{J}}{R}_{{{J}}_{\mathbf{\text{i}}}}$ is given by the Darboux equation (Hughes, 2004):

The angular velocity of any joint coordinate system with respect to the inertial frame can be computed recursively from:

Due to the definition of the joint and link coordinate systems in section Kinematics of a Spacecraft-Manipulator System:

Furthermore, the time derivative of Equation (30) yields:

The time derivative of the angular velocity Jacobian defined in Equation (35) is:

The time derivative of the linear velocity Jacobian defined in Equation (33) is computed from:

where:

#### Time Derivative of the Base-Spacecraft Inertia Matrix

The time derivative of Equation (28) is given as:

By using Equations (11) and (13), the upper right and lower left sub-matrices of Equation (74) can be obtained from the following:

The lower right sub-matrix of Equation (74) is computed by using Equation (29):

#### Time Derivative of the Dynamic-Coupling Inertia Matrix

The time derivative of the dynamic-coupling matrix *H*_{0m} in Equation (31) results in:

where from Equations (32) and (34):

### Expression of the Matrix *c*^{⋆}

From Equation (48), the elements of **c**^{⋆} can be expressed as:

For the planar case, Papadopoulos (1990) provides an expression for **c**^{⋆}. For the general case, the symbolic computation of *c*^{⋆} requires the derivatives of **H**^{⋆} with respect to each joint angle **q**_{k}. By following the analogous procedure as used for the time derivative of **H**^{⋆} (see Equation 65), it yields:

As for the time derivative above, the computation of the derivative of the generalized inertia matrix requires the separate computations shown in the following paragraphs.

#### Joint-Angle Derivative of the Manipulator Inertia Matrix

The joint-angle derivatives of the manipulator inertia matrix from Equation (36) are given by:

The calculation of this expression requires the joint-angle derivatives of the joint and link transformation matrices ${\u200a}^{{J}}{T}_{{{J}}_{i}}$ and ${\u200a}^{{J}}{T}_{{{L}}_{i}}$, as well as the joint angle derivatives of the linear and angular motion Jacobians. From Equation (9), the joint transformation matrices are:

where the homogeneous transformation matrix ${\u200a}^{{J}}{T}_{{J}}{\u200a}_{k}$ and the DH matrices *A*(${q}_{l},{d}_{l},{\alpha}_{l}{,}^{l}{a}_{l}{+}^{l}{b}_{l}$) (*k* + 1 ≤ *l* ≤ *i* − 1) are independent of joint angle *q*_{k}. Therefore, only a single DH transformation matrix in the multiplication chain depends on *q*_{k}, with the joint angle derivative of a DH matrix given by:

Therefore, three cases must be considered:

(1) If *k* > *i* − 1, the joint transformation matrix is independent of *q*_{k}:

(2) If *k* = *i* − 1, the final factor in the product of transformation matrices depends on *q*_{k}, and the derivative changes to:

(3) For *k* < *i* − 1, one of the contributing matrices depends on *q*_{k}:

With (10), the joint angle derivatives of the link transformation matrices become:

As for the link transformation matrices ${\u200a}^{{J}}{T}_{{L}}{\u200a}_{i}$, there are three cases to consider:

(1) For *k* > *i*, the link transformation matrix is independent of *q*_{k}.

(2) For *k* = *i*, the final DH transformation matrix must be differentiated for *q*_{k}:

(3) If *k* < *i*, we can reuse the derivative of the joint transformation matrix developed above:

The joint-angle derivatives of the transformation matrices contain the derivatives of both the direction-cosine matrix and the position. Therefore, the derivatives of the angular and linear motion Jacobians can now be determined from Equations (35) and (33) as follows:

where:

#### Joint-Angle Derivative of the Dynamic-Coupling Matrix

The derivatives of the dynamic-coupling matrix are computed from Equation (31) as:

where

Since **r**_{0} does not depend directly on any joint angle, **r**_{0i} (see Equation 11) is differentiated as:

#### Joint-Angle Derivative of the Base-Spacecraft Inertia Matrix

The joint-angle derivatives of the base-spacecraft inertia matrix **H**_{0} from Equation (28) result in:

The joint-angle derivatives of the relative center-of-mass position vector **r**_{0C} from Equation (13) are calculated in:

The system moments-of-inertia matrix from Equation (29) is differentiated by:

where from Equation (30):

## Generalized Jacobian

For control purposes, a transformation between joint-space and task-space requires the use of a Jacobian (Siciliano et al., 2010). Typically, the Jacobian is used to map generalized joint velocities to a spatial velocity of the end-effector. However, for reasons of collision avoidance and contact dynamics, Jacobians must also be expressed for the combined velocity of any arbitrary point *X*_{i} on the *i*-th link of the manipulator. From Equations (15) and (16), it follows:

where the contribution of the manipulator joint rates to the combined velocity of *X*_{i} is expressed by the [6 × *N*] manipulator Jacobian **J**_{mXi}:

with **x**_{i} being the position of point *X*_{i}. The contribution of the base-spacecraft combined velocity is expressed by the [6 × 6] base-spacecraft Jacobian **J**_{0Xi}:

where

When using the generalized form of the equations of motion, a [6 × *N*] generalized Jacobian ${J}_{{X}_{i}}^{\star}$ can be formulated, such that:

Therefore:

Using Equation (42) and assuming **M**_{0} = **0**_{6, 1}, ${\dot{x}}_{0}$ can be expressed as:

The generalized Jacobian is thus defined as:

If * x_{i}* coincides with the position of the end-effector (

**p**_{E}=

**p**_{N+1}), the resulting generalized Jacobian Jacobian defined by Equation (110), for an arbitrary point, becomes the same as the Generalized Jacobian

**J**^{⋆}of the floating manipulator as originally defined by Yoshida and Umetani (1993). Therefore, the joint rates required to have the end-effector move at a linear velocity

**ν**

_{E}and angular velocity

**ω**

_{E}can be calculated from:

## Implementation of a Simulation Model for a Floating Spacecraft-Manipulator System

By using the generalized equations in symbolic form introduced above, a computer model can be implemented for the simulation of the floating spacecraft-manipulator system. This computer model can be based on two implementation approaches, which we call here *full symbolic implementation* and *partial symbolic implementation* (see Figure 3). The numerical simulation can thus be run by evaluating at each integration step static functions containing symbolic expressions, without executing iterative procedures such as the recursive Newton-Euler algorithm as in the available literature on the subject (refer to, for instance Mukherjee and Nakamura, 1992; Carignan and Akin, 2000). In the *partial symbolic implementation*, the numerical values for matrices ${\u200a}^{{J}}{T}_{{J}}{\u200a}_{i}$, ${\u200a}^{{J}}{T}_{{L}}{\u200a}_{i}$, *H*_{0}, ** H_{0m}**,

*H*_{m}, and ${H}_{0}^{\mathbf{\text{-1}}}$ are calculated from their symbolic expressions. These numerical values are then used to find the generalized matrices

**H**^{⋆},

**C**^{⋆}, and

**J**^{⋆}. In the full symbolic implementation,

**H**^{⋆},

**C**^{⋆},

**J**^{⋆}are calculated directly from their symbolic expressions.

**Figure 3**. Pseudo-code structure illustrating the two proposed implementation variants of a floating spacecraft-manipulator system simulation model based on the Generalized Jacobian approach.

The symbolic implementations are easily adaptable to any number of joints and any structure of the kinematic chain of the spacecraft-manipulator system.

## Numerical Simulations

In order to verify the proposed analytical approach, a simulation model was implemented for two case studies: (1) a planar spacecraft-manipulator system with a 4 DOF manipulator, as commonly used in ground experimentation of spacecraft-manipulator systems, and (2) a spatial spacecraft-manipulator system with a spatial 6 DOF manipulator, similar to the one described in Yoshida's original discussion of the generalized Jacobian approach (Yoshida and Umetani, 1993). The simulation model was implemented in Matlab/Simulink by following the partial symbolic implementation approach outlined in Figure 3. The block diagram of the overall simulated control architecture is illustrated in Figure 4.

**Figure 4**. Block diagram of the overall simulated control architecture used for the numerical simulations.

With the complete knowledge of the generalized equations of motion of the spacecraft-manipulator system, the system can be controlled using a standard control scheme called Computed Torque Control (Siciliano et al., 2010). In particular, the commanded torque for the joint motors is computed from the desired joint angular acceleration, angular rate, and angular position by means of a direct dynamics operation. The joint acceleration control input $\overline{u}$ is computed by means of a proportional-derivative (PD) control law:

In general, the controller gains can be designed based on the solutions of the harmonic oscillator:

with *T*_{max,i} being the maximum motor torque for each joint. The control input is finally fed into the dynamic model as acceleration to derive the resulting reaction torque. This torque then serves as the input to the real manipulator system. With a manipulator employed on an orbiting spacecraft, there is always a substantial level of uncertainty when it comes to the inertial properties of the spacecraft-manipulator system, mostly due to the settling state of the fuel tanks and the associated fuel sloshing. Therefore, the computed torque control is based on estimates of the inertia properties matrices, ${\stackrel{~}{\mathit{\text{H}}}}^{\star}$ and ${\stackrel{~}{\mathit{\text{C}}}}^{\star}$:

In the numerical simulation presented here, perfect knowledge of the inertia properties of the system was assumed, thus ${\stackrel{~}{\mathit{\text{H}}}}^{\star}={\mathit{\text{H}}}^{\star}$ and ${\stackrel{~}{\mathit{\text{C}}}}^{\star}={\mathit{\text{C}}}^{\star}$.

### Simulations With the Planar Four-Link Spacecraft-Manipulator System

The simulated planar spacecraft-manipulator system consists of a base-spacecraft and four identical manipulator links. The mass and inertia properties of the system are given in Table 3, whereas the properties of the kinematic chain are summarized in Table 4. For illustration purposes, the gains of the controller were set to *K*_{Di} = 1 and *K*_{Pi} = 1 for all joints *i*. The manipulator is initially fully extended along the x axis, which corresponds to zero angle for each joint. In the sample maneuver sequence one joint at a time accelerates to 0.1 rad/s for 10 s, then rests for 2 s, rotates at −0.1 rad/s for 20 s, rests again for 2 s, then rotates back to the initial condition. The base-spacecraft is initially located at the origin of the inertial coordinate system, with the three Euler angles being all zero.

**Table 3**. Planar spacecraft-manipulator system with four-link manipulator: mass and inertia properties.

**Table 4**. Planar spacecraft-manipulator system with four-link manipulator: customized Denavit-Hartenberg parameters.

As shown in Figure 5A, the dynamic coupling between the base-spacecraft and the manipulator generates compensatory motion of the base-spacecraft. As expected, the base-spacecraft has an angular rate component which has opposite sign with respect to the joint rates, and is smaller in magnitude, since the base-spacecraft has higher inertia than the manipulator. Of note is also that the base-spacecraft reaction becomes smaller as the joint maneuver sequence proceeds “outward”, since the outer joints move less mass than the inner joints.

**Figure 5**. Planar spacecraft-manipulator system with four-link manipulator: **(A)** joint rates and the resulting base-spacecraft angular velocity components; **(B)** joint angles and the resulting base-spacecraft position deviation.

Similar behavior is evident in Figure 5B, which illustrates the base-spacecraft position deviation depending on the joint angles. Since the total center-of-mass of the system remains stationary, the base-spacecraft center-of-mass is pulled forward and pushed back to its initial *x* position, and is pushed to the left and right in the *y* direction as the manipulator moves to the left and right. The magnitude of the position deviation depends on the combination of distance between base-spacecraft center-of-mass and the center-of-mass of the actuated links, and the total mass or the actuated links. The location of the total center of mass of the multi-body system remains constant.

Since the manipulator joints are in this example purely actuated by internal torques, both the linear momentum and the angular momentum of the spacecraft-manipulator system remain constant, and in this case zero, as expected. Therefore, the linear and angular momenta of the base-spacecraft must be opposite in sign but equal in magnitude to the manipulator momenta. This expected behavior is confirmed in Figures 6A,B. Since the spacecraft-manipulator system is only moving in the x-y plane, there is no linear momentum along the z axis, and no angular momentum about the x and y axes.

**Figure 6**. Planar spacecraft-manipulator system with four-link manipulator: **(A)** linear momentum; **(B)** angular momentum.

### Simulations With the Spatial Six-Link Spacecraft-Manipulator System

The simulated spatial spacecraft-manipulator system consists of a base-spacecraft and six manipulator links. The mass and inertia properties of the system are given in Table 5, the DH parameters are summarized in Table 6. For illustration purposes, the gains of the controller were set to *K*_{Di} = 1 and *K*_{Pi} = 1 for all joints *i*. The manipulator is initially fully extended along the x axis, which corresponds to zero angle for each joint. In the sample maneuver sequence, one joint at a time accelerates to 0.1 rad/s for 10 s, then rests for 2 s, rotates at −0.1 rad/s for 20 s, rests again for 2 s, then rotates back to zero angle. The base-spacecraft is initially located at the origin of the inertial coordinate system, with the three Euler angles being zero.

**Table 5**. Spatial spacecraft-manipulator system with six-link manipulator: mass and inertia properties (Yoshida and Umetani, 1993).

**Table 6**. Spatial spacecraft-manipulator system with six-link manipulator: customized Denavit-Hartenberg parameters.

The rotation axis of joint 1 is along the *x* axis of the spacecraft coordinate system. Therefore, the rotation of joint 1 causes a 3 DOF rotation of the base-spacecraft, see Figure 7A. Furthermore, it causes the center-of-mass of the base-spacecraft to deviate from its initial position in *x, y* and *z* direction during the joint 1 cycle, and only in *x* and *z* direction when joints 2–6 are active, as shown in Figure 7B. The location of the total center of mass of the multi-body system remains constant. The linear and angular momenta of base-spacecraft and manipulator compensate each other (see Figure 8) as the total momentum is conserved.

**Figure 7**. Spatial spacecraft-manipulator system with six-link manipulator: **(A)** joint rates and the resulting base-spacecraft angular velocity components; **(B)** joint angles and the resulting base-spacecraft position deviation.

**Figure 8**. Spatial spacecraft-manipulator system with six-link manipulator: **(A)** linear momentum; **(B)** angular momentum.

## Conclusion

This paper presents a complete, step-by-step analytic derivation of the equations of motion of a floating spacecraft-manipulator system, using the Generalized Jacobian approach for modeling the dynamics of a spacecraft-manipulator system. This includes symbolic analytic expressions for all inertia matrices of the spacecraft-manipulator system, as well as their time derivatives and joint-angle derivatives. It also includes a general expression for the Jacobian of a generic point on any of the links of the spacecraft-manipulator system, which is required for the analysis and simulation of collision-avoidance systems and contact dynamics. Furthermore, new and more detailed definitions are proposed in this paper (see Table 1) for the possible modes of maneuvering a spacecraft-manipulator system. In particular, the two commonly used categories (free-flying and free-floating) are expanded by the introduction of five categories (namely floating, rotation-floating, rotation-flying, translation-flying, and flying). The authors believe that the adoption of the newly proposed definitions would contribute to increased clarity, advantageous to both students and researchers in the field. Furthermore, the paper introduces a full-symbolic implementation and a partial-symbolic implementation of computer simulation models based on the complete generalized Jacobian approach. These implementation options allow the development of efficient numerical simulations. Example simulations, for a planar four-link spacecraft-manipulator system, and a spatial six-link spacecraft manipulator system, show that the modeling approach is effective and consistent with the physical principles.

The description of the geometry of the spacecraft-manipulator system uses DH parameters, which allows complete generality. The approach is thus, in principle, extendable to multiple manipulators with open-chain configuration. A fundamental assumption that was used in the description of the kinematics and dynamics of the spacecraft-manipulator system is that of straight links with the center-of-mass of the link being located on the straight line through the origins of the adjacent Cartesian joint coordinate systems. While this is a restriction of generality, it also reflects the type of robotic manipulators commonly used in orbital robotics systems. Furthermore, only rotary joints were considered, since prismatic joints are not commonly used in orbital robotics applications. However, the description of the kinematics and dynamics of the system can be, in principle, straightforwardly extended to include both irregularly shaped links and prismatic joints. Gears in the joints were not considered but they could be added in the analysis by using, for instance, the approach detailed in Siciliano et al. (2010). Euler angles were used in the description of the base-spacecraft orientation: in principle it would be straightforward to use quaternions to avoid any possible orientation singularity problem.

The goal is for this detailed presentation of the Generalized Jacobian approach to serve as a tutorial to build a complete analytic model of the complex dynamics of a spacecraft-manipulator system. While this tutorial is mostly aimed at aerospace engineers faced with the challenge of modeling a robotic system while designing a spacecraft for a rendezvous and capture mission, it is also a good reference for robotic engineers, since it condenses material from distributed sources into one complete presentation.

## Author Contributions

MW is the principal author. He performed the literature research into the generalized Jacobian approach and derived the mathematical equations to fill the gaps in published literature. He also implemented the Matlab/Simulink model used to generate the examples shown in the paper. He also had the lead in writing the paper. SK worked with MW on checking the mathematical derivations for correctness and on clarifying the presentation of the Denavit-Hartenberg convention. AG worked with MW on the implementation in Matlab/Simulink and on producing the data plots used in the paper. MR provided expertise on the Lagrangian method used to derive the equations of motion and on matrix/vector mathematics.

## Conflict of Interest Statement

The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.

## Acknowledgments

This research received no specific grant from any funding agency in the public, commercial, or not-for-profit sectors.

## References

Aghili, F. (2009). “Coordination control of a free-flying manipulator and its base attitude to capture and detumble a cooperative satellite,” in *Proceedings of 2009 IEEE/RSJ International Conference on Intelligent Robots and Systems* (St. Louis, MO), 2365–2372.

Bain, M. E. (2010). “Cygnus: back to the future - applying commercial program lessons learned,” in *AIAA SPACE 2010 Conference & Exposition* (Anaheim, CA: AIAA), 1–8.

Baksalary, J. K., and Styan, G. P. H. (2002). Generalized inverses of partitioned matrices in Banachiewicz-Schur form. *Linear Algeb. Appl.* 354, 41–47. doi: 10.1016/S0024-3795(02)00334-8

Barnhart, D., Sullivan, B., Hunter, R., Bruhn, J., Fowler, E., Hoag, L., et al. (2013). “Phoenix project status 2013,” in *AIAA Space 2012 Conference and Exhibition* (San Diego, CA: AIAA), 1–17.

Caccavale, F., and Siciliano, B. (2001). “Quaternion-based kinematic control of redundant spacecraft/manipulator systems,” in *Proceedings of the 2001 IEEE International Conference on Robotics and Automation* (Seoul: IEEE), 435–440.

Campa, R., and Camarillo, K. (2008). “Unit quaternions: a mathematical tool for modeling, path planning and control of robot manipulators,” in *Robot Manipulators*, ed M. Ceccarelli (Rijeka: InTech), 23–48.

Carignan, C. R., and Akin, D. L. (2000). The reaction stabilization of on-orbit robots. *IEEE Control Syst. Mag.* 20, 19–33. doi: 10.1109/37.887446

Cepollina, F. (2013). *Robotic Refueling Mission*. NASA (Accessed January 6, 2014). Available online at: http://www.nasa.gov/mission_pages/station/research/experiments/778.html.

Coleshill, E., Oshinowo, L., Rembala, R., Bina, B., Daniel, R., and Shelley, S. (2009). Dextre: improving maintenance operations on the International Space Station. *Acta Astronaut.* 64, 869–874. doi: 10.1016/j.actaastro.2008.11.011

Dreyer, L. (2009). “Latest Developments on SpaceX's Falcon 1 and Falcon 9 Launch Vehicles and Dragon Spacecraft,” in *IEEE Aerospace Conference* (Big Sky, MT: IEEE).

Dubowsky, S., and Papadopoulos, E. (1993). The kinematics, dynamics, and control of free-flying and free-floating space robotics systems. *IEEE Trans. Robotics Autom.* 9, 531–543.

Flores-Abad, A., Ma, O., Pham, K., and Ulrich, S. (2014). A review of space robotics technologies for on-orbit servicing. *Progr. Aerospace Sci.* 68, 1–26. doi: 10.1016/j.paerosci.2014.03.002

Goodman, J. L. (2006). History of space shuttle rendezvous and proximity operations. *J. Spacecr. Rockets* 43, 944–959. doi: 10.2514/1.19653

Hale, W., Lane, H., Lulla, K., and Chapline, G. (2011). *Wings in Orbit: Scientific and Engineering Legacies of the Space Shuttles 1971-2010.* Washington, DC: NASA.

Ho, J. Y. L. (1977). Direct Path method for flexible multibody spacecraft dynamics. *J. Spacecr. Rockets* 14, 102–110.

Kennedy, F. G. (2008). “Orbital express: accomplishments and lessons learned,” in *Proceedings of the AAS Guidance and Control Conference* (Breckenridge, CO: Univelt), 575–586.

Kuipers, J. B. (2000). “Quaternions and Rotation Sequences,” in *Proceedings of the International Conference on Geometry, Integrability and Quantization* (Sofia: Coral Press Scientific Publishing), 127–143.

Liang, B., Xu, Y., and Bergerman, M. (1998). Mapping a space manipulator to a dynamically equivalent manipulator. *J. Dyn. Syst. Meas. Control* 120, 1–7.

Longman, R. W., Lindberg, R. E., and Zedd, M. F. (1987). Satellite-mounted manipulators - new kinematics and reaction moment compensation. *Int. J. Rob. Res.* 6, 87–103.

Marchesi, M. (1997). “Control strategy of a free-flying space manipulator”, in *Proceedings of the 8th International Conference on Advanced Robotics (ICAR '97)* (Monterey, CA), 665–670

Moosavian, S. A. A., and Papadopoulos, E. (2004). Explicit dynamics of space free-flyers with multiple manipulators via SPACEMAPLE. *Adv. Robotics* 18, 223–244. doi: 10.1163/156855304322758033

Moosavian, S. A.A., and Papadopulos, E. (2007). Free-flying robots in space: an overview of dynamics modeling, planning and control. *Robotica* 25, 537–547. doi: 10.1017/S0263574707003438

Mukherjee, R., and Nakamura, Y. (1992). Formulation of efficient computation of inverse dynamics of space robots. *IEEE Trans. Robot. Autom.* 8, 400–406.

Nakamura, Y., and Mukherjee, R. (1989). “Nonholonomic path planning of space robots,” in *Proceedings of 1989 International Conference on Robotics and Automation* (Scottsdale, AZ: IEEE), 1050–1055.

Nanos, K., and Papadopoulos, E. (2011). On the use of free-floating space robots in the presence of angular momentum. *Intell. Serv. Robot.* 4, 3–15. doi: 10.1007/s11370-010-0083-2

Nenchev, D. N., and Yoshida, K. (1999). Impact analysis and post-impact motion control issues of a free-floating space robot subject to a force impulse. *IEEE Trans. Robot. Autom.* 15, 548–557.

Nenchev, D. N., Yoshida, K., Vichitkulsawat, P., and Uchiyama, M. (1999). Reaction null-space control of flexible structure mounted manipulator systems. *IEEE Trans. Robot. Autom.* 15, 1011–1023.

Oda, M. (2000). “Experiences and lessons learned from the ETS-VII robot satellite,” in *Proceedings of the 2000 IEEE International Conference on Robotics & Automation* (San Francisco, CA: IEEE), 914–919.

Papadopoulos, E. G. (1990). *On the Dynamics and Control of Space Manipulators.* Ph.D. Dissertation, Cambridge, MA: Massachusetts Institute of Technology.

Patten, L., Evansa, L., Oshinowo, L., Ochisor, M., Kazuharu, N., Lodewijk, A., et al. (2002). “International Space Station Robotics: A Comparative Study of ERA, JEMRMS and MSS,” in *7th ESA Workshop on Advanced Space Technologies for Robotics and Automation ‘ASTRA 2002'* (Noordwijk: ESA), 1–8.

Reed, B. B., Smith, R. C., Naasz, B., Pellegrino, J., and Bacon, C. (2016). “The restore-L servicing mission,” in *AIAA Space Forum* (Long Beach, CA: AIAA), 1–8.

Reintsema, D., Thaeter, J., Rathke, A., Naumann, W., Rank, P., and Sommer, J. (2010). “DEOS - the german robotics approach to secure and de-orbit malfunctioned satellites from low-earth orbits,” in *Proceedings of International Symposium on Artificial Intelligence, Robotics and Automation in Space (i-SAIRAS)* (Sapporo,: JAXA), 244–251.

Roesler, G., Jaffe, P., and Henshaw, G. (2017). Orbital mechanics. *IEEE Spectrum* 54, 44–50. doi: 10.1109/MSPEC.2017.7864756

Sargent, D. G. (1984). “The Impact of Remote Manipulator Structurel Dynamics on Shuttle On-Orbit Flight Control,” in *17th Fluid Dynamics, Plasma Dynamics, and Lasers Conference* (Seattle, WA: AIAA).

Sato, N., and Wakabayashi, Y. (2001). “JEMRMS design features and topics from testing,” in *Proceeding of the 6th International Symposium on Artificial Intelligence and Robotics & Automation in Space: i-SAIRAS 2001* (St-Hubert, QC: CSA).

Shoemaker, J., and Wright, M. (2004). “Orbital express space operations architecture program,” in *Proceedings of SPIE 5088, Space Systems Technology and Operations* (Orlando, FL), 56–65.

Siciliano, B., Sciavicco, L., Villani, L., and Oriolo, G. (2010). *Robotics.* London: Springer-Verlag.

Stieber, M. E., Trudel, C. P., and Hunter, D. G. (1997). “Robotic systems for the international space station,” in *Proceedings of the 1997 IEEE International Conference on Robotics and Automation* (Albuquerque, NM: IEEE), 3068–3073.

Stoneking, E. (2007). “Newton-euler dynamic equations of motion for a multi-body spacecraft,” in *AIAA Guidance, Navigation and Control Conference and Exhibit, Guidance, Navigation, and Control and Co-located Conferences* (Hilton Head, SC: AIAA), 1–13.

Ueda, S., Kasai, T., and Uematsu, H. (2010). “HTV rendezvous technique and GN&C design evaluation based on 1st Flight on-orbit operation result,” in *AIAA/AAS Astrodynamics Specialist Conference, Guidance, Navigation, and Control and Co-located Conferences* (Toronto, ON: AIAA), 1–12.

Umetani, Y., and Yoshida, K. (1989). Resolved motion rate control of space manipulators with generalized Jacobian Matrix. *IEEE Trans. Robotics Autom.* 5, 303–314.

Vafa, Z., and Dubowsky, S. (1987). “On the dynamics of manipulators in space using the virtual manipulator approach,” in *IEEE International Conference on Robotics and Automation* (Raleigh, NC).

Wei, R., Jin, M. H., Xia, J. J., Xie, Z. W., Shi, J. X., and Liu, H. (2006). “High fidelity distributed hardware-in-the-loop simulation for space robot,” in *Proceedings of the 2006 IEEE International Conference on Mechatronics and Automation* (Luoyang: IEEE), 2150–2155.

Wertz, J. R. (1978). *Spacecraft Attitude Determination and Control*. Boston, MA: Kluwer Academic Publishers.

Xu, W., Liu, Y., Liang, B., Xu, Y., Li, C., and Qiang, W. (2008). Non-holonomic path planning of a free-floating space robotic system using genetic algorithms. *Adv. Robot.* 22, 451–476. doi: 10.1163/156855308X294680

Yoshida, K. (2003). Engineering test satellite VII flight experiments for space robot dynamics and control: theories on laboratory test beds ten years ago, now in orbit. *Int. J. Rob. Res.* 22, 321–335. doi: 10.1177/0278364903022005003

Yoshida, K., and Nakanishi, H. (2003). “Impedance matching in capturing a satellite by a space robot,” in *Proceedings of the 2003 IEEE/RSJ Intl. Conference on Intelligent Robots and Systems.* (Las Vegas, NV: IEEE), 3059–3064.

Yoshida, K., and Nenchev, D. N. (1998). “A general formulation for under-actuated manipulators,” *Eighth International Symposium on Robotics Research* (Shonan).

Yoshida, K., and Umetani, Y. (1993). “Control of space manipulators with generalized Jacobian,” in *Space Robotics: Dynamics and Control*, eds Y. Xu and T. Kanade (Boston, MA: Springer), 165–204.

## Nomenclature

${J}$ = Inertial Cartesian coordinate system orbiting with the spacecraft-manipulator system

${{J}}_{i}$ = Cartesian coordinate system attached to joint *i*

${{L}}_{i}$ = Cartesian coordinate system attached to link *i*

α_{i} = Denavit-Hartenberg parameter for rotation from link coordinate system axis *z*_{i−1} to axis *z*_{i} about axis *x*_{i}

**ω**_{E} = angular velocity of the end-effector with respect to inertial frame ${J}$

**ω**_{i} = angular velocity of link *i* with respect to inertial frame ${J}$

**ω**_{0} = base-spacecraft angular velocity with respect to inertial frame ${J}$

Ω = origin of the inertial Cartesian coordinate system ${J}$

${{\left[}\begin{array}{c}{\u03f5}{\text{}}{}{\zeta}{}{\text{}}{\eta}\end{array}{\right]}}^{{T}}$ = Euler angles (sequence 1-2-3) expressing the orientation of the coordinate system attached to joint 1 with respect to the coordinate system at the spacecraft center-of-mass CM_{0}

${{\left[}\begin{array}{c}{\varphi}{\text{}}{}{\theta}{}{\Psi}\end{array}{\right]}}^{{T}}$ = Euler angles (sequence 1-2-3) expressing the orientation of the base-spacecraft (link 0) with respect to the inertial coordinate system ${J}$

ϱ_{i} = origin of the Cartesian coordinate system attached to joint *i*

**τ** = [*N* × 1] matrix of joint torques (each element τ_{i} expresses the scalar value of the torque component along ${\widehat{{k}}}_{{i}}$ due to the motor driving joint *i*)

θ_{i} = Denavit-Hartenberg parameter for rotation between link coordinate system axis *x*_{i−1} and *x*_{i} about axis *z*_{i−1}

${\u200a}_{{a}}^{{\mathcal{B}}}$ = [3 × 1] matrix of components of the vector * a* along the Cartesian coordinate system ${B}$

**a**^{×} = [3 × 3] skew-symmetric matrix associated with vector **a**

*a*_{i} = position vector from ϱ_{i} to center-of-mass of link *i*

* A* = [4 × 4] Denavit-Hartenberg transformation matrix

** b_{0}** = position vector from CM

_{0}to ϱ

_{1}

** b_{i}** = position vector from CM

_{i}to ϱ

_{i+1}

*c*_{i} = Denavit-Hartenberg parameter for displacement between link coordinate system axis *z*_{i−1} and axis *z*_{i} along axis *x*_{i}

**c**^{⋆} = [*N* × 1] matrix of generalized non-linear terms of the equations of motion

**C**^{⋆} = [*N* × 1] matrix of generalized centripetal and Coriolis terms

${\stackrel{~}{C}}^{\star}$ = [*N* × 1] matrix of estimated generalized centripetal and Coriolis terms

** c_{0}** = [6 × 1] matrix of derivatives for base-spacecraft position

** c_{m}** = [

*N*× 1] matrix of derivatives for manipulator joint angles

CM_{i} = center-of-mass of link *i*

CM_{tot} = spacecraft-manipulator system center-of-mass

*d*_{i} = Denavit-Hartenberg parameter for displacement between link coordinate system axis *x*_{i−1} and axis *x*_{i} along axis *z*_{i−1}

**ε** = [3 × 1] vector part of unit quaternion **q**

η = Scalar part of unit quaternion **q**

𝕀_{3, 3} = [3 × 3] identity matrix

** H^{⋆}** = [

*N*×

*N*] generalized inertia properties matrix

${\tilde{{H}}}^{{\star}}$ = [*N* × *N*] estimated generalized inertia properties matrix

** H_{0}** = [6 × 6] base inertia properties matrix

** H_{0m}** = [6 ×

*N*] base/manipulator dynamic-coupling matrix

** H_{m}** = [

*N*×

*N*] manipulator inertia properties matrix

** H_{S}** = [3 × 3] system moments-of-inertia matrix

** H_{Sq}** = [3 ×

*N*] angular motion energy contribution matrix

${}^{{{L}}_{i}}I{\u200a}_{i}$ = [3 × 3] moments-of-inertia matrix of link *i* assembly with respect to the Cartesian coordinate system attached to link *i*

${\u200a}^{{J}}{I}_{i}$ = [3 × 3] moments-of-inertia matrix of link *i* assembly with respect to the inertial coordinate system ${J}$

*J*^{⋆} = [6 × *N*] generalized Jacobian for the motion of the end-effector

${J}_{{X}_{i}}^{\star}$ = [6 × *N*] generalized Jacobian for the motion of *X*_{i}

** J_{0Xi}** = [6 × 6] Jacobian for the contribution of the base-spacecraft motion to the velocity of

*X*

_{i}

${J}_{k}^{\star}$ = [6 × *N*] generalized Jacobian for point of action of external force or torque *F*_{k}

** J_{mXi}** = [6 ×

*N*] Jacobian for the contribution of the manipulator motion to the velocity of

*X*

_{i}

** J_{Ri}** = [3 ×

*N*] angular motion Jacobian for the center-of-mass of link

*i*

** J_{Ti}** = [3 ×

*N*] linear motion Jacobian for the center-of-mass of link

*i*

** j_{Tik}** = [3 × 1] k-th column of matrix

*J*_{Ti}** J_{TS}** = [3 ×

*N*] linear motion energy contribution matrix

** K_{D}** = [

*N*× 1] matrix of elements

*K*

_{Di}

** K_{Di}** = derivative controller gain

${\widehat{k}}_{i}$ = unit vector along the z axis of the coordinate system attached to joint *i*

** K_{P}** = [

*N*× 1] matrix of elements

*K*

_{Pi}

*K*_{Pi} = proportional controller gain

*L* = Lagrangian

** L** = angular momentum vector about CM

_{0}expressed in frame ${J}$

** m_{i}** = mass of link

*i*assembly (including connected parts of joints

*i*and

*i+1*)

${\u200a}^{{J}}{{M}}_{{0}}$ = [6 × 1] combined matrix of initial momentum (linear and angular) with respect to the base-spacecraft center-of-mass

*m*_{tot} = mass of the spacecraft-manipulator system

*N* = number of manipulator joints

** 0_{i, j}** = [

*i*×

*j*] zero matrix

** P** = linear momentum vector about CM

_{0}expressed in frame ${J}$

** p_{i}** = position vector from point Ω to the point ϱ

_{i}

** q** = [

*N*× 1] matrix of elements

*q*

_{i}

** q_{D}** = [

*N*× 1] matrix of elements

*q*

_{D}

** q** = [4 × 1] unit quaternion

*q*_{Di} = desired angular displacement of joint *i*

*q*_{i} = angular displacement of joint *i*

${}^{{B}}q{\u200a}_{r{A}}$ = [4 × 1] unit quaternion expressing the rotation between coordinate system ${A}$ and coordinate system ${B}$

** r_{C}** = position vector from Ω to

*CM*

_{tot}expressed in frame ${J}$

** r_{i}** = position vector from point Ω to point

*CM*

_{i}expressed in frame ${J}$

** r_{0C}** = position vector from

*CM*

_{0}to

*CM*

_{tot}expressed in frame ${J}$

** r_{0i}** = position vector from

*CM*

_{0}to

*CM*

_{i}expressed in frame ${J}$

${}^{{B}}R{\u200a}_{{A}}$ = [3 × 3] direction-cosine matrix from the coordinate system ${A}$ to the coordinate system ${B}$

** S_{U}** = [3 × 3] Schur complement matrix of upper left sub-matrix of

*H*_{b}*s*_{j, k} = row *j*, column *k* element of *S*_{U}

${}^{{B}}t{\u200a}_{{A}}$ = [4 × 1] four-vector expressing the translation of the coordinate system origin between system ${A}$ and system ${B}$

*T* = kinetic energy

**τ**_{max, i} = maximum motor torque for joint *i*

${}^{{B}}T{\u200a}_{{A}}$ = [4 × 4] homogenous transformation matrix from the coordinate system ${A}$ to the coordinate system ${B}$

* u* = [

*N*× 1] matrix of control inputs for Computed Torque Control

** v_{0}** = linear velocity of the base-spacecraft with respect to the inertial frame ${J}$

** v_{E}** = linear velocity of the end-effector with respect to the inertial frame ${J}$

** v_{Xi}** = linear velocity of arbitrary point

*X*

_{i}located on link

*i*of the manipulator with respect to the inertial frame ${J}$

${\u200a}^{{J}}{{x}}_{{0}}$ = [6 × 1] combined position matrix of linear position components and attitude parameters of the base-spacecraft, (${\u200a}^{{J}}{{x}}_{b}$ = ${\left[\begin{array}{cccc}{\u200a}^{{J}}{r}_{0}{\u200a}^{T}& \varphi & \theta & \psi \end{array}\right]}^{T}$)

${\u200a}^{{J}}{\dot{x}}_{0}$ = [6 × 1] combined velocity matrix of linear velocity components and angular velocity components of the base-spacecraft,

** x_{0i}** = position vector from CM

_{0}to an arbitrary point on link

*i*

*X*_{i} = arbitrary point on link *i*

** x_{i}** = position vector from Ω to an arbitrary point on link

*i*

DCM = Direction-Cosine Matrix

DEM = Dynamically Equivalent Manipulator

DH = Denavit-Hartenberg

DOF = Degree of Freedom

EE = End-Effector

ETS-VII = Engineering Test Satellite VII

GJM = Generalized Jacobian Matrix

HTV = H-II Transfer Vehicle

ISS = International Space Station

JEMRMS = Japanese Experiment Module Remote Manipulator System

PD = proportional-derivative controller

SPDM = Special Purpose Dexterous Manipulator

SRMS = Shuttle Remote Manipulator System

VM = Virtual Manipulato.

Keywords: robot dynamics modeling, spacecraft manipulator dynamics, generalized Jacobian, generalized inertia matrix, Lagrangian equations of motion

Citation: Wilde M, Kwok Choon S, Grompone A and Romano M (2018) Equations of Motion of Free-Floating Spacecraft-Manipulator Systems: An Engineer's Tutorial. *Front. Robot. AI* 5:41. doi: 10.3389/frobt.2018.00041

Received: 12 January 2018; Accepted: 23 March 2018;

Published: 18 April 2018.

Edited by:

Evangelos G. Papadopoulos, National Technical University of Athens, GreeceReviewed by:

Andrea Antonello, Dipartimento di Ingegneria dell'Informazione, Università degli Studi di Padova, ItalyAlfredo Valverde, Georgia Institute of Technology, United States

Copyright © 2018 Wilde, Kwok Choon, Grompone and Romano. This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.

*Correspondence: Markus Wilde, mwilde@fit.edu