Project 1

Kinematics of the Stewart Platform

Mae Markowski, Harnam Arneja, Sam Jugus


Introduction

This project explores a 2-dimensional version of the Stewart Platform, a problem that arises frequently in robotics, and in which the position of a platform is controlled by variable strut length. In this project, we were tasked with finding the position of a triangular platform (the variables x,y, and θ) given the lengths of the struts (\(p_1,p_2,p_3\)) and their fixed endpoints. Click the link for more of the project details.

Function 1 Plot


Parts 1, 2, & 3

Our code for f(\(\theta\)) can be viewed here. We graphed f(θ) for the known values L1=2, L2 = L3 = \(\sqrt{2}\), \(\gamma\)=\(\frac{\pi}{2}\), p1 = p2 = p3 = \(\sqrt{5}\) on the interval \([-\pi,\pi]\). The two roots at \(\frac{-\pi}{4}\) and \(\frac{\pi}{4}\) are visible on the graph below.

Function 1 Plot
The position of the platform at these two values of \(\theta\) are shown below.
Function 1 Plot Function 1 Plot

Part 4

In part 4, we were actually tasked with developing a root finding method to solve for \(f(\theta) = 0\) with the parameters \(x_1 = 5, (x_2, y_2) = (0,6), L_1 = L_3 = 3, L_2 = 3\sqrt{2}, \gamma = \frac{\pi}{4}, p_1 = p_2 = 5, p_3 = 3\). Our group chose the bisection method, as with sufficient initial guesses, convergence to the roots is always guaranteed. By generating the plot of \(f(\theta)\) below, we could easily see there were 4 roots and obtain valid initial guesses for each root.

Function 1 Plot

Our bisection method code, which contains the initial guesses used for each root, can be viewed here. The bisection code spit out the numerical values of the roots \(\theta\), which we then put into coordinates to obtain the vertices of our platform and plot the different poses. There were a total of 4 roots: -0.7208, -0.3310, 1.1437, and 2.1159, giving us the 4 poses shown below:

Function 1 Plot Function 1 Plot

Function 1 Plot Function 1 Plot

In order to check that each of these poses had the correct length, we simply checked the distance between the given strut endpoints and the calculated vertices for the 3 blue lines in each of the poses using the simple distance formula.


Part 5

The only difference between parts 5 and 4 was the \(p_2\) value, which we changed to 7.001 and re-solved for a total of 6 different roots and so 6 different poses. The graph of \(f\theta)\) for this new \(p_2\) value is shown below:

Function 1 Plot

The 6 roots were: -0.6704, -0.3600, 0.0399, 0.4592, 0.9776, and 2.5139. Their plots can be seen below

Function 1 Plot Function 1 Plot Function 1 Plot

Function 1 Plot Function 1 Plot Function 1 Plot

Part 6

Lastly, we were tasked with finding a \(p_2\) value that produced only 2 roots. After graphing a few different \(f(\theta)\), we found that \(p_2\) = 9 produced the following plot

Function 1 Plot

Plugging this new value in, we obtained the roots 1.5479 and 2.2989 with their associated poses

Function 1 Plot Function 1 Plot