Index in position 1 is invalid. Array indices must be positive integers or logical values.

1 次查看(过去 30 天)
Hi everyone, I am getting the following error,
Index in position 1 is invalid. Array indices must be positive integers or logical values.
Error in reversepuma (line 44)
c71 = dot(S7_f, S1_f)
lin44: c71 = dot(S7_f, S1_f)
I created a function to give 6 outputs based on 4 inputs ,( Reverse kinematic analysis)
To test the function i gave some sample values and i got that error,
Any help would be greatly appreciated ,
TIA
%close-the-loop analysis of Puma Robot
%Following paramters are given
%function [a71, S7, S1, al71, th7, gam1] = close_loop_puma ( P_tool_6, P_tool_f, S6_f , a67_f)
P_tool_6 = [5; 3; 7];
P_tool_f = [ 25; 23; 24];
S6_f = [ 0.177; 0.884; -0.433];
a67_f = [-0.153; 0.459; 0.875];
S1_f = [ 0; 0; 1];
P_x = P_tool_6(1)
P_y = P_tool_6(2)
P_z = P_tool_6(3)
a56 = 0
%Twist angle
al12 = 90
al23 = 0
al34 = 270
al45 = 90
al56 = 90
%Joint Offset
S2 = 5.9
S3 = 0
S4 = 17
S5 = 0
R6_f = [ a67_f cross(S6_f, a67_f) S6_f]
P_6orig_f = P_tool_f -(P_x * a67_f)-cross(P_y*S6_f, a67_f)-P_z*S6_f
T6_f = [ R6_f P_6orig_f ; 0 0 0 1]
%Hypotehtical closure link
S7_f = cross(a67_f, S6_f)
%Determination of close loop parameters
a71_cross = cross(S7_f , S1_f)%crossproduct
premag = a71_cross.*a71_cross %Finding the magnitude of the vector
mag = sqrt( premag(1)+premag(2)+premag(3))%Finding the magnitude of vector
a71_f = a71_cross / mag %unit vector
%twist angle
c71 = dot(S7_f, S1_f)
s71 = dot(cross(S7_f,S1_f),a71_f)
al71= atan2(s71,c)
%Joint angle
c7 = dot(a67_f,a71_f)
s7 = dot(cross(a67_f,a71_f),S7_f)
th7 = atan2(s7,c7)
%The angle gam1 is t n e angle between the vector a7i and the X axis of the fixed coordinate system
cos(gam1) = dot( a71_f, [1;0;0])
sin(gam1) = dot(cross(a71_f, [1; 0; 0]), S1_f)
gam1 = atan2( sin(gam1), cos(gam1))
S7 = (dot(cross(S1_f,P_6orig_f),a71_f))/s71
a71 = (dot(cross(P_6orig_f,S1_f),S7_f))/s71
S1 = (dot(cross(P_6orig_f,S1_f),a71_f))/s71
%end

采纳的回答

the cyclist
the cyclist 2019-10-4
Just a guess, but I think you probably named a variable dot, which is being used instead of the function you want.
What does
which dot
give as output?

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Assembly 的更多信息

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by