Stewart/Gough Platform

 

 

A Stewart/Gough Platform (AKA motion base) is an incredibly versatile parallel manipulator that parameterizes prismatic actuators (linear movement) to achieve a desired pose.  This kinematic structure uses linear algebra to efficiently perform inverse kinematics calculations that parameterize actuations and yields the desired platform position and orientation. 

The degrees of freedom (DOF) depend on how the system’s kinematics are mathematically modeled.  I will introduce the inverse kinematics calculations with a 3-DOF system (x, y, θ), then expand upon it with a 6-DOF system (x, y, z, α, β, γ).

6-DOF Systems

6-DOF systems with 3, 4, and 6 actuation links

 

The base frame is fixed to a ground surface and secures the actuators.  The actuators are oriented upwards and link to a platform frame that outputs the desired pose.  Objects can be mounted to the platform frame to harness its movement for various applications, including flight simulators, robotics, and entertainment (theme park attractions, movie/television production sets, videogaming, etc.).

 

3-DOF

A 3-DOF system allows the platform frame to translate along the X and Y axes, and rotate an angle, , on a 2D plane.  We will first focus on translating the platform frame along the X-axis without rotation, then introduce translating along the Y-axis and rotation.

 

3-DOF Stewart/Gough Platform expressed in the base frame

 

This example will follow the 2D diagram shown above. The purple line represents link 1 and the green line represents link 2.  The bottom dashed line represents the base frame and the top dashed line represents the platform frame.

 

We begin by defining the link joint coordinates in the joints’ respective frames:

System diagram indicating the base frame and platform frame

 

 

We need to express these joints in their respective frames to properly define the system kinematics.  The goal is to represent the joints so that their coordinates do not change within their frames.  To better illustrate this, I’ve represented each joint coordinate relative to its frame origin with the orange vectors and indicated their coordinates within their respective frames:

 

Base Frame

Platform Frame

 

 

Let’s Understand Reference Frames!

Imagine there’s an observer at the base frame origin observing the base frame joints, and there’s another observer at the platform frame origin observing the platform frame joints.  As the reference frames move through space (translation or rotation), the joints’ positions appear unchanged.  This is like observing the earth’s rotation from inside the earth – imperceptible!

Now let’s place an observer at the base frame origin observing the platform frame joints.  As the reference frames move, the observer will see the platform frame joints moving relative to the base frame.  This is like observing the earth’s rotation from the surface of the moon – perceptible!

 

The math that solves the inverse kinematics aims to observe the movement of the platform frame relative to the base frame origin.

 

The platform frame is arbitrarily placed relative to the base frame, but the frames are related by prismatic actuators.  As the links actuate in the base frame, the platform frame’s pose will change relative to the base frame.  Links in this system are prismatic joints that achieve linear movement with linear actuators, hydraulic actuators, or servos (among others). 

 

Base Frame Coordinates

First, we define the coordinates of the base of the prismatic joint,  in the base frame.  These joints don’t change the position of the base frame, so we can assume that they are permanently fixed in the base frame.  Frame joints are usually set on passive U-joints or ball joints that allow the link to hinge freely during actuation.

 

Platform Frame Coordinates

Next, we define the coordinates of the end of the prismatic joints, , in the platform frame.  These platform frame joints coordinates are not defined in the base frame, so we define their coordinates relative to the platform frame origin.  These are the points where the links are fastened to the platform frame, making the platform frame’s position in the base frame a function of the links’ actuation in the base frame. 

 

Focus Point

Next, we define a point on the platform that we are defining an end position for in the base frame, denoted by .  This end position achieves is the desired X, Y, and θ of the platform at the end of actuation, which are the algorithm inputs when calculating the inverse kinematics.

 

Link Joint Coordinates Expressed in their Corresponding Frames

Point Description

Reference Frame

Vector

Coordinate (x, y)

Link 1 Base Joint

Base

Link 2 Base Joint

Base

Focus Point, Desired Pose

Base

Link 1 Platform Joint

Platform

Link 2 Platform Joint

Platform

* The subscript labels correspond to the link number in the system

 

The variable that this algorithm calculates is vector , which represents the distance that a prismatic joint on link  must actuate from its starting position at  so that the focus point in the platform frame can achieve the desired pose in the base frame.  Remember – the platform joint coordinates in the are not known in the base frame until the inverse kinematics calculate the actuation length vector, .

 

We want to represent the platform frame in the base frame as a result of prismatic joint actuations such that the focus point arrives at its desired pose.

 

 

Let’s do some math!

We start by defining our system kinematics relative to the reference frames’ origins.  Let’s reference the labeled system below with the understanding that the lengths of link 1 and link 2 from the base frame to the platform frame are defined by vector .

Base Frame

Platform Frame

 

