EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。0 m: e( _9 {; ?4 g1 j3 ^
6 V7 U: `, d2 I/ E/ d4 q# g6 I
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;
8 w: c5 c: E! |1 r% v0 q8 ]2 V' e- U. x) s* j: ?+ Z7 J' |* x
L2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;
K4 ]# T" w8 \# {! K/ O$ H$ {, t$ @* g$ b% k; K/ L
L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);0 |" ]# L- ? @1 L0 M& a
" |1 `7 X0 L4 i: NL4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);
K3 |. t8 V+ c6 H. l3 v" b8 b/ o. U/ }+ P: Q
L5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;& }9 K* u( `' e! Q$ d
0 F# F) m3 {3 w+ d
L6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
& _2 @8 S* w. a/ ~4 Q9 @4 n& E9 K* ]! d7 t9 K% ^/ w; ^
VFb=isrevolute( L1) ; %测试是否为旋转关节1 U' F1 D/ p1 B+ W
& M L5 i) o* q; g8 h3 v& J6 D- Xrobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型
: C3 [7 [/ f x9 l/ T4 @* h. r" V- t5 k; X' i) o
robot.name='M-20iA'; %机器人模型名称
* N" D* V5 i( |( G- x. G5 ^4 Y# V+ t1 H
theta=[0 pi/2 0 0 0 0]; %关节角度初值
2 S3 `# N' ~! u+ m- X
8 b: d! ]* F+ N5 tt=[0:0.05:4]’;
) E; v+ }+ K7 y! t- H; ~4 Q6 Y6 V# r# u, {4 x9 I
qA=[0 pi/2 0 0 0 0];
/ r) n6 S7 i8 |- W
- K# C9 S& [& l7 K% j; sqB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];4 C$ A( l' d+ |6 E( u" t, j* M9 n p
; l1 h# q' V# [- e9 Z) Vq=jtraj(qA, qB, t);- B o9 G- m( Q9 r+ v$ ?" w& u9 c" A
( U( @ Z4 {+ G6 l) i8 r3 lplot(robot,q);1 { _9 G7 t' H4 i- X
1 S( G6 ~) E$ ~2 K$ h8 E
T=fkine(robot,q);
. n% a. y2 x+ N- ^
2 u% D. c6 ?3 a$ U; G Rx=squeeze(T(1,4,:)); ! c1 B3 T9 I8 f: E$ e3 P$ Z
y=squeeze(T(2,4,:));
3 o( B2 O' q$ P- J* Q% i Jz=squeeze(T(3,4,:)); , I" t0 P1 I5 k* y
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’);
0 {# u) A$ s& C5 R/ d; D" hsubpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’);
- ~0 b5 B! E4 |! Qsubpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); ) h* N3 R! Y9 m( n
请问该如何解决? . V) b$ y. d3 f# _" f1 U
|