EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。
x9 w3 w1 E4 S, g! s24 x( u5 R8 r1 i3 e& k+ V
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;
2 {9 W- J+ X8 u5 @5 u
1 V$ u+ l g VL2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;1 I* @( z" ~. ~+ z1 _& j- K
2 D/ h+ v$ _5 R4 u6 |0 [
L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);
) c- ^. b$ S, \& t" o# \. x8 }: |" N, N' p2 X
L4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);: n. _/ O6 a! A6 I3 K- @1 K' U1 V
% A$ z* s+ K! X2 D( UL5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;; K6 V( h1 B. \2 h
' ]9 F4 a' w0 L5 c) z/ j
L6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
/ e& T) e/ ]# }, j* ? d* o
R% {5 d: Z" Y# c7 N- R8 y4 S4 p- OVFb=isrevolute( L1) ; %测试是否为旋转关节
8 Z3 n) q6 ]1 M; U: w$ f x- R
* R# G/ |8 K( N; o; ^" J2 J5 v+ lrobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型1 g" E3 r' E/ _9 W+ _9 Y! W8 V2 R
F6 Q6 q- H9 g+ {5 n9 {
robot.name='M-20iA'; %机器人模型名称
1 g( f- [, ?8 c1 J( V1 `% p0 P0 H
& I% a/ ?0 G& f w( N$ F/ Htheta=[0 pi/2 0 0 0 0]; %关节角度初值6 \$ t9 _( l& Q" ^7 O# B% R/ O& J
4 i4 N3 [& M* ot=[0:0.05:4]’;
: [1 s( E1 c ]' k7 F# ]
$ V. D2 ~+ o3 Z' qqA=[0 pi/2 0 0 0 0];
& K, d0 n. {9 U/ c
* X) y9 g" W" _* ]# NqB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];
+ |4 U1 G0 S) { o* b, N- b. \" S1 A5 u/ t, b ~
q=jtraj(qA, qB, t);; s* \- l+ q+ Y8 H2 \
$ J& U6 z1 X# Q
plot(robot,q);
6 g& B q' |5 i) i4 b/ t3 X/ G
5 t! m7 V* t+ ~9 V+ N4 U8 jT=fkine(robot,q);0 L; i8 B4 a( J0 z5 n2 k$ B3 `1 I9 M
$ F5 @$ g7 Q0 O2 ix=squeeze(T(1,4, ); 5 R* x3 g, ?* |& g
y=squeeze(T(2,4, );
1 a0 C4 b% ~! X+ U5 @8 jz=squeeze(T(3,4, );
6 V2 j5 m3 H% _5 U" g' _subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’); ! l- e" U& w a( `
subpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’);
# {% m( Y/ @7 t) C2 l) A$ ksubpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决?
! `4 N8 {) [2 q L$ { f |