Analysis and control of a Stewart platform as base motion compensators - Part I: Kinematics using moving frames

Kinematics and its control application are presented for a Stewart platform whose base plate is installed on a floor in a moving ship or a vehicle. With a manipulator or a sensitive equipment mounted on the top plate, a Stewart platform is utilized to mitigate the undesirable motion of its base plate by controlling actuated translational joints on six legs. To reveal closed loops, a directed graph is utilized to express the joint connections. Then, kinematics begins by attaching an orthonormal coordinate system to each body at its center of mass and to each joint to define moving coordinate frames. Using the moving frames, each body in the configuration space is represented by an inertial position vector of its center of mass in the three-dimensional vector space ℝ3, and a rotation matrix of the body-attached coordinate axes. The set of differentiable rotation matrices forms a Lie group: the special orthogonal group, SO(3). The connections of body-attached moving frames are mathematically expressed by using frame connection matrices, which belong to another Lie group: the special Euclidean group, SE(3). The employment of SO(3) and SE(3) facilitates effective matrix computations of velocities of body-attached coordinate frames. Loop closure constrains are expressed in matrix form and solved analytically for inverse kinematics. Finally, experimental results of an inverse kinematics control are presented for a scale model of a base-moving Stewart platform. Dynamics and a control application of inverse dynamics are presented in the part II-paper.


