grasp
All Data Structures Namespaces Functions Modules
moduleOld.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.toString_c(), 'plot'))
32  disp ('should save:');
33  disp (counter-1);
34  disp ('sequences');
35  for j=1:counter-1
36  drawResults(joints(j,:), ee(j,:), axisangle(j,:), center, c1(j,:), c2(j,:), c3(j,:), n1(j,:), n2(j,:), n3(j,:), hand(j,:), cloud);
37  end
38 
39  drawResults(best_joints, best_ee, best_axisangle, center, best_c1, best_c2, best_c3, best_n1, best_n2, best_n3, best_hand, cloud);
40 
41  counter = 1;
42  clear joints ee axisangle center dim c1 c2 c3 n1 n2 n3 rotmat hand cloud;
43  elseif (strcmp(b.get(0).asString(), 'best'))
44  main=Bottle;
45  main=b.get(1).asList();
46 
47  best_joints=zeros(1,size(main.find('joints').asList()));
48  for j=0:size(main.find('joints').asList())-1
49  best_joints(j+1)=main.find('joints').asList().get(j).asDouble();
50  end
51 
52  best_ee=zeros(1,size(main.find('ee').asList()));
53  for j=0:size(main.find('ee').asList())-1
54  best_ee(j+1)=main.find('ee').asList().get(j).asDouble();
55  end
56 
57  best_axisangle=zeros(1,size(main.find('axisangle').asList()));
58  for j=0:size(main.find('axisangle').asList())-1
59  best_axisangle(j+1)=main.find('axisangle').asList().get(j).asDouble();
60  end
61 
62  best_c1=zeros(1,size(main.find('c1').asList()));
63  for j=0:size(main.find('c1').asList())-1
64  best_c1(j+1)=main.find('c1').asList().get(j).asDouble();
65  end
66 
67  best_c2=zeros(1,size(main.find('c2').asList()));
68  for j=0:size(main.find('c2').asList())-1
69  best_c2(j+1)=main.find('c2').asList().get(j).asDouble();
70  end
71 
72  best_c3=zeros(1,size(main.find('c3').asList()));
73  for j=0:size(main.find('c3').asList())-1
74  best_c3(j+1)=main.find('c3').asList().get(j).asDouble();
75  end
76 
77  best_n1=zeros(1,size(main.find('n1').asList()));
78  for j=0:size(main.find('n1').asList())-1
79  best_n1(j+1)=main.find('n1').asList().get(j).asDouble();
80  end
81 
82  best_n2=zeros(1,size(main.find('n2').asList()));
83  for j=0:size(main.find('n2').asList())-1
84  best_n2(j+1)=main.find('n2').asList().get(j).asDouble();
85  end
86 
87  best_n3=zeros(1,size(main.find('n3').asList()));
88  for j=0:size(main.find('n3').asList())-1
89  best_n3(j+1)=main.find('n3').asList().get(j).asDouble();
90  end
91 
92  tmp=Bottle;
93  tmp=main.find('hand').asList().get(0).asString();
94  best_hand = tmp.toString;
95  else
96  disp('now processing bottle:');
97  main=Bottle;
98  main=b.get(0).asList();
99  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
100  for j=0:size(main.find('joints').asList())-1
101  joints(counter,j+1)=main.find('joints').asList().get(j).asDouble();
102  end
103  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
104  for j=0:size(main.find('ee').asList())-1
105  ee(counter,j+1)=main.find('ee').asList().get(j).asDouble();
106  end
107  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
108  for j=0:size(main.find('axisangle').asList())-1
109  axisangle(counter,j+1)=main.find('axisangle').asList().get(j).asDouble();
110  end
111  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
112  for j=0:size(main.find('c1').asList())-1
113  c1(counter,j+1)=main.find('c1').asList().get(j).asDouble();
114  end
115  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
116  for j=0:size(main.find('c2').asList())-1
117  c2(counter,j+1)=main.find('c2').asList().get(j).asDouble();
118  end
119  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120  for j=0:size(main.find('c3').asList())-1
121  c3(counter,j+1)=main.find('c3').asList().get(j).asDouble();
122  end
123  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
124  for j=0:size(main.find('n1').asList())-1
125  n1(counter,j+1)=main.find('n1').asList().get(j).asDouble();
126  end
127  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
128  for j=0:size(main.find('n2').asList())-1
129  n2(counter,j+1)=main.find('n2').asList().get(j).asDouble();
130  end
131  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
132  for j=0:size(main.find('n3').asList())-1
133  n3(counter,j+1)=main.find('n3').asList().get(j).asDouble();
134  end
135 
136  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
137  tmp=Bottle;
138  tmp=main.find('hand').asList().get(0).asString();
139  hand(counter) = tmp.toString;
140  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
141  if (counter == 1)
142 
143  x3=size(main.find('center').asList());
144  center=zeros(1,x3);
145  for j=0:x3-1
146  center(j+1)=main.find('center').asList().get(j).asDouble();
147  end
148 
149  x4=size(main.find('dim').asList());
150  dim=zeros(1,x4);
151  for j=0:x4-1
152  dim(j+1)=main.find('dim').asList().get(j).asDouble();
153  end
154 
155  x11=size(main.find('rotmat').asList());
156  vec=zeros(1,x11);
157  for j=0:x11-1
158  vec(1,j+1)=main.find('rotmat').asList().get(j).asDouble();
159  end
160  rotmat = vec2mat(vec,3);
161 
162  x12 =size(main.find('cloud').asList());
163  index =size(main.find('cloud').asList().get(0).asList());
164  cloudVec=zeros(x12,index);
165  for j=0:x12-1
166  for i=0:index-1
167  cloudVec(j+1,i+1)=main.find('cloud').asList().get(j).asList().get(i).asDouble();
168  end
169  end
170  cloud = vec2mat(cloudVec,6);
171  end
172  disp (counter);
173  counter = counter + 1;
174 
175  disp('finished processing yarp list...');
176  end
177  else
178  pause(0.001);
179  end
180 end
181 port.close;
182 disp('done...');