function [Dimensoes...
    Elasticos...
    Degrau...
    Juntas...
    Torques]=PC_Setup_Simulation(step_height,stop_time, number_of_points)
%% Esta função gera as características do humanoide e as trajectorias em funcao do degrau
% INPUT
% step_height - altura desejada para o degrau
% stop_time - tempo total da simulação
% number_of_points - numero de pontos para cada etapa cinemática
% OUTPUT
% Dimensoes - estrutura com os dados dimensionais do robot
% Elasticos - estrutura com os dados dos elasticos
% Degrau - estrutura com os dados dimensionais do degrau
% Juntas - estrutura com os vectores de posição das juntas e vectores de
%          entrada do modelo
% Torques - estrutura para os torques a calcular

% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ********** Dimensoes e Massas dos Segmentos do Humanoide **********
Dimensoes=PC_Build_Humanoid_Dimensions();
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ************ Elásticos ************
Elasticos=PC_Buid_Elastic_Properties();
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ************ Degrau ************
Degrau=PC_Build_Step_Dimensions(step_height);
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ************ Movimentacao (espaco das juntas) ************
Juntas=PC_Build_Humanoid_Complete_Inv_Kin(Degrau);
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ************ Tempo ************
% tJ=linspace(0,stop_time,size(Juntas.Perna_Apoio.ang_juntas,2)); % [seg] tempo
tJ=(ones(1,size(Juntas.Perna_Apoio.ang_juntas,2))*stop_time).*...
    [0 0.35 0.566667 0.783334 1];
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
% ************ Construção das curvas de 5 ordem para as juntas ************
[Juntas Torques]=PC_Generate_MultiPolyTrajectories(Juntas,tJ,number_of_points);
Juntas.Tempo_total=stop_time;
end