Introduction
When manipulators, which require precise positioning, operate in moving vehicles or ships, it becomes economical to utilize a Stewart platform [1], whose sole role is to stabilize the orientation and the translation of its top table onto which the manipulators are attached. In this way, the design and control of each tool for its precise positioning become simpler without coping with undesirable large rigid-body rotation and translation of the tool mount. In addition, such a platform is also useful for safe transportation of a sensitive equipment or a patient using a vehicle to mitigate the transmission of undesirable rotation and translation induced by the moving vehicle.
For base-moving Stewart platforms, only a few applications have been reported. As passive applications, Stewart platforms were utilized as vibration isolators utilizing bio-inspired X-shaped legs [14] and adjustable electromagnetic legs, which exhibit negative stiffness [15]. As actively controlled applications, previous researchers employed proportional-derivative (PD) controllers using inverse kinematics derived from geometrical relations [16,17]. Due to the complexity of the problem, velocity computations and derivation of equations of motion for a basemoving Stewart platform have not been reported. For effective and fast position control of the top plate of a base-moving Stewart platform, it is desirable to derive equations of motion to explore nonlinear control schemes.
In response to the need described above, analytical equations of motion are derived in matrix form for a control application of inverse dynamics. In this part I-paper only kinematics is presented while the derivation of equations of motion and their control application are presented in the part II-paper.
Regarding the representation of configuration spaces of multi-body systems, Joseph-Louis Lagrange (1736-1813) defined configuration spaces using vectors consisting of generalized coordinates or displacements. Fortunately, in the early twentieth century, due to the advent of matrix Lie groups pioneered by Sophus Lie (1842-1899), in addition to vectors in R n , the set of differentiable rotation matrices: the special orthogonal group SO (3) has been utilized to define the configuration space of multi-body systems [18]. Specifically, in the configuration space of a multibody system each rigid body is mathematically expressed by the position vector of the origin of a body-attached coordinate system in R 3 , expressed with respect to an inertial coordinate system, and the rotation matrix in SO(3) of the body-attached coordinate axes from the inertial coordinate axes [19][20][21].
In this paper, first, the multi-body connection of a base-moving Stewart platform is expressed by using a directed graph to reveal closed loops [22]. Second, by attaching principal coordinate systems to constituent bodies at their centers of mass, moving coordinate frames are defined. Coordinate frames are also attached to joints. Third, to define the configuration space of the Stewart platform, the connections of body-and joint-attached coordinate frames are expressed mathematically employing the special Euclidian group, SE (3), which combines both SO(3) and R 3 . Fourth, loop closure constraints are obtained along a representative closed loop in the configuration space (as well as in velocities). They are solved analytically for inverse kinematics. Fifth, velocities of moving frames are computed incorporating the Lie algebra: so(3) of SO (3). The advantage of expressing the frame connections by using SE(3)-matrices is that the readers can compute frame velocities unambiguously since the coordinate vector bases are explicitly shown. Finally, experimental results of an inverse kinematics control are presented for a scale model of a base-moving Stewart platform. Furthermore, in Appendix A, workspace analysis is performed for the preliminary design of a Stewart platform. In the part II-paper, the velocities of body-attached coordinate frames computed here are utilized to derive analytical equations of motion for inverse dynamics control.
2 Description of a Stewart platform Figure 1 illustrates a Stewart platform in its reference configuration. To identify bodies of the multi-rigid body system, body numbers are assigned to constituent bodies and shown in a pair of parentheses. Body-(0): base plate is attached to the floor of a moving ship or a vehicle. As a result, the base plate translates and rotates due to the motion of the vehicle. Body- (13) represents top plate or platform on which some sensitive equipment or a manipulator is mounted. Body-(0) and body- (13) are connected by six identical legs, referred to as leg-(k), k = 1,Á Á Á ; 6.
Leg-(k) consists of lower leg, body-(2k-1), and upper leg, body-(2k), jointed by an actuated translational joint, ATJ-(k), between them. The objective of a controller is to maintain a desired attitude of the top plate to mitigate the motion of the base plate by changing their ATJ lengths at each time.
In leg-(k) shown in Fig. 1, the lower leg, body-(2k-1), is jointed to body-(0) by a universal joint (UJ), named UJ-(k), whereas the upper leg, body-(2k), is jointed to body-(13) by a spherical joint (SJ), called SJ-(k). The base yoke of UJ-(k) is fixed to body-(0), which journals one axis of the UJ cross. The cross of UJ-(k) is referred to as UJ-(k) cross. Its center is located at point B k . The attachment of the lower leg, body-(2k-1), to the other axis of UJ-(k) cross is facilitated by the yoke hub at the lower end of body-(2k-1) to pivot freely around this axis. The upper end of the upper leg, body-(2k), has a spherical ball, referred to as SJ-(k) ball with its center at point T k . The spherical ball fits into the SJ-(k) socket fixed to body- (13).
A directed graph of the Stewart platform is presented in Fig. 2a. In the graph vertices represent rigid bodies and lines show joint connections. The graph is ''modified'' by enlarging the vertices for the base plate, body-(0), and the top plate, body- (13), to show the leg attachment points B k for universal joints, UJ-(k), and T k for spherical joints, SJ-(k), for leg-(k), k ¼ 1; Á Á Á ; 6: In the graph body- (14), not shown in Fig. 1, represents a manipulator, which is rigidly attached to the top plate.
The graph in Fig. 2a reveals that there are closed loops formed by 15 pairs of different legs. Instead of dealing with individual pairs, the loop closure constraints can be treated efficiently by considering a generic closed loop shown in Fig. 2b. The loop is formed by a free link between body-(0) and body-(13), shown by a broken line, and leg-(k). In the figure, C (a) represent the center of mass of body-(a). Along path (i) one starts from the center of mass of body-(0), C (0) , moves along the free link to that of body-(13), C (13) , and heads toward the center T k of the semi-spherical cavity of SJ-(k) socket, which is rigidly attached to body- (13). Along path (ii) one starts from C (0) to the center B k of UJ-(k) cross, moves along the axis of leg-(k) passing the centers of mass of body-(2k-1), C (2k-1) , and body-(2k), C (2k) , and reaches the center T k , of SJ-(k) ball. Finally, one fits SJ-(k) ball of the upper leg into SJ-(k) socket on body- (13). This fitting of SJ-  (k) ball into SJ-(k) socket is mathematically described by loop closure constraints.
Using the vector method, kinematic equations of Stewart platforms were previously presented in vector form [4][5][6][7][8][9][10][11][12][13]. From the resulting vector equations to obtain component equations, readers need to define appropriate coordinate systems and perform necessary computations. This extra burden on readers is eliminated in the following by explicitly defining bodyattached coordinate frames for kinematics.
To commence kinematics using moving frames, the configuration space is defined along the generic closed loop in Fig. 2b by attaching orthonormal coordinate systems at the centers of mass of constituent bodies as well as at the joints. The completion of both paths yields configurational loop closure constraints at SJ-(k). Then velocities of the attached coordinate frames will be computed to obtain: (1) the loop-closure constrains on velocities and (2) the translational and angular velocities of each body at its center of mass, which will be utilized in the part II-paper to compute the equations of motion for the Stewart platform.

