EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。
& n+ m1 ^* L. i6 g2/ `; z9 y$ d* D" ^# W1 l; M
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;- E( f6 L: Y i4 |/ ?' |
" g9 n8 `3 Z) D2 {# M* LL2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;1 }# f5 w( C, T/ t+ ]" u
6 |- A2 M# B5 ^% F# H7 K
L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);- V2 l5 L+ Q0 }* X$ R/ Y8 o0 r
% W3 q( p | ~6 d9 iL4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);$ C: U% {# ~ U: ]
- h4 p: g5 K7 i( D; z0 V3 j" v
L5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;
+ s' _7 ~/ B: c) c3 N
: C4 G! c& z- e5 J; F- l" p( sL6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
9 C0 q1 S, a( I) }9 C+ p# O" m4 D. _' O
VFb=isrevolute( L1) ; %测试是否为旋转关节
+ y1 @$ ~/ c+ d: h' q& F) A6 a
7 a v+ m6 H) i9 U/ X) T' Crobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型/ W# e% W7 u# c2 j. l
1 z& L# J8 w: ?5 [% _+ Zrobot.name='M-20iA'; %机器人模型名称1 j! z) I% {/ _: s
: P! ?& r E ~- W; Ktheta=[0 pi/2 0 0 0 0]; %关节角度初值! t D0 }6 e3 ]0 j) D6 N
$ z. O: c1 P( G$ T' A8 vt=[0:0.05:4]’;* S( _ b. {# a+ \5 `, H8 V: ~0 S
+ r# E1 H- X4 iqA=[0 pi/2 0 0 0 0];* [" ^7 w- L0 F4 M
' L/ q5 c) R& s; ?
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];
1 t3 f3 V9 m8 l1 i
' M O4 S# s7 v2 d5 {q=jtraj(qA, qB, t);
U2 S% H: g; @ g3 P* D/ y& i1 j2 l, d
plot(robot,q);
& n( B2 x" Q: w1 Y" _4 Z1 x, v# ]/ T1 s
T=fkine(robot,q);2 x& E8 g! i- E* U \* r/ c. Q
5 o3 q/ r, e7 x3 _' Tx=squeeze(T(1,4, ); 3 {' e" k- V. m* q; {& A. t
y=squeeze(T(2,4, );
B) v4 F- H$ W0 Y5 D* U: zz=squeeze(T(3,4, ); " }; `! z3 {, i! ~* M
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’); ' l6 n( C: r5 z, C6 U
subpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’);
7 d# |4 w! ^& v2 B7 N- ~, }subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决? $ x1 Q2 o! S- h& m* @: O# B
|