function robot = get_robot(file,opt) switch opt.robot_def case 'direct' ndof = 2; % Kinematics parameters switch opt.Isreal case switch opt.KM_method case 'SDH' case 'MDH' robot.theta = zeros([1,ndof+1]); robot.a = [0,1,1]; robot.d = [0,0,0]; robot.alpha = [0,0,0]; otherwise disp('Bad opt.KM_method!') return; end % Dynamics parameters link_mass = [1,1]; axis_of_rot(:,:,1) = [0;0;1]; axis_of_rot(:,:,2) = [0;0;1]; com_pos(:,:,1) = [1/2;0;0]; com_pos(:,:,2) = [1/2;0;0]; % the inertia tensor wrt the frame oriented as the body frame and with the % origin in the COM link_inertia(:,:,1) = diag([1,1,1]); link_inertia(:,:,2) = diag([1,1,1]); % manipulator regressor for i = 1:ndof robot.m(i) = link_mass(i); robot.axis(:,i) = axis_of_rot(i); robot.com(:,i) = com_pos(i); robot.I(:,:,i) = link_inertia(i); robot.mc(:,i) = link_mass*com_pos(i); % the inertia tensor wrt the frame oriented as the body frame and with the % origin in the Joint i com_vec2mat = vec2skewSymMat(com_pos); robot.I_vec(:,i) = inertiaMatrix2Vector(link_inertia-... link_mass(i)*com_vec2mat*com_vec2mat); robot.pi(:,i) = [robot.I_vec(:,i); robot.mc(:,i); robot.m(i)]; end case 'urdf' robot = parse_urdf(file); case 'mat' robot = []; disp('TODO mat robot define options!') otherwise robot = []; disp('Bad robot define options!') return end