grasp
All Data Structures Namespaces Functions Modules
moduleNew.m
1 
2 % Copyright: (C) 2010 RobotCub Consortium
3 % Authors: Vadim Tikhanoff
4 % CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT
5 
6 LoadYarp;
7 import yarp.Port
8 import yarp.BufferedPortBottle
9 import yarp.Bottle
10 
11 clear
12 done=0;
13 counter=1;
14 
15 port=BufferedPortBottle; %port for reading "quit" signal
16 port.close; %first close the port just in case
17 
18 disp('Opening port: /matlab/read');
19 port.open('/matlab/read');
20 disp('The program closes when ''quit'' is received');
21 
22 while(~done)
23  b=Bottle;
24  b = port.read( false );%use false to have a non blocking port
25  if (sum(size(b)) ~= 0) %check size of bottle
26  disp('received command: ');
27  disp(b.toString_c());
28  if (strcmp(b.toString_c(), 'quit'))
29  disp('Closing matlab ports...');
30  done=1;
31  elseif (strcmp(b.get(0).asString(), 'best'))
32  main=Bottle;
33  main=b.get(1).asList();
34 
35  best_joints=zeros(1,size(main.find('joints').asList()));
36  for j=0:size(main.find('joints').asList())-1
37  best_joints(j+1)=main.find('joints').asList().get(j).asDouble();
38  end
39 
40  best_ee=zeros(1,size(main.find('ee').asList()));
41  for j=0:size(main.find('ee').asList())-1
42  best_ee(j+1)=main.find('ee').asList().get(j).asDouble();
43  end
44 
45  best_xdhat=zeros(1,size(main.find('xdhat').asList()));
46  for j=0:size(main.find('xdhat').asList())-1
47  best_xdhat(j+1)=main.find('xdhat').asList().get(j).asDouble();
48  end
49 
50  best_axisangle=zeros(1,size(main.find('axisangle').asList()));
51  for j=0:size(main.find('axisangle').asList())-1
52  best_axisangle(j+1)=main.find('axisangle').asList().get(j).asDouble();
53  end
54 
55  best_odhat=zeros(1,size(main.find('odhat').asList()));
56  for j=0:size(main.find('odhat').asList())-1
57  best_odhat(j+1)=main.find('odhat').asList().get(j).asDouble();
58  end
59 
60  best_c1=zeros(1,size(main.find('c1').asList()));
61  for j=0:size(main.find('c1').asList())-1
62  best_c1(j+1)=main.find('c1').asList().get(j).asDouble();
63  end
64 
65  best_c2=zeros(1,size(main.find('c2').asList()));
66  for j=0:size(main.find('c2').asList())-1
67  best_c2(j+1)=main.find('c2').asList().get(j).asDouble();
68  end
69 
70  best_c3=zeros(1,size(main.find('c3').asList()));
71  for j=0:size(main.find('c3').asList())-1
72  best_c3(j+1)=main.find('c3').asList().get(j).asDouble();
73  end
74 
75  best_n1=zeros(1,size(main.find('n1').asList()));
76  for j=0:size(main.find('n1').asList())-1
77  best_n1(j+1)=main.find('n1').asList().get(j).asDouble();
78  end
79 
80  best_n2=zeros(1,size(main.find('n2').asList()));
81  for j=0:size(main.find('n2').asList())-1
82  best_n2(j+1)=main.find('n2').asList().get(j).asDouble();
83  end
84 
85  best_n3=zeros(1,size(main.find('n3').asList()));
86  for j=0:size(main.find('n3').asList())-1
87  best_n3(j+1)=main.find('n3').asList().get(j).asDouble();
88  end
89 
90  tmp=Bottle;
91  tmp=main.find('hand').asList().get(0).asString();
92  best_hand = tmp.toString;
93  disp(tmp.toString);
94  x3=size(main.find('center').asList());
95  center=zeros(1,x3);
96  for j=0:x3-1
97  center(j+1)=main.find('center').asList().get(j).asDouble();
98  end
99 
100  x4=size(main.find('dim').asList());
101  dim=zeros(1,x4);
102  for j=0:x4-1
103  dim(j+1)=main.find('dim').asList().get(j).asDouble();
104  end
105 
106  x11=size(main.find('rotmat').asList());
107  vec=zeros(1,x11);
108  for j=0:x11-1
109  vec(1,j+1)=main.find('rotmat').asList().get(j).asDouble();
110  end
111  rotmat = vec2mat(vec,3);
112 
113  x12 =size(main.find('cloud').asList());
114  index =size(main.find('cloud').asList().get(0).asList());
115  cloudVec=zeros(x12,index);
116  for j=0:x12-1
117  for i=0:index-1
118  cloudVec(j+1,i+1)=main.find('cloud').asList().get(j).asList().get(i).asDouble();
119  end
120  end
121  cloud = vec2mat(cloudVec,6);
122 
123  drawResults(best_joints, best_ee, best_axisangle, center, best_c1, best_c2, best_c3, best_n1, best_n2, best_n3, best_hand, best_xdhat, best_odhat, cloud);
124  disp(tmp.toString);
125  end
126  else
127  pause(0.001);
128  end
129 end
130 port.close;
131 disp('done...');