Home > arte3.2.0 > demos > more_demos > find_singular_points.m

find_singular_points

PURPOSE ^

LOOK FOR SINGULAR POINTS IN JOINT SPACE

SYNOPSIS ^

function singular_points = find_singular_points(param)

DESCRIPTION ^

 LOOK FOR SINGULAR POINTS IN JOINT SPACE

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 % LOOK FOR SINGULAR POINTS IN JOINT SPACE
0002 
0003 % Copyright (C) 2012, by Arturo Gil Aparicio
0004 %
0005 % This file is part of ARTE (A Robotics Toolbox for Education).
0006 %
0007 % ARTE is free software: you can redistribute it and/or modify
0008 % it under the terms of the GNU Lesser General Public License as published by
0009 % the Free Software Foundation, either version 3 of the License, or
0010 % (at your option) any later version.
0011 %
0012 % ARTE is distributed in the hope that it will be useful,
0013 % but WITHOUT ANY WARRANTY; without even the implied warranty of
0014 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015 % GNU Lesser General Public License for more details.
0016 %
0017 % You should have received a copy of the GNU Leser General Public License
0018 % along with ARTE.  If not, see <http://www.gnu.org/licenses/>.
0019 
0020 function singular_points = find_singular_points(param)
0021 
0022 singular_points=[];
0023 
0024 q=[0 0 0 0];
0025 
0026 teta = eval(param.DH.theta);
0027 d = eval(param.DH.d);
0028 a = eval(param.DH.a);
0029 alfa = eval(param.DH.alpha);
0030 
0031 %J = eval(param.J)
0032 
0033 
0034 q1=-pi:0.05:pi;
0035 q2=-pi:0.05:pi;
0036 
0037 for i=1:length(q1),
0038     fprintf('\nIteration %d of %d', i, length(q1))
0039    for j=1:length(q2),
0040         q=[q1(i) q2(j) 0];
0041         J = eval(param.J);
0042        
0043         val = det(J);
0044         if abs(val) < 0.0001
0045             singular_points = [singular_points q'];
0046         end
0047    end
0048 end

Generated on Fri 03-Jan-2014 12:20:01 by m2html © 2005