EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。
8 M6 C1 u, Y% g C4 x2/ I3 c1 y3 w/ a# H$ y
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;1 I. ]6 C" d* E" L3 T" v) g* s/ d- P- }
. A- H9 x6 Q2 D) ?, \$ ?
L2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;
, {% H3 ]5 \) P% L4 k$ _
! r; q. Y7 q/ o$ X1 nL3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);* I# o/ B' [3 v8 W
) g4 F) e# S2 pL4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);+ I) e* _6 `! b
% r; P" Z( s1 g. c. d) x( |5 sL5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;
- u _) u1 Y0 }
" J! e- N7 _- C; W+ Y: hL6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
2 [: {9 [1 [6 v% C# U
# v8 j* I7 _6 J/ ^VFb=isrevolute( L1) ; %测试是否为旋转关节
8 |& W( s! P9 B0 h% N) S; M$ T
" F& S9 s9 q8 K8 y$ Q- t( Y0 lrobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型$ |5 ^6 _% R' h3 j8 v- B3 B
7 a) w4 B1 \3 b- N
robot.name='M-20iA'; %机器人模型名称5 E% ?0 Q) I6 K& ^* c4 p
* q& a: j6 ^ S* {( g2 r
theta=[0 pi/2 0 0 0 0]; %关节角度初值( n; D. U+ U; ^1 A
1 l4 b+ p: w$ P4 u. i( n2 a! ct=[0:0.05:4]’;
; l' C! y% R' o/ e4 m7 ?7 J% s
( f2 M" f/ x* d9 ^qA=[0 pi/2 0 0 0 0];
& G. L7 |% L0 W1 d$ q5 Z* N1 b' J: f- G
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];3 w2 E' v) M( e4 a
# {" `( K( c7 t: E( {+ Qq=jtraj(qA, qB, t);) J) ?, q, N9 c
e4 n ^+ ^- J' Kplot(robot,q);
( s5 O: A9 o; s4 ^& C) y2 r3 J& h, Z8 b! G6 u5 M% m7 m
T=fkine(robot,q);1 V" B& X' L# V' E; V
g3 Z' H' ^; r8 X! hx=squeeze(T(1,4, );
, c3 P" m% A( @( \, X5 `y=squeeze(T(2,4, ); 0 ^3 M& T5 }. J R% f& I5 I' Y( q
z=squeeze(T(3,4, ); 2 ]" T6 a/ p- `3 J( R T8 N8 D8 R- N
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’);
& z% n/ M- d3 tsubpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’); ; [" t6 A" W5 n
subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决?
9 A: E f2 i* r4 l3 ~$ W |