我必须为机器人编写代码来拾取1型或2型螺栓,然后将它们放入对应于类型1或类型2的孔中。
我遇到的问题是excel电子表格中的数据是以我无法更改其顺序的方式设置的。例如,孔类型向量将具有1 1 1 2 2 2,但螺栓类型向量将为1 2 1 2 1 2.问题是如果孔类型为1且螺栓类型为2,则程序结束并且不会将螺栓放在孔中。我需要帮助写它,所以即使螺栓类型为1且孔类型为2,它仍将它放在孔1中。
clc
clear variables
close all
Data=xlsread('Sample_Data'); %read in data from excel spread sheet
[n_rows,n_cols]=size(Data); %obtains the number of rows and columns from data
file_no=initialize('Robot_Project.txt');
x_hole=Data(1:6,1); % creates vector for hole x_coordinates
y_hole=Data(1:6,2); % creates vector for hole y_coordinates
bolt_type=Data(7:12,3); % creates vector seperating bolts into type 1 or 2
hole_type=Data(1:6,3); % creates vector seperating holes into type 1 or 2
for i=1:n_rows/2
if bolt_type(i) == 1 && hole_type(i) == 1;
pickup(file_no) % pickup function
moveto(file_no,x_hole(i),y_hole(i)) %moves
putdown(file_no) % putdown function
elseif bolt_type(i) == 2 && hole_type(i) == 1;
pickup(file_no)
moveto(file_no,x_hole(i),y_hole(i))
putdown(file_no)
end
end
答案 0 :(得分:0)
for i = 1:number_of_bolts
pickup;
first_fitting_hole = find(hole_type == bolt_type(i),1);
% this line finds the first hole which matches the type of the bolt just picked up
moveto(x_hole(first_fitting_hole),y_hole(first_fitting_hole));
putdown;
hole_type(first_fitting_hole)=0;
% set type of that particular hole to 0 (i.e. filled hole)
end