Now that the system coordinates are defined, we can set up an equation that sums vectors that define the coordinates of the link joints in the platform frame.  This allows us to relate the link vectors to the focus point vector, .

 

Vector Sum Defining Link Joints in the Platform Frame

 

Recall that the vector we are solving for is the prismatic joints’ actuation distance, .  Let’s rearrange the equation we derived from the system kinematics to isolate :

 

 

 

We now define the known vector values based on the system kinematics:  and .  These vectors are the joint coordinates we defined in the base frame and platform frame.  We continue to maintain each coordinate in its corresponding reference frame.

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Link 1 Base Joint

Base

Link 2 Base Joint

Base

Link 1 Platform Joint

Platform

Link 2 Platform Joint

Platform

 

 

Next, we create a vector that defines the desired end position of the platform frame: .

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Focus Point, Desired Pose

Base

 

 

Notice that all the vectors in the kinematic model are represented in the base frame except for .  All vectors need to be represented in a common frame to ensure accurate calculations.  Let’s take  in the platform frame and represent it in the base frame by right multiplying  and a rotation matrix:

 

 

Right Multiplication of  and

 

Right multiplying with a rotation matrix now accounts for rotations in the platform frame that may influence the pose calculations.  Since this transformation does not have any rotational inputs, we set  to 0, which yields an identity matrix:

 

 

 

Now that we have our system defined, we can calculate the distance that each prismatic joint must actuate the base frame so that the focus point in the platform frame achieves the desired focus point pose, represented in the base frame:

Link 1

Link 2

 

 

We notice that  is comprised of the ‘x’ and ‘y’ displacement component vectors.  Prismatic joints typically require a single displacement vector input, so we use the distance formula to calculate the resultant vector of :

Link 1

Link 2

 

 

Now we know that prismatic joint 1 will need to actuate 3.04 units, and prismatic joint 2 will need to actuate 3.04 units.  Let’s confirm that the actuations we calculated for each joint yields the desired pose:

Link 1

Link 2

 

These calculations confirm that the actuation on each prismatic joint yields the same pose at the focus point!

 

 

Horizontal Translation Example

 

Let’s perform the same calculations to horizontally translate the platform frame to  with  rotation:

 

 

Define the joint coordinates in the system:

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Link 1 Base Joint

Base

Link 2 Base Joint

Base

Link 1 Platform Joint

Platform

Link 2 Platform Joint

Platform

 

 

Define the desired final pose:

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Focus Point, Desired Pose

Base

 

 

Perform the inverse kinematics calculations using the kinematic model that we derived to solve for :

 

·       There’s no rotation performed in this transformation, so we can use the identity rotation matrix

 

Link 1

Link 2

 

Let’s confirm our calculations:

Link 1

Link 2

 

These calculations confirm that the actuation on each prismatic joint yields the same pose at the focus point!

 

 

Horizontal Translation and Rotation Example

 

Now let’s perform the same platform frame horizontal translation to  with 45 rotation:

 

Define the joint coordinates in the system:

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Link 1 Base Joint

Base

Link 2 Base Joint

Base

Link 1 Platform Joint

Platform

Link 2 Platform Joint

Platform

 

 

Define the desired final pose:

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Focus Point, Desired Pose

Base

 

 

Perform the inverse kinematics calculations using the kinematic model that we derived to solve for :

·       There is a rotation performed in this transformation, so we calculate the rotation matrix:

 

 

·       Now we substitute this rotation matrix in for  to express  in the base frame:

 

Link 1

Link 2

 

Let’s confirm our calculations:

Link 1

Link 2

 

These calculations confirm that the actuation on each prismatic joint yields the same pose at the focus point!

 

 

6-DOF

Now that we understand how to calculate the inverse kinematics for a 3-DOF system, we can expand the calculation to a 6-DOF system!  A 3-DOF system allows the platform frame to translate along the X, Y, and Z axes, and rotate angles  on a 3D plane.

The 6-DOF system that we are going to solve will have 6 links, making it a hexapod.

 

 

Multi-Axis Translation and Rotation Example

 

Let’s translate the platform along the y-axis and the z-axis to (0.00, -2.00, 3.00), and rotate about the x-axis to (, , ):

6-DOF Stewart/Gough Platform expressed in the base frame

 

Let’s define the joint coordinates in the system:

Point Description

Reference Frame

Vector

Coordinate (x, y, z)

Vector

Link 1 Base Joint

Base

Link 2 Base Joint

Base

Link 3 Base Joint

Base

Link 4 Base Joint

Base

Link 5 Base Joint

Base

Link 6 Base Joint

Base

Link 1 Platform Joint

Platform

Link 2 Platform Joint

Platform

Link 3 Platform Joint

Platform

Link 4 Platform Joint

Platform

Link 5 Platform Joint

Platform

Link 6 Platform Joint

Platform

 

Recall:

·        is a vector that represents a joint’s position in the base frame relative to the base frame origin.

