function copysimoutdatafromturtle(turtle,dontcopydata) curdir = cd; cd /home/robocup if nargin==1 % get motion data if exist(['./motion_' turtle '.mat'],'file') delete(['./motion_' turtle '.mat']) end try eval(['!scp robocup@' turtle ':/home/robocup/motion_' turtle '.mat /home/robocup']) catch end % get vision data if exist(['./vision_' turtle '.mat'],'file') delete(['./vision_' turtle '.mat']) end try eval(['!scp robocup@' turtle ':/home/robocup/vision_' turtle '.mat /home/robocup']) catch end end % plot motion data if exist(['./motion_' turtle '.mat']) k=load(['./motion_' turtle '.mat']); fnames = fieldnames(k); if length(fnames)>0 [X,legenddata] = getdata(k,fnames); dt=.001; %s t=[0:size(X,1)-1]'*dt; figure plot(t,X) title('motion data') xlabel('time') ylabel('data') legend(legenddata{:}) end else disp(['no motion data found on ' turtle]) end % plot vision data if exist(['./vision_' turtle '.mat']) k=load(['./vision_' turtle '.mat']); fnames = fieldnames(k); if length(fnames)>0 [X,legenddata] = getdata(k,fnames); dt = 1/32; %s t=[0:size(X,1)-1]'*dt; figure plot(t,X) title('vision data') xlabel('time') ylabel('data') legend(legenddata{:}) end else disp(['no vision data found on ' turtle]) end cd(curdir) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [X,legenddata] =getdata(k,fnames) X=[]; legenddata = {}; %loop through variables for i=1:length(fnames) %get data name char dataname = fnames{i}; tmp = eval(['k.' dataname]); %check if it is a struct or numeric "to workspace" if ~isstruct(tmp) x=tmp; else eval(['x=k.' dataname '.signals.values;']) end %conditioning of data x=double(squeeze(x)); if size(x,2)>size(x,1) x=x'; end %add data to collection matrix if i==1 %length of first data matrix determines length of the collection matrix X = x; elseif size(x,1)==size(X,1) X = [X x]; elseif size(x,1)>size(X,1) X = [X x(1:size(X,1),:)]; else X = [X [x;zeros(size(X,1)-size(x,1),size(x,2))]]; end %gather legend data and tagging it according to its size if size(x,2)==1 legenddata=[legenddata dataname]; elseif size(x,2)==2 legenddata=[legenddata [dataname 'x']]; legenddata=[legenddata [dataname 'y']]; elseif size(x,2)==3 legenddata=[legenddata [dataname 'x']]; legenddata=[legenddata [dataname 'y']]; legenddata=[legenddata [dataname 'z']]; else for j=1:size(x,2) legenddata=[legenddata [dataname int2str(j)]]; end end end