Kinematics for Spacecraft-Type Robotic Manipulators

The scope of this chapter is the study of the forward and inverse kinematics for a space robot. The main focus is to compute the position and orientation of manipulators’ end-effectors relative to their platform. Such platform plays the role of workstations referred in the literature approaching ground manipulators. In this study, the method is to write the manipulator kinematics’ equations as functions of the joint variables by following the Denavit-Hartenberg convention. The homogeneous transform technique is used to study the kinematics. The set of coordinate frames defined in this chapter follows the convention for frames that appears in the literature for ground robot manipulators. The kinematics related to the spacecraft attitude is added in the formulation because the manipulator studied in this chapter is type spacecraft. The objective is to provide an overview and clear understanding of the kinematics’ equations for spacecraft-type manipulators. To be consistent with orbital dynamics area, the inertial, orbital, and body-fixed coordinate frames are included in this kinematics study. The forward and inverse kinematics formulations are derived. The MATLAB/Simulink tools are presented for the computer simulations of the forward and inverse kinematics.


Introduction
Kinematics is mainly concerned with the geometry of motion. The subject of kinematics is to some extent mathematical and does not consider any forces associated with the motion. A comprehensive study of kinematics is a prerequisite to the successful formulation of the equations of motion and the dynamic analysis. Consistent with the geometry of motion, kinematics involves the definition of systems of reference, methods of establishing relationships between frames, and algebraic manipulations of matrices and vectors. Kinematics is primarily concerned with describing the orientation of a body with respect to a known reference or coordinate frame. When dealing with robotic manipulators, we have to include also translational kinematics. In this chapter, the calculation goes beyond the algebraic manipulations of rotation matrices connecting frames. This includes the derivation of the equations for the rotational and the translational kinematics that characterize robot manipulators' kinematics. Space robotic manipulators are designed to implement orbital operations. There is a considerable difference regarding Earth-based manipulators, as they increase the type and number of reference systems for proper problem formulation [1][2][3][4]. The main differences with regard to Earth-based robotic manipulators are the inclusion of an Earth-centered inertial coordinate frame (ECI), besides the local vertical, local horizontal (LVLH) reference frame, and the spacecraft fixed reference frame. These frames are used to describe the kinematics' differential equations related to orbit and attitude motions. The other reference frames are typical of those defined for ground manipulators. For space manipulators, we need to consider the relationships between all these reference systems.

