grasp
All Data Structures Namespaces Functions Modules
FKinStd.m
1 %%Standard forward kinematics
2 function RT=FKinStd(DH,q,link,varargin)
3 
4  if nargin>0
5  H0=varargin{1};
6  else
7  H0=eye(4,4);
8  end
9 
10  H=cell(link+1,1);
11  H{1}=H0;
12 
13  for i=2:link+1
14  H{i}=H{i-1}*T(i-1,q(i-1,1),DH);
15  end
16 
17  RT=H{size(H,1)};
18 end
19 
20 function H=T(n,theta,P)
21 
22  theta=theta+P{n}.offset;
23  c_theta=cos(theta);
24  s_theta=sin(theta);
25  c_alpha=cos(P{n}.alpha);
26  s_alpha=sin(P{n}.alpha);
27 
28  H=[[c_theta -s_theta*c_alpha s_theta*s_alpha P{n}.A*c_theta];...
29  [s_theta c_theta*c_alpha -c_theta*s_alpha P{n}.A*s_theta];...
30  [ 0 s_alpha c_alpha P{n}.D];...
31  [ 0 0 0 1]];
32 end
33