% ------------------------------------------------------------------------ % Set limits on posistion and velocities % ------------------------------------------------------------------------ q_min = -pi*ones(ndof,1); q_max = pi*ones(ndof,1); qd_max = 3*pi*ones(ndof,1); q2d_max = 6*pi*ones(ndof,1); % ----------------------------------------------------------------------- % Find relation between independent columns and dependent columns % ----------------------------------------------------------------------- % Get observation matrix of identifiable paramters for j = 1:robot.ndof W = []; for i = 1:25 q_rnd = q_min + (q_max - q_min).*rand(ndof,1); qd_rnd = -qd_max + 2*qd_max.*rand(ndof,1); q2d_rnd = -q2d_max + 2*q2d_max.*rand(ndof,1); standard_regressor_func = sprintf('standard_regressor_%s',opt.robotName); Y = feval(standard_regressor_func, q_rnd,qd_rnd,q2d_rnd); W = vertcat(W,Y(j,:)); end % matrix W has rank qr_rank which is number number of base parameters robot.baseQR.rank(i) = rank(W); end