Configuration space defined by coordinate frames
The configuration space is defined along each path of the generic closed loop in Fig. 2b by attaching moving coordinate frames at joints and the centers of mass of rigid bodies and expressing their interconnections.
3.1 Moving coordinate frames along path (i) Figure 3 depicts the free link between body-(0) and body- (13), shown in Fig. 2b. To begin, an inertial coordinate frame is defined to express position vectors of the origins of moving coordinate frames.

Inertial frame
A fixed Cartesian coordinate system {x 1 x 2 x 3 } is defined with its origin, expressed by zero vector 0. The unit vectors of the coordinate axes define a vector basis e I 1 e I 2 e I 3 À Á , which is compactly written as e I utilizing Frankel's notation [23]. The vector basis e I and its origin 0 define the inertial coordinate frame written as: (e I , 0), [20,21].
Using the inertial vector basis e I , the position vector of the center of mass, for example C (0) of body-(0) is expressed as: where e I e I 1 e I 2 e I 3 À Á ; ð1bÞ In Frankel's notation all vector bases are stored in 1 9 3 row matrices and components in 3 9 1 column matrices. In this paper, {x 1 x 2 x 3 } is exclusively used for the inertial coordinate system, while {s 1 s 2 s 3 } is used for body-attached, orthonormal coordinate systems. Furthermore, only right-handed coordinate systems are considered.
The configuration of body-(0) is defined by expressing its frame connection to (e I , 0). To this end, the attitude of e 0 ð Þ t ð Þ relative to e I is expressed using a 3 9 3 rotation matrix R 0 ð Þ t ð Þ with determinant one: In expanded form, the rotation matrix is written as: where a superposed 'T' attached to a matrix symbol implies the transposition of the matrix.
obtained by applying the rotation R 0 ð Þ t ð Þ and the parallel translation x 0 ð Þ C t ð Þ to e I 0 À Á . In this paper, an inertial coordinate frame is selected to be the body-(0) frame at t = 0: The set of differentiable rotation matrices forms the special orthogonal group: SO(3) [18,23], and that of differentiable frame connection matrices forms the special Euclidean group [19][20][21]. (Here the adjective ''special'' means that all member matrices have determinant one.) Both SO(3) and SE(3) are matrix Lie groups with the basic group properties, expressed for SE(3): (i) their products belong to SE(3), (ii) their inverse matrices belong to SE(3), and (iii) associativity holds in matrix multiplications, see for example [18,23]. The members of SO(3) also satisfy the same group properties. As Lie matrix groups, SO(3) and SE(3) come with their Lie algebras: so(3) and se (3), respectively, which describe the flow of matrix members with time near their identity matrix. In dynamics, the Lie algebras express angular velocities and translational velocities of each body [20,21].
In robotics, frame connection matrices of SE(3) are called homogeneous transformations, see for example [24], where the time rate of transformations, comparable to the Lie algebra, are not mentioned. Also in robotics using the screw theory [25] and the product of exponentials formula [26], homogeneous coordinates of SE(3) were utilized to derive equations of motion by Murray et al. [27]. In this paper, the authors do not adopt the exponential matrix representation of rotation matrices, employed by the screw theory.
Returning to path (i) in Figs. 2b and 3 along the free link, a frame is defined for the top plate, body-(13).
C ðtÞ is expressed by adding the relative position vector of C (13) measured from The rotation of e ð13Þ ðtÞ relative to e ð0Þ ðtÞ is expressed by R 13=0 ð Þ ðtÞ. As a result, the connection of In this paper the matrices or vectors with superscript ''(j/i)'' imply those of frame-( j) relative to frame-(i). For example, in Eq. (4a), E 13=0 ð Þ t ð Þ expressed the connection of body-(13) frame relative to body-(0) frame.
In the reference configuration at t = 0, shown in cally from C (0) to C (13) by distanceĥ 0 ð Þ without any rotation. Therefore, the initial values of the elements of where e 3 represents a 3 9 1 unit column matrix: e 3 0 0 1 ð Þ T . Next along path (i) from C (13) one advances to SJ-(k) socket with its center at T k . ð Þ m , which is slightly smaller than the radius of the circumscribing circle of the triangle. The relative coordinatesŝ 13 ð Þ T k of point T k with respect to e 13 ð Þ t ð Þ remain constant:  Fig. 4a is expressed as: In this paper, time-independent quantities are shown with superposed hat: '^'.
Along path (i) SJ-(k) socket frame at T k on body-

