Kinematic Study of the Stewart Platform

Table of Contents

1 Functions

1.1 getMaxPositions

function [X, Y, Z] = getMaxPositions(stewart)
    Leg = stewart.Leg;
    J = stewart.J;
    theta = linspace(0, 2*pi, 100);
    phi = linspace(-pi/2 , pi/2, 100);
    dmax = zeros(length(theta), length(phi));

    for i = 1:length(theta)
        for j = 1:length(phi)
            L = J*[cos(phi(j))*cos(theta(i)) cos(phi(j))*sin(theta(i)) sin(phi(j)) 0 0 0]';
            dmax(i, j) = Leg.stroke/max(abs(L));
        end
    end

    X = dmax.*cos(repmat(phi,length(theta),1)).*cos(repmat(theta,length(phi),1))';
    Y = dmax.*cos(repmat(phi,length(theta),1)).*sin(repmat(theta,length(phi),1))';
    Z = dmax.*sin(repmat(phi,length(theta),1));
end

1.2 getMaxPureDisplacement

function [max_disp] = getMaxPureDisplacement(Leg, J)
    max_disp = zeros(6, 1);
    max_disp(1) = Leg.stroke/max(abs(J*[1 0 0 0 0 0]'));
    max_disp(2) = Leg.stroke/max(abs(J*[0 1 0 0 0 0]'));
    max_disp(3) = Leg.stroke/max(abs(J*[0 0 1 0 0 0]'));
    max_disp(4) = Leg.stroke/max(abs(J*[0 0 0 1 0 0]'));
    max_disp(5) = Leg.stroke/max(abs(J*[0 0 0 0 1 0]'));
    max_disp(6) = Leg.stroke/max(abs(J*[0 0 0 0 0 1]'));
end

Author: Thomas Dehaeze

Created: 2019-03-22 ven. 12:03

Validate