function [nano_hexapod] = initializeSimplifiedNanoHexapod(args)

    arguments
        args.type char {mustBeMember(args.type,{'none', 'stewart'})} = 'stewart'
    end

    stewart = initializeStewartPlatform();

    switch args.type
      case 'none'
        stewart.type = 0;
      case 'stewart'
        stewart.type = 1;
    end

    stewart = initializeFramesPositions(stewart, ...
                                        'H', 95e-3, ...
                                        'MO_B', 150e-3);

    stewart = generateGeneralConfiguration(stewart, ...
                                           'FH', 15e-3, ...
                                           'FR', 120e-3, ...
                                           'FTh', [220, 320, 340, 80, 100, 200]*(pi/180), ...
                                           'MH', 15e-3, ...
                                           'MR', 110e-3, ...
                                           'MTh', [255, 285, 15, 45, 135, 165]*(pi/180));

    stewart = computeJointsPose(stewart);

    stewart = initializeStrutDynamics(stewart, ...
                                      'type', 'apa300ml', ...
                                      'k',  0.3e6, ...
                                      'ke', 4.3e6, ...
                                      'ka', 2.15e6, ...
                                      'c',  18, ...
                                      'ce', 0.7, ...
                                      'ca', 0.35, ...
                                      'ga', -2.7, ...
                                      'gs', 0.53e6);

    stewart = initializeJointDynamics(stewart, ...
                                      'type_M', '4dof', ...
                                      'type_F', '2dof_axial', ...
                                      'Kf_M', 4.83, ...
                                      'Cf_M', 1e-2, ...
                                      'Kt_M', 260, ...
                                      'Ct_M', 1e-2, ...
                                      'Ka_M', 94e6, ...
                                      'Ca_M', 1e-2, ...
                                      'Kf_F', 4.83, ...
                                      'Cf_F', 1e-2, ...
                                      'Ka_F', 94e6, ...
                                      'Ca_F', 1e-2);

    stewart = initializeCylindricalPlatforms(stewart, ...
                                             'Fpm', 5, ...
                                             'Fph', 10e-3, ...
                                             'Fpr', 150e-3, ...
                                             'Mpm', 5, ...
                                             'Mph', 10e-3, ...
                                             'Mpr', 150e-3);

    stewart = initializeCylindricalStruts(stewart, ...
                                          'Fsm', 1e-3, ...
                                          'Fsh', 60e-3, ...
                                          'Fsr', 5e-3, ...
                                          'Msm', 1e-3, ...
                                          'Msh', 60e-3, ...
                                          'Msr', 5e-3);

    stewart = computeJacobian(stewart);

    stewart = initializeStewartPose(stewart, ...
                                    'AP', zeros(3,1), ...
                                    'ARB', eye(3));

    nano_hexapod = stewart;
    if exist('./mat', 'dir')
        if exist('./mat/nass_model_stages.mat', 'file')
            save('mat/nass_model_stages.mat', 'nano_hexapod', '-append');
        else
            save('mat/nass_model_stages.mat', 'nano_hexapod');
        end
    elseif exist('./matlab', 'dir')
        if exist('./matlab/mat/nass_model_stages.mat', 'file')
            save('matlab/mat/nass_model_stages.mat', 'nano_hexapod', '-append');
        else
            save('matlab/mat/nass_model_stages.mat', 'nano_hexapod');
        end
    end
end