Forward kinematics of manipulators and D-H conventionhomogeneous transforms
Forward kinematics is the problem of computing the position and orientation of the robot tool with respect to a fixed reference frame defined on the base of the space robot. Such manipulators can be seen as a set of links connected in a chain of joints. The joints are points of connection between a pair of links. The joints of a manipulator may be revolute (rotatory), prismatic (sliding), or a combination of both. According to that link to joint configuration, any robot manipulator kinematics can be described in terms of four quantities associated with each link. Two of these quantities describe the link itself. The other two describe the link's connection to the neighboring link. For revolute joints, the angle θ i is the joint variable, and the other three quantities are fixed link parameters. These parameters are illustrated in Figure 1 as the twist angle α iÀ1 , the distances a iÀ1 , and d i . For prismatic joints, the joint variable is d i , while the angle θ i is zero. In this case, α iÀ1 , and a iÀ1 are fixed link parameters (see Figure 1). The description of manipulators by these quantities is referred as the Denavit-Hartenberg convention, denoted here as D-H [5,6]. The understanding of those four quantities requires the frame convention shown in Figure 2. The frames are denoted by the symbol {}, for example {i-1} denotes a frame whose origin is in joint i-1. A summary of the link parameters considering frames convention shown in Figure 2 can be written as: • a i is the distance measured along x-axis from z i to z iþ1 • α i is the angle rotation measured about x i from z i to z iþ1 • d i is the distance measured along z i from x iÀ1 to x i • θ i is a joint angle measured about z i from x iÀ1 to x i . The D-H convention describes the manipulator rotational plus translational kinematics by using homogeneous transform. This transform is a 4 Â 4 matrix in the form: The result is iÀ1 The subscript o is just to say that the position of the end-effector is given with respect to the origin of the frame 1À1 i R: i R block matrix is related to the rotation between frames i À 1 f gand i f g by the joint angle θ i . The 3 Â 1 vector iÀ1 p o is related to the end-effector position with respect o the frame i À 1 f g. The advantage of this approach is the use of matrix notation including the position in addition to the orientation.
Such matrix notation facilitates the mathematical formulation in a compact and comprehensive format. Also, the D-H formulation is appropriate to implement problems in the MATLAB ® computational environment.
Let us discuss now the manipulation of the frames as defined in Figure 2 and their parameters. The D-H convention considers that all the joint angle rotations take place along z-axis. The rule is the same for the joint variables d i (prismatic joints). In the case of prismatic joints, the joint angle is zero. This convention regarding joint variables along z-axis means that when z-axis is not parallel to the next one, a twist angle rotation α must be done so as to generate a new z-axis parallel to the next one. Angle α can be positive or negative. Another convention applies to the distance a i . Once we have the new z-axis parallel to the next one, the distance a i is determined by drawing a mutual perpendicular line between both zaxes. Such line will determine the distance between the joints and is also the place of a new x-axis. A y-axis completes the right-handed frame ( Figure 2). If the line containing a i crosses the z-axis offset of the joint, it defines a distance d i as shown in Figure 2. Finally, we rotate the z-axis by the joint variable θ i and a new frame is generated, taking into account the offset d i .
On the base of the space robot attachment, the Ox 0 y 0 z 0 frame or 0 f g is defined. Note that the frame is i À 1 f g, and for i = 1, this frame is 0 f g. In the literature of robot manipulators, 0 f g frame does not move with respect to the space robot platform. Accordingly, the joint associated to {0} is also named joint 0 from which the link 0 connects to the joint 1. It is common to define joint 0 coincident with joint 1. In this case, a 0 is zero. For ground robots, it is common to define Ox 0 y 0 z 0 as an inertial frame. However, such definition is not consistent with the concept of inertial frames, mainly when we have space robot orbiting the Earth. For a space robotic manipulator, the Ox 0 y 0 z 0 frame is defined with its origin somewhere on the platform and locates the placement of joint zero. Figures 2 and 3 illustrate the frames, joint axes, joint variables, and the other fixed quantities according to the D-H convention.
To include the translation in the same matrix notation, we use the homogeneous transform as shown in Eq. (1).
Before going to the other frames definition for the spacecraft, let us implement the matrix algebra, considering Figure 2. To clarify the procedure to obtain the general expression for the rotational-translational kinematics, let us redefine some frames in Figure 2.
• Let the frame formed by x 0 iÀ1 , y 0 i, z 0 iÀ1 , obtained be a rotation α iÀ1 about x iÀ1 , be defined as R f g; • Consider frame formed by x 0 iÀ1 , y 0 iÀ1, z 0 iÀ1 translated by a iÀ1 as Q f g; • Consider the frame obtained by a rotation θ i and parallel to frame i f g as P f g; • Consider frame i f g obtained by a translation d i .
Consider now Figure 2 that shows the various frames in addition to the D-H parameters.
To write the kinematics' equations in the frame i À 1 f g, we need to compute the rotation matrices using the homogeneous transform as below Space robot on-orbit configuration and frames.
is given by a rotation of α iÀ1 about x iÀ1 . Note that no translation appears in the matrix. That matrix makes the z iÀ1 parallel to the next, z i -axis. The next matrix, refers to the translation a iÀ1 . This translation is along the x iÀ1 -axis, defining the distance a iÀ1 . As z iÀ1 is parallel to z i , the distance a iÀ1 is a mutual perpendicular to both the previous and the next z-axis. The rotation matrix, results of rotation about z i by the joint angle θ i . This rotation generates a frame parallel to i f g at a distance d i (offset) from the joint i. The 4th matrix, translates the frame by d i completing the transform from frame i f g to i À 1 f g. Sometimes, it is more convenient to write the kinematic differential equations in the frame i f g. In this case, we have to transpose the rotation matrices so as to have the equations written in frame i f g but in coordinates of i À 1 f g. For space robots, we must compute the kinematics not only of the manipulator but also for the whole spacecraft (rotational and translational kinematics) [3,4]. To do this, it is necessary to define three more frames: • the Earth-centered inertial (ECI) frame ⨁XYZ, defined at the center of the Earth (the symbol ⨁ means Earth) • the local vertical, local horizontal frame (LVLH) denoted as Cx l y l z l . C is the center of mass of the space robot. The subscript l is a short for LVLH; • and a spacecraft fixed system of reference, defined in the center of mass of the space robots [7] and denoted by Cx p y p z p . Figure 3 illustrates these new frames. The Cx l y l z l is fixed in the orbit. So, it follows with the orbit synchronized with the orbital velocity and with z l pointing toward the local vertical (Nadir direction). In the literature, this frame is also named RPY (roll, pitch, and yaw). Roll is the rotation angle about the orbital velocity direction (x-direction), pitch is the rotation angle about the negative orbit normal (y-axis), and yaw is the rotation angle about the local vertical (z-axis). The roll, pitch, and yaw angles yield the space robot attitude with respect to the Cx l y l z l frame. Both the Cx l y l z l and the Cx p y p z p frames coincide with each other in a nominal attitude specification, that is, the space robot is pointing toward the local vertical, and the spacecraft attitude is zero. As the Cx p y p z p frame is fixed in the spacecraft, the attitude is given by the angles between Cx l y l z l and Cx p y p z p . Other conventions may be used for the definition of these frames. The reference systems ⨁XYZ, Cx l y l z l , and Cx p y p z p are included in the formulation to allow for describing the rotational and translational kinematics in frame Cx p y p z p or in the frame Cx l y l z l . In general, the equations of dynamics are written in the body fixed frame, Cx p y p z p . We can write the kinematics and/or the kinematics' differential equations in any of those three frames by using transformation matrices. The {ECI} allows writing the translational kinematic expressions in terms of the orbit parameters [7]. If the coupling between the orbit and attitude motion is negligible (in general, it is), we can write the rotational kinematics in the Cx p y p z p or Cx l y l z l frames, including the orbital velocity only. The practice is to use the Euler angles to describe the angular orientation between both frames (the attitude of the spacecraft with respect the Cx l y l z l frame). According to the Euler Theorem, we can do this through three sequences of rotations from one frame to another frame. Figure 3 shows both frames in a nominal configuration in which the attitude angles are zero and both frames are coincident. As the spacecraft moves, the fixed frames also move. Figure 4 illustrates the rotation between those frames. So, we can derive the kinematic expressions by using the spacecraft fixed frame, x p y p z p .
Let us consider that the spacecraft fixed frame is misaligned from the Cx l y l z l by the angles as shown in Figure 4. Figure 4a illustrates the space robot in-orbit configuration with attitude different from zero. Note that in this figure, both Cx l y l z l and Cx p y p z p are misaligned. Figure 4b illustrates the sequence of rotations from Cx l y l z l to Cx p y p z p .
The sequence of three rotations is φ⟵θ⟵ψ [7]. The arrows indicate the direction of the sequence as: first, a rotation about z l by the angle ψ generating an auxiliary frame Cx 0 p y 0 p z 0 p . Then, a second rotation is done about y 0 l by the angle θ generating the auxiliary frame Cx} p y} p z} p . Finally, the third rotation is done about x } to coincide with Cx p y p z p . There are 12 sets of Euler angle sequences of rotations to describe the rotational kinematics. However, the sequence of rotations φ⟵θ⟵ψ is one the most used transformations for satellites' rotational kinematics description. This transform provides the relationship between both Cx l y l z l and Cx p y p z p frames. The notation of the sequence used here is the same as φÀ!θÀ!ψ. However, the first notation emphasizes the resulting structure of matrix multiplication when implementing the transformation from Cx l y l z l to Cx p y p z p frames as we are going to show next.
First rotation, about z l So, the structure is really like φ⟵θ⟵ψ.
The final matrix allows writing the equations in the spacecraft fixed frame Cx p y p z p in coordinates of Cx l y l z l as: The relationships from n f g to 0 f g can be written as: To write the kinematics of the spacecraft-like robot manipulator in the LVLH system of reference, we have to concatenate all the matrices. By using Eqs. (17) and (18) and Eq. (2), we can establish the relationships between i the coordinate frames as: The vector r c f g ¼ r cx r cy r cz È É T represents the translation from the center of mass (CM) to the robot base or the Ox O y O z O frame. This is a constant vector in this formulation. However, when the robot manipulator is in orbit operation, the links move, changing the location of the system CM, in other words, the CM location becomes a variable of the problem. By the time the space shuttle was in operation, this type of problem appeared. When it grasped significant massive target, the system CM motion affected the efficiency of the robot arm to put the target where it was planned. Another problem experienced by the space shuttle manipulator was the interaction between the attitude control system and the robot arm structural flexibility. The attitude control was in action to keep the shuttle stabilized while the manipulator was commanded to grasp a target. The structural flexibility of the long arms was excited by the attitude actuators and entered in elastic vibration mode causing problems to accomplish a safety grasping of the target. But this is another story and may be subject of research on another occasion. Figure 3 where the space robot is stabilized with Cx l y l z l and Cy p z p frames. Find the kinematics relationship written in the Ox O y O z O frame. First, we built the D-H as shown in Table 1 for the problem. Figure 3, we can see that all the z-axes are parallel and the joints are revolute. So, the parameters α and d are zeros. Following the D-H table:

By inspection in
where Note that we considered the spacecraft stable in attitude with the Cx p y p z p aligned to the Cx l y l z l frame. But be aware that if the manipulator moves in attitude, the kinematics' differential equations of the spacecraft shall account for the manipulator links of kinematics' differential equations. In particular, if the manipulator is to grasp an on-orbit target, the attitude of the manipulator-like spacecraft must be synchronized to that of the target so that the relative attitude of both spacecraft and target is zero. As the dynamic analysis is out of the scope of this chapter, we will assume that the robot arm kinematics' equations differ from ground robots only by Cx l y l z l and x p y p z p frames. For orbital robots these frames are used to describe the kinematics differential equations related to orbit and attitude motions. Figure 5 which illustrates a revolute-prismatic-revolute (RPR) manipulator. In this case, we have a rotation θ 1 ð Þ, a translational variable d 2 ð Þ, and another rotation θ 2 ð Þ as illustrated in Table 2. The convention is that those degrees-of-freedom occur along z-axis.

Example 2. Consider
For this case, we have one rotation of θ 1 , translation of d 2 , and a rotation of θ 3 . Following the D-H convention above, we should make a few comments. First, we have a rotation on z-axis. Then, we use the twist angle rotation to make a (33) Note that this notation of homogeneous matrix allows including the two translations of this problem. Also, note that the offset translation is along z. The transform matrix (α 2 ¼ 90 o Þ yields: This result is a transformation, 1 2 T 2 , that is, the transform from frame {2} to frame {1}. Combining all the transformations, we can write from frame {3} to frame {0} as:

Inverse kinematics
Inverse kinematics consists of finding the joint variables given the robot manipulator end-effector position and orientation with respect to the user workstation. The workstation means a known location and reference system. It could be the platform of the robotic system. In this chapter, the platform reference system is the frame Cx p y p z p represented by {P}. In general, such frame is defined in the center of mass of the space robotic system. We know the location of that system of reference. Also, we know the location of the Cx l y l z l frame because we know the space robot orbit. In the previous section, we considered the relationship between frames to write the equations in the {0}. In the inverse problem, we want to find joint variables given the specified position and orientation of the tool relative to {0} or {p}. We assume that the robot attitude and orbit control subsystem keeps the space robot stabilized while it works. This is to simplify the formulation. This assumption is reasonable since this is exactly what must be done when the space robot is in operation. We have already presented and discussed the several frames defined to study the robot kinematics. We will refer to just one more, the frame defined on the tool, {T}.
There are some aspects of inverse kinematics that make it more complex than forward kinematics [5,6]. We will briefly report them, but we will not go into too many details. In this chapter, our focus is on the solution methods for inverse kinematics problem.
One of the main aspects of the inverse kinematics is solvability because we have to face the problem of existence of solutions and of multiple solutions. Also, this problem brings to light the concept of manipulator workspace which is the volume of space that the end-effector of the manipulator can reach. For space robot, this problem is critical because if the object to be manipulated is beyond space robot workspace, the space mission may not accomplish goals like grasping a target, docking to another spacecraft, put a piece of structure in right location during assembling space structures, and so on. For a solution to exist, the point specified to be reached by the end-effector must be inside the manipulator workspace. Another problem related to the workspace of robots is to plan a trajectory [9] preventing collisions with objects, another robot, or astronaut inside the workspace. There are two useful definitions related to workspace. One is the dextrous workspace [5] and the other is the reachable workspace. The first refers to the space volume that the end-effector reaches with all orientation. The second is that volume of space that the robot can reach in at least one orientation. If the position and orientation specified for the robot task is inside the workspace, then at least one solution exists. Workspace also depends on the tool-frame transformation, since it is frequently the tool-tip that is discussed when we discuss reachable points in space. Details about the solvability problem for inverse kinematics may be seen in [5].

The inverse kinematics solution methods
In solving inverse problems, the first thing we must consider is that there are no general algorithms [5,8,9] that may be employed to solve manipulator kinematics. We state that a manipulator is solvable when the joint variables can be determined by an algorithm for a given position and orientation of the tool frame, {T}.
The solutions may be classified as close solution and numerical solutions. Numerical solutions are in general slower than close solutions and would require another chapter for discussion. We will concentrate in the close solutions methods. These methods can be subdivided into algebraic and geometric solutions. This classification is somehow hazy since each solution method uses both algebraic and geometric kinematic formulations. In presenting and discussing the methods, we point out that according to the concept of solution we stated here, the revolute and prismatic manipulators having six degrees of freedom (DOF) in series chain are solvable.

Algebraic solution
Consider the robot manipulator mounted on the spacecraft platform and the onorbit configurations in the nominal attitude as shown in Figure 3. Let us apply the algebraic solution. Note that the frame defined in the last link is the frame for n = 3. So, the transform from frame {0} to frame {N} is given by Eq. (24) repeated here for didactic reasons.
Note that this specified orientation and position are the angle φ and the Cartesian position (x, y, 0) of the tool. As Eq. (37) must be equal to Eq. (38), the problem can be solved by comparing the elements of the matrices. The joint angles and the parameters l i , i ¼ 1, 2 are unknown. The specified orientation given by φ and the components of the vector x y z f g T , in the planar case, x and y are known and represent the tool position with respect to {0}. By equating a 11 element of both matrices we have: x ¼ l 1 c 1 þ l 2 c 12 (41) where c 12 ¼ c 1 c 2 À s 1 s 2 The algebraic solution requires the solution of Eq. (39) to Eq. (42). We can compute the square of Eqs. (41) and (42) to obtain: Solving Eq. (43) by c 2 , we compute c 2 as: Important information can be extracted from Eq. (44). We know that the cosine function must be between À1 and + 1. By checking such constraint, we obtain information whether or not the solution exists. In case a solution does not exist, the meaning is that the point is not inside the robot manipulator workspace.
Let us assume that the orientation and position specified in inside the workspace. In this case, we can compute s 2 as: The joint angle can then be computed by: Atan2 s 2 c 2 computes tan À1 s 2 c 2 , but uses the signs of both s 2 and c 2 to identify the quadrant in which the resulting angle lies. Note that there are signs to be considered in Eq. (45). The signs are related to multiple solutions.
Once we have obtained θ 2 , we can obtain θ 1 by manipulating Eqs. (41) and (42). To solve the problem, we should define: and use the trigonometric identities to rewrite Eqs. (41) and (42) as: x ¼ k 1 c 1 À k 2 s 1 (51) Next, we make a change of variable by writing k 1 and k 2 in the form: and Using these new variables, we can write Eqs. (51) and (52) as: Then, using the definition of γ, we obtain the expression for θ 1 as: As we have θ 1 and θ 2 , we can find θ 3 by using Eqs. (39) and (40) Once have θ 1 and θ 2 , we obtain θ 3 from Eq. (59). Transcendental equations commonly arise when applying the algebraic approach. The greater the number of degrees of freedom of the robotic manipulator, the more laborious is the solution of the problem.

Geometric solution
By using this approach, we simply work the geometry of the arm. For the same problem, we may have the position of the joint associated to the frame {N} with respect to the origin of frame {O} by using geometry. Frame {N} refers to the frame attached to the last link of the manipulator. Consider Figure 6 showing the triangle formed by the geometrical configuration of the sides of the links and the line from the origin of the frame {O} to the origin of frame {N}. Applying the law of cosines, we can write: x 2 þ y 2 ¼ l 1 2 þ l 2 2 À 2l 1 l 2 cos 180 À θ 2 ð Þ¼l 1 2 þ l 2 2 þ 2l 1 l 2 c 2 (60) Again, this solution must be between 1 and À 1 in order to have a valid solution. Assuming that the solution exists, then: Finally, we can write another solution for θ 2 in terms of the tangent since we have both sin and cosine of the angle θ 2 , v u u t x 2 þ y 2 À l 1 2 þ l 2 2 À Á  By equating both sides of Eq. (71), we start identifying solutions by comparing the elements of matrices from both sides. Then, we continue by multiplying both sides, by the inverse of the 1 2 T and repeat the process to identify more solutions to obtain: • rpy2tr (roll, pitch, yaw, options) command refers to the LVLH frame referred in this chapter and converts the roll-pitch-yaw angles to homogeneous transform.
There are several other commands/functions that are very useful for applications approached in this chapter and the reader is advised to see [10].

Conclusion
In this chapter, we have approached the forward and inverse kinematics for space robot manipulators via the D-H convention. In all cases presented here, the spacecraft nominal attitude was considered stabilized. Otherwise, it would be necessary to consider kinematics in terms of absolute position described in the LVLH or in the spacecraft fixed frame with variable attitude angles. Some examples are solved, and a related reference is provided. Al the algebraic matrix manipulations presented here were obtained by using the MATLAB ® Symbolic tool box. Also, the chapter presented other features of the MATLAB ® and Simulink ® software related to the subject of the chapter. Despite its importance, differential kinematics is out of scope of this chapter and maybe the subject of future work.