Summary of path (i) frame connections
Along path (i) SJ-(k) socket frame at T k on body-(13) is also expressed with respect to body-(0) frame by combining Eqs. (6a) and (4a): where the components of the frame connection matrix are defined as: and from Eqs. (6a) and (4a): The computation of their components yields This completes the definition of frame connections along path (i). However, at this point, for the computation of kinetic energy in the part II-paper, the configuration of a manipulator, mounted on the top plate, is defined.
3.1.6 Body-(14) Frame: (e (14) As shown in Figs. 2a and 3, a manipulator, body- (14), is mounted on the top plate. In this paper, the manipulator is approximated as a rigid body with its center of mass located on the s along the s 13 ð Þ

-axis byĥ 14=13
ð Þ without any rotation: where using e 3 ( 0 0 1) T , 3.2 Moving coordinate frames along path (ii) Moving coordinate frames necessary to define the frame connections of path (ii) are briefly discussed. On leg-(k), first, two frames are employed at the center B k of UJ-(k) cross: UJ-(k) cross frame and UJ-(k) leg frame to describe the rotation of the lower leg, body-(2k-1). One axis of the cross is journaled by the base yoke fixed to body-(0) and the other axis is journaled by the yoke of body-(2k-1). Second, to describe the length change induced by the actuated translational joint, ATJ-(k), principal coordinate systems are attached to both body-(2k-1) and the upper leg, body-(2k), at their centers of mass of body-(2k-1) frame and body-(2k) frame. Third, advancing along the axis of the upper leg to the center T k of the spherical ball, SJ-(k) ball frame at T k on body-(2k) is defined. Finally, SJ-(k) ball frame at T k on body-(2k) is Fig. 4 a A plan view of the top plate, body- (13) and b an elevation for the socket of a spherical joint at T k connected to SJ-(k) socket frame at T k on body-(13) to mathematically fit the spherical ball into the SJ socket on body- (13). This summarizes the frames to be defined along path (ii). The relative position vector s

UJ-(k) Cross
where the coordinatesŝ 0 ð Þ B k are obtained from Fig. 5a and b with the elevationĥ and denoting the truncated angle by Dĥ 0 ð Þ , which is UJ-(k) cross rotates freely around the cross axis pivoted by the base yoke on body-(0). To describe the rotation of the cross, UJ-(k) cross frame The unit coordinate vector e where the elementary rotation R 3B kĥ In Eq. (10a) the unit vector e 0 ð Þ 1B k now points in the radial direction as illustrated in Fig. 5a.
UJ-(k) cross frame at B k on body-(0) is now where R 1B k UJ represents the elementary rotation about Finally, the connection of UJ-(k) cross frame at B k on body-(0) to body-(0) frame is obtained by substituting Eq. (10a) into Eq. (10c): The first column of Eq. (10e): e ð Þ to describe the cross rotation. Next, to describe the rotation of the lower leg, body-(2k-1), at B k the second frame is defined.
To describe the rotation of the lower leg at B k , UJ-(k) leg frame at B k on body-(2k-1): Fig. 6b and c.
The coordinate vector basis e shows the leg axis. The associated coordinate system with the origin at B k is defined as on body-(2k-1) occupies the same origin r B k t ð Þ as that of UJ-(k) cross frame. However, e t ð Þ, which shows the axis of the cross-link journaled by the yoke of body-(2k-1), as illustrated in Fig. 6c. Fig. 6 The rotations of UJ cross and the lower leg body-(2k-1) at B k : (a) / The lower leg, body-(2k-1), takes vertical position where the cross plane remains parallel to the plane of the base plate, i.e., no rotation about e The posture of the leg becomes that shown in Fig. 6b when only the cross rotates about e posture of the lower leg becomes that shown in Fig. 6c. Observing that in the reference configuration, shown in Fig. 1, the legs are not vertical to the plane of the base The connection of UJ-(k) leg frame at B k on body-(2k-1) to UJ-(k) cross frame on body-(0) is expressed as: To advance further along leg-(k) of path (ii), Fig. 7 illustrates the coordinate frames at joints and centers of mass which must be defined.

Body
For the lower-leg, body-(2k-1) frame is defined at Since body-(2k-1) holds a motor for actuating the translational joint, the center of mass C (2k-1) may be slightly deviated from the axis of leg-(k). Including this deviation, the relative position vector of C (2k-1) , where Dŝ Fig. 7.

Body
The top end of the lower leg, body-(2k-1), has a mechanism to actively slide and passively rotate the cylindrical upper leg, body-(2k), to facilitate a translational joint. The s 2kÀ1 ð Þ 3 -distance between the center of mass of body-(2k-1), C (2k-1) , and that of body-(2k), C (2k) , is expressed by d (k) (t), as illustrated in Fig. 7.
. Body-(2k) frame is now defined with respect to body-(2k-1) frame as: where and their component matrices defined as: In Eq. (15d), the terms: ÀDŝ

SJ-(k) Ball frame at T k on body-(2k): (e
The top end of body-(2k) is the spherical ball of SJ-(k), shown in Figs. 1 and 7. SJ-(k) ball frame is defined at the center T k of the spherical ball. The axial distance of the center T k from C (2k) isl 2k ð Þ T k , as shown in Fig. 7. Therefore, SJ-(k) ball frame at T k on body-(2k) is obtained by parallel translating body-(2k) frame to T k by e 3l 2k ð Þ SJ without any rotation: 3.2.6 SJ-(k) Socket frame at T k on body-(13) along path (ii) To conclude path (ii) the spherical ball must be fit into SJ-(k) socket at T k on body- (13). This fitting is accomplished at T k by rotating SJ-(k) ball frame to SJ-(k) socket frame at T k on body- (13). The rotation is Combining Eqs. (6a) and (6b), SJ-(k) socket frame at T k on body-(13) is expressed relatively with respect to body-(2k) frame as: where the frame connection matrix E ðSJ13=2kÞ T k t ð Þ is computed as: Finally, SJ-(k) socket frame is expressed with respect to body-(0) frame using the frame connection where the components of the frame connection matrix are defined as Eq. (7b) for path (i): and the components are obtained from Eqs. (14a), (15a) and (18a) as: The above multiplications with Eqs. (14c) and (14d) yield: where l k ð Þ t ð Þ denotes the total length of leg-(k): This completes the definition of frame connections along path (ii).

Loop closure constraints
The loop closure constraints are now expressed with respect to body-(0) frame by equating Eqs. (8a) and (8b) to Eqs. (9a) and (9b): in components Their components with respect to e 0 ð Þ t ð Þ are expressed using Eqs. (7d), (7e), (19d) and (19e) as: The above constraints, expressed in configuration space, are classified as holonomic constraints [23]. As a result, the configuration is updated at each time by integrating the constraints on velocities starting from an initial configuration. The corresponding constraints on velocities will be computed in the next section.
In Appendix A, to facilitate design tools for determining dimensions of the platform both inverse and forward kinematics problems are solved analytically utilizing the loop closure equations. In the inverse kinematics problem, for a specified top-plate configuration: R 13=0 ð Þ and s . The analytical equations for the inverse kinematics problem are utilized to find: (i) necessary stroke of the actuated translational joints (ATJs) and (ii) workspace, which shows the accessible top-plate configuration relative to the base plate.

Velocities of the moving frames
In this section velocities of the moving coordinate frames are computed. The input velocities of the base plate of the platform are measured at each time. Therefore, it is useful to express the loop closure constraints in velocities. In addition, for the computation of kinetic energy in the part II-paper, translational and angular velocities will be computed at each center of mass of constituent bodies. The kinematically admissible velocities are used to update the configuration at each time by integration since the loop closure constrains are holonomic as shown in Eqs. (20b) and (20c).

Velocities of the moving frames along path (i)
The velocity of the origin of body-(0) frame, r 0 ð Þ C t ð Þ, is obtained by taking the time derivative of Eq. (1a) expressing time differentiation with superposed dots: in which e I is independent of time.
The attitude of body-(0) frame changes with time. Its velocity is obtained by taking the time derivative of Eq. (2a) and expressing the result by its own basis, e 0 ð Þ t ð Þ, using Eq. (2d): where x 0 ð Þ t ð Þ ! is referred to as the skew symmetric angular velocity matrix [7b, 7c]: which is a member the Lie algebra so(3) of SO(3).
The skew-symmetry of x 0 ð Þ t ð Þ ! is easily proven by Eq. (22a), expressing _ e 0 ð Þ t ð Þ with respect to its own basis, e 0 ð Þ t ð Þ, is consistent with the definition of Lie algebra so (3): where the Lie algebra is defined, see for example [23].
From the elements of x 0 ð Þ t ð Þ ! the angular velocity vector x 0 ð Þ t ð Þ is defined as: For the computation of kinetic energy in the part IIpaper, it is convenient to express the velocity of body-(0) frame as: The time derivative of Eq. (4a) expanded using Eq. (4b) yields the skew-symmetric angular-velocity matrix and the translational velocity at the center of mass of body- (13): To familiarize readers with the computations, the steps for taking time derivative of the first column of Eq. (7a): In the last right-hand side of Eq. (26a) in a pair of braces, the following formula is used to obtain the first term: for R t ð Þ ¼ R ð13=0Þ t ð Þ and x t ð Þ ¼ x 0 ð Þ t ð Þ, whose proof, presented in [20], is reproduced in Appendix B.
In the pair of braces the second term defines the relative skew-symmetric angular-velocity matrix: In vector form the first column of Eqs. (25) and (26a) are written as: The time derivative of the second column of where on the right-hand side in a pair of braces, the first term is obtained by using the formula: which corresponds to the vector cross product: ð Þ t ð Þ (observing that both vectors are defined with respect to the body-(0) vector basis, e 0 ð Þ t ð Þ). Equation (28a) yields the translational velocity of C (13) with respect to e I : In Eqs. (27) and (29) Next frame is the terminal frame of path (i).

SJ-(k) Socket frame velocities at T k on body-
To compute the velocity of SJ-(k) socket frame at T k on body- (13): using the formula in Eq. (69). In vector form, the first column of Eqs. (75) and (76) gives Substituting Eq. (27) into Eq. (31b), one obtains The time derivative of the second column of Eq. (6a) is computed as: The substitution of Eqs. (27) and (29) into Eq. (33b) gives the velocity at T k of SJ-(k) along path (i) The velocity of SJ-(k) socket frame at T k on body-(13) is now expressed by Eqs. (30), (33b) and (34).

Body-(14) frame velocity: (
The velocities of body- (14) frame is computed by taking the time derivative of Eq. (8a): The angular velocities and the translational velocities are easily obtained as: Equations (35b) and (35c) are typical recursive equations along the graph tree and further expressed using Eqs. (27) and (29) as:

Velocities of the moving frames along path (ii)
Along path (ii) shown in Fig. 2b the velocities of body-(2k-1) frame of the lower leg and body-(2k) frame of the upper leg at their origins as well as those of SJ-(k) socket frame at T k on body-(13) are computed.

Body-(2k) frame velocity: (
The velocities of body-(2k) frame at C (2k) are computed from Eq. (15a) as: The time derivative of the first column of Eq. (15a) yields in vector form: while that of the second column yields, observing that in Eq. (15d) only d k ð Þ t ð Þ is time dependent:

SJ-(k) Socket frame velocities at T k on body-
To compute the velocity of SJ-(k) socket frame at T k on body- (13): the time derivatives of the columns of Eq. (18a) are computed.
The time derivative of the first column gives in vector form: The time derivative of the second column gives Similarly, Eq. (45b) is written explicitly using Eqs. (34) and (43d). After a slight simplification, it becomes where To simplify the subsequent presentation, the approximation / In the part II-paper, it will be shown that / ð2k=2kÀ1Þ 3 t ð Þ remains zero since its axial moment of inertia is negligible and there is no external torque but some viscous damping. (For an example of the modeling of rotation of a rigid body subjected to perturbation and restoring torques, see [29].) With this hindsight _ / ð2k=2kÀ1Þ 3 t ð Þ is neglected in Eq. (46a). The resulting equation gives the angular velocity at the spherical joint, SJ-(k), as:  [24], Eq. (46b) is solved analytically for those velocities, stored in a 3 9 1 column matrix, _ q k ð Þ L t ð Þ: where the left-hand side of Eq. (46b) is expressed by w vel t ð Þ as: and In Eq. (38a), one notes that l k ð Þ t ð Þ 6 ¼ 0 and / k ð Þ 2 t ð Þ 6 ¼ AEp=2 due to the leg constraints, discussed in Appendix A.

Experimental results
Experiments were performed on a scale model Stewart platform mounted on a motion generator to assess an inverse kinematics controller (IKC). The details of the apparatus are explained in Fig. 4 of the part II-paper, in which the performance of IKC is compared with that of an inverse-dynamics controller (IDC). Figure 8 illustrates a flowchart of IKC utilizing the inverse kinematics to feedforward the desired actuator displacements and proportional-integral-derivative (PID) for feedback control.
In Fig. 8  ð Þ is obtained from the errors, defined as the difference between the measured and the desired linear actuator velocities and extensions as: As a test case, a motion generator was used to move the bottom plate at a relatively low frequency to simulate the movement of a ship due to sea waves. Since the peak of the sea wave spectrum is around 0.1 Hz [30], three linear actuators changed their lengths at 0.02sin(2pf 1 t) m, 0.02sin(2pf 2 t) m, and 0.02sin(2pf 3 t) m, respectively. These frequencies were f 1 = 0.15 Hz, f 2 = 0.1 Hz, and f 3 = 0.05 Hz.
The control objective is to keep the top plate horizontal and stationary, against the motion of the base plate. The desired top-plate states are therefore set as: For the PID controller, the gains are chosen by trial-and-error method. A time step of 0.01 s was selected as the minimum time-increment for the experimental system. The sequence of computations and signal transmission/reception was coded using MATLAB with Arduino microcontrollers.
The measured top-plate translational displacements x 13 ð Þ C t ð Þ and its rotation matrix are shown in Fig. 9a-f, where the rotation matrix is expressed by using Tait-Bryan angles w TB i t ð Þ; i ¼ 1; 2; 3 as: The desired top-plate attitude: R 13 ð Þ ÃdÃ ¼ I 3 is expressed by zero Tait-Bryan angles: This angular representation of a rotation matrix was explained in Appendix A to plot admissible workspace. For R 13 ð Þ t ð Þ the corresponding Tait-Bryan angles w TB i t ð Þ; i ¼ 1; 2; 3 are computed by using Eq. (A14) applied to R 13 ð Þ t ð Þ instead of R 13=0 ð Þ (t). (These angles are not used in the inverse kinematics computations for control but merely adopted to show R 13 ð Þ t ð Þ using three angular coordinates.) To quantitatively assess the controller performance, in Table 1, root mean square error (RMSE) and mean absolute error (MAE) of the translational displacements and Tait-Bryan angles of the top plate are shown as well as the rates of compensation against the motion of the base plate. It is observed from Figs. 9 and Table 1 that the base plate motion is successfully compensated in each component. In the part II-paper the results of IKC is compared with those of inverse dynamics control (IDC).

Concluding remarks
In this paper for a base-moving Stewart platform, utilizing body-and joint-attached, orthonormal coordinate frames, the configuration space is mathematically defined employing 4 9 4 frame connection matrices of the special Euclidian group, SE(3), which combines both SO(3) and R 3 . Configurational loop closure constraints are presented for a representative closed loop and solved analytically for both inverse and forward kinematics (see Appendix A). Next, velocities of each moving coordinate frames are computed. In the computations, to be consistent with the Lie algebra so(3) of SO(3), skew-symmetric angular velocity matrices are defined first from the flow of rotation matrices with time, from which angular velocity vectors in R 3 are defined. Using body-attached moving frames whose connections are rigorously expressed by frame connection matrices, readers can systematically and unambiguously compute frame velocities (since vector bases of moving frames are explicitly shown).
Finally, to evaluate the performance of an inverse kinematic controller, experimental tests are presented on a scale model of the system. Further, in Appendix A, workspace analysis is presented for preliminary design of a Stewart platform. In the part II-paper, utilizing the velocities of body-attached coordinate frames, analytical equations of motion are derived, and their control applications are presented.
Funding Not applicable.

Declarations
Conflict of interest The authors declare that they have no conflict of interest.
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Appendix A: Kinematics for design and workspace analyses
A base-moving Stewart platform installed on a floor in a moving ship or vehicle is designed to maintain a set of desired position and attitude even if the base plate translates and rotates due to the motion of a moving vehicle. Therefore, the workspace of the platform is described by its reachable ranges of the relative position, s ð13=0Þ C t ð Þ 2 R 3 (= three-dimensional vector space), and the relative rotation, R ð13=0Þ t ð Þ 2 SO 3 ð Þ, with respect to the base plate. They are components of the relative frame connection matrix E 13=0 ð Þ t ð Þ in Eqs. (4a) and (4b). For the Stewart platform to function properly, it is necessary to maintain enough clearance between the top plate and the base plate during their relative motion to prevent the top plate from touching the base plate. Next design step is, for a specified service environment, to select a set of essential positions and attitudes of the top plate relative to the base plate under service environments, which are crucial for the top plate to maintain the desired configuration to mitigate the motion of the base plate. Each of the essential relative frame-connection matrices between body-(13) frame and body-(0) frame are identified by ''*'' as: For a specified E Ãð13=0Þ , finding the corresponding leg length, l k ð Þ , and the UJ rotation angles, / which was defined in Eq. (10a). The resulting equation has unknowns on the left-hand side and the known matrices on the right as: After expanding the left-hand side using Eqs. (10d), (11b), (A2a) and (A2b) for leg-(k) becomes e 0 ð Þ B k t ð Þ : where the 3 9 1 column matrix w Ã k ð Þ represents the known right-hand side of Eqs. (A2a) and (A2b): Using Eq. (40a), the first term on the right-hand side of Eq. (A3b) is written in vector form as: For each essential relative frame-connection matrix, E Ãð13=0Þ , of the top plate, for leg-(k), k ¼ 1; 2; Á Á Á ; 6, one finds the maximum leg length l max , the minimum length l min and maximum absolute values of / k ð Þ 1 and / k ð Þ 2 , written as / 1 j j max and / 2 j j max , respectively. From those values computed for selected, essential frame connection-matrices, one finds the design values: l Ã max , l Ã min , / Ã 1 max and / Ã 2 max . The necessary stroke of the actuated translational joint (ATJ) is defined as l Ã max À l Ã min : Second, the relative rotation at each spherical joint is computed from Eq. (20c) incorporating ð Þ m 1 0 ð Þ, are alternating. These initial values are consistent with the reference configuration, shown in Fig. 1.
The initial relative rotation at each spherical joint is obtained from Eq. (A5) as: Next, the equations for forward kinematics are presented.

Forward kinematics
In the forward kinematics, for a given ''compatible set'' of six leg configurations one finds a top-plate configuration relative to a base-plate configuration, i.e., R 13=0 ð Þ and s The remaining task is to determine the compatible configurations for leg-(2), Á Á Á, leg- (6). Equation (20e) with Eq. (A9b) gives

Workspace of the Stewart platform
The workspace of the platform in Fig. 3 is a set of accessible configurations of the top plate relative to that of the base plate, which are expressed by the accessible frame-connection matrices, E ð13=0Þ 2 SE 3 ð Þ in Eqs. (4a), (4b). E ð13=0Þ may be interpreted as follows: R ð13=0Þ 2 SO 3 ð Þ is attached to each accessible s ð13=0Þ C 2 R 3 to show its accessible rotation. Therefore, the workspace W Ã is expressed by the frame connection matrix E ð13=0Þ whose components satisfy Eq. (20e) as well as the leg constraints: Although R ð13=0Þ has nine components, the columns express the components of three orthonormal coordinate vectors, as Eq. (4a) shows. This orthonormality of the columns yields six constraints. As a result, R ð13=0Þ is expressed ''locally'' by three angular  coordinates, such as Euler angles and Tait-Bryan angles, explained in [22], as well as recently proposed wisdom angles [31]. Euler angles represent the rotation as a sequence of elementary rotations with the body-attached s 3 -axis by h E , the s 1 -axis by / E , and the s 3 -axis by w E as: Euler angles fail to represent the rotation matrix at its critical point: sin / E ¼ 0, i.e.,/ E ¼ 0, where the inverse of Eq. (A12) does not exist, i.e., homeomorphism is lost. Since the critical point of Euler angles corresponds to the reference configuration where the top plate and the base plate are parallel to each other, Euler angels are not qualified to express R ð13=0Þ . (It is noted here that the critical attitude is changed by adopting a difference cyclic order of the Euler angle representation, such as the rotations about the axes 2-3-2 and 1-2-1.)
The second equation is the definition of rotation matrices, RR T ¼ I 3 , written in indicial form as: where the Kronecker delta: The third equation is the definition of matrix determinant for a right-handed rotation matrix, whose determinant is one: det R ¼ 1: The i; j ð Þ -element of the left-hand side of Eq. (26b) becomes, using Eqs. (B1)-(B3) in this order: As a result, Eq. (26b) is proven for element i; j ð Þ: For the readers who are familiar with the Lie group theory, the left-hand side of Eq. (26b) define the adjoint representation of R T 2 SO 3 ð Þ, written as Ad R T ð Þ, which linearly transforms $ x 2 so 3 ð Þ into another skew symmetric matrix in so(3) [23]. Identifying the components of skew symmetric matrices as vector components in R 3 as shown in Eqs. (22b) and (23), Eq. (B5) states that for x 2 R 3 , Ad R T ð Þbecomes R T in R 3 :