·        is a vector that represents a joint’s position in the platform frame relative to the platform frame origin.

 

 

Define the desired final pose:

Point Description

Reference Frame

Vector

Coordinate (x, y)

Vector

Focus Point, Desired Pose

Base

 

Recall:

·       is a vector that represents the desired point’s position in the base frame relative to the base frame origin.

 

 

Perform the inverse kinematics calculations using the kinematic model that we derived to solve for :

·       There is a rotation performed in this transformation, so we calculate rotation matrix:

 

 

·       Now we substitute this rotation matrix in for  to express  in the base frame:

 

Movement Along x-Axis

Movement Along y-Axis

Movement Along z-Axis

 

 

Calculating the inverse kinematics for each link in this hexapod would be redundant, so I’m only calculating link 1.

These same calculations can be performed for all links using the joint coordinates defined above.

 

·       Now we perform the inverse kinematics calculations

o   Recall that we substitute this rotation matrix in for  to express  in the base frame:

 

Link 1

 

Let’s confirm our calculations:

Link 1

 

These calculations confirm that the actuation on each prismatic joint yields the same pose at the focus point!

 

 

Rotary Actuation to Linear Actuation with Servo Motors

 

Stewart/Gough platforms can use rotary actuators to linearly actuate the platform reference frame.  We will derive the calculation for calculating the required servo horn angle to achieve a linear actuation.

We start with the system below, which uses a crank (the servo horn) to linearly acuate the end of a rod (steward platform link).

 

Motor rotation converted to linear movement

 

 

We want to represent the linear actuation as a function of the rotary actuator’s horn position, .  Let’s label the diagram with knowns:

𝐴

Platform Frame Joint

𝐵

Servo Horn End

𝐶

Rotary Actuator Axis of Rotation

 

Servo Horn Length

Link Length

Resultant Linear Actuation Vector

 

 

We start by decomposing the rotary actuator’s motion into its ‘x’ and ‘y’ components:

The diagram depicts a geometric figure, likely a circle or ellipse, with a tangent line and a line segment P, suggesting a mathematical or geometric relationship involving angle P and the line segment.

AI-generated content may be incorrect.

 

 

Let’s isolate the labels so we can look at the diagram as two triangles, then converge them into one triangle:

 

Since we want to represent the linear actuation vector, , as a function of the rotary actuator’s horn position, we can use the known link lengths and  to solve for .  We know that  is fixed in the base frame and  is fixed in the platform frame.

Let’s solve for the system as a function of :

 

Solve for

 

Solve for

 

 as a function of

 

We must define the actuation limits of the system.  The minimum and maximum actuation that can be achieved with a rotary actuator is constrained by the link length and the servo horn length:

 

This equation works for systems where the end of the link (end-effector) is in line with the rotary actuator’s axis of rotation.  However, that isn’t realistic for a Stewart/Gough platform since the links actuate the platform across multiple degrees of freedom.

 

Like the in-line derivation, the goal is to represent the linear actuation vector, , as a function of the rotary actuator’s horn position, .  Let’s use a diagram that shows the end-effector out of alignment with the rotary actuator’s axis of rotation:

𝐴

Platform Frame Joint

𝐵

Servo Horn End

𝐶

Rotary Actuator Axis of Rotation

 

Servo Horn Length

Link Length

Resultant Linear Actuation Vector

 

We can drop a vertical from A to create a right triangle, which simplifies the derivation.

 

Since we have all 3 sides of the main triangle defined, we can calculate its internal angles with the law of cosines:

 

Define the unknown side lengths of the right triangle created by the dropped using the coordinates joint coordinates of A and C in the base frame.  Now we can calculate :

 

Knowing that , , and  sum to , we can solve for :

 

 

Stewart/Gough Platform with linear actuator (left) and rotary actuator (right)

 

You’ll notice that these calculations are performed with all coordinates in the base frame.  The servo calculations are implemented after performing the inverse kinematics calculations to determine the linear actuation necessary from each actuator to achieve a desired platform pose.  Once the Stewart/Gough platform has been fully parameterized, we can calculate the servo horn angle that’s needed to achieve the equivalent linear actuation distance.

 

Check it out!

·       Star Tours

·       Millennium Falcon: Smuggler’s Run

·       Transformers: The Ride

·       The Amazing Adventures of Spiderman

·       Robotic Neck Mechanism

·       Vehicle Simulations

 

This simulation orients the link joints in the same configuration as the platform that a ride vehicle may sit on.  Developers can write an algorithm that defines the platform’s desired poses in a sequence that immerses audiences in exciting storylines!

Motion base simulating a spaceship taking off! 

 

 

Helpful Links

·       Stewart/Gough Platform – Wikipedia

·       Angela Sodemann: Parallel Manipulators Inverse Kinematics

·       Rotation Matrix Derivation