1 function drawHandiCubCAD(x,hand)
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);
7 %load pieces and make a base rototranslation between
8 %CAD reference frame and root reference frame
15 rot=axis2dcm(rotz90)*rot;
23 rot=axis2dcm(rotz90)*rot;
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]);
44 %rototranslation matrix
for end effector
45 rot_ee=axis2dcm(x(12:15));
46 rot_ee(1:3,4)=x(9:11);
50 rototranslation(Vpalm,rot,ppalm);
52 Vt{i}=rototranslation(Vt{i},rot,pt{i});
55 Vind{i}=rototranslation(Vind{i},rot,pind{i});
58 Vm{i}=rototranslation(Vm{i},rot,pm{i});
60 rototranslation(Vl,rot,pl);
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);
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);
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);
80 xlabel('X'),ylabel('Y'),zlabel('Z')