grasp
All Data Structures Namespaces Functions Modules
drawHandiCubCAD.m
1 function drawHandiCubCAD(x,hand)
2 
3  Vt=cell(4,1); pt=cell(4,1);
4  Vind=cell(4,1); pind=cell(4,1);
5  Vm=cell(3,1); pm=cell(3,1);
6 
7  %load pieces and make a base rototranslation between
8  %CAD reference frame and root reference frame
9  if (hand=='r')
10  load right_hand;
11 
12  rotx90=[1 0 0 -pi/2];
13  rot=axis2dcm(rotx90);
14  rotz90=[0 0 1 pi/2];
15  rot=axis2dcm(rotz90)*rot;
16  rot(2,4)=-0.01;
17  else
18  load left_hand;
19 
20  rotx90=[1 0 0 pi/2];
21  rot=axis2dcm(rotx90);
22  rotz90=[0 0 1 pi/2];
23  rot=axis2dcm(rotz90)*rot;
24  rot(2,4)=-0.01;
25  end
26 
27  ppalm=save_CAD(Fpalm,Vpalm,'g');
28  Vt{1}=Vt1; Vt{2}=Vt2; Vt{3}=Vt3; Vt{4}=Vt4;
29  pt{1}=save_CAD(Ft1,Vt{1},'b');
30  pt{2}=save_CAD(Ft2,Vt{2},[0.4,0.4,0.4]);
31  pt{3}=save_CAD(Ft3,Vt{3},[0.4,0.4,0.4]);
32  pt{4}=save_CAD(Ft4,Vt{4},'k');
33  Vind{1}=Vi1; Vind{2}=Vi2; Vind{3}=Vi3; Vind{4}=Vi4;
34  pind{1}=save_CAD(Fi1,Vind{1},'b');
35  pind{2}=save_CAD(Fi2,Vind{2},[0.4,0.4,0.4]);
36  pind{3}=save_CAD(Fi3,Vind{3},[0.4,0.4,0.4]);
37  pind{4}=save_CAD(Fi4,Vind{4},'k');
38  Vm{1}=Vm1; Vm{2}=Vm2; Vm{3}=Vm3;
39  pm{1}=save_CAD(Fm1,Vm{1},'b');
40  pm{2}=save_CAD(Fm2,Vm{2},[0.4,0.4,0.4]);
41  pm{3}=save_CAD(Fm3,Vm{3},'k');
42  pl=save_CAD(Fl,Vl,[0.4,0.4,0.4]);
43 
44  %rototranslation matrix for end effector
45  rot_ee=axis2dcm(x(12:15));
46  rot_ee(1:3,4)=x(9:11);
47 
48  rot=rot_ee*rot;
49 
50  rototranslation(Vpalm,rot,ppalm);
51  for i=1:size(Vt,1)
52  Vt{i}=rototranslation(Vt{i},rot,pt{i});
53  end
54  for i=1:size(Vind,1)
55  Vind{i}=rototranslation(Vind{i},rot,pind{i});
56  end
57  for i=1:size(Vm,1)
58  Vm{i}=rototranslation(Vm{i},rot,pm{i});
59  end
60  rototranslation(Vl,rot,pl);
61 
62  active_joints_thumb=[0 2 3 4];
63  for i=1:size(active_joints_thumb,2)
64  transformation(Vt{i},pt{i},x(1:3),active_joints_thumb(i),1,hand,rot_ee);
65  end
66 
67  active_joints_ind=[0 1 2 3];
68  for i=1:size(active_joints_ind,2)
69  transformation(Vind{i},pind{i},x(4:6),active_joints_ind(i),2,hand,rot_ee);
70  end
71 
72  active_joints_middle=[0 1 2];
73  for i=1:size(active_joints_middle,2)
74  transformation(Vm{i},pm{i},x(7:8),active_joints_middle(i),3,hand,rot_ee);
75  end
76 
77  light
78  daspect([1 1 1])
79  view(3)
80  xlabel('X'),ylabel('Y'),zlabel('Z')
81 
82 end
83