EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。$ u Q( i! m0 Z1 r' W' }
27 {) U9 W# z5 E! r
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;' \ p' k' v. F1 M! o
$ t! I, \$ Y; TL2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;
4 k# u6 |( p/ U ^# c! P! ]% T% L" Z7 l) b% i- M
L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);& Y3 u3 y" @/ F8 ]$ H$ P: z& [
; w' b; e5 c. t3 w& t1 J) O
L4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);
* R& z. G7 }) `- j0 V) b9 T1 p6 M d1 L
L5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;/ ~ r8 L, s. A3 u7 y
; c/ Y6 Z5 t' M: VL6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
7 I* e/ F. W4 `8 }: S
9 X; q8 s+ h8 E2 HVFb=isrevolute( L1) ; %测试是否为旋转关节
4 |3 ] N& c s3 j! w; M6 q- [$ C8 r. q. e
robot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型
8 x' M, B q% X, x8 m* g: j, a& ^! |! Y
robot.name='M-20iA'; %机器人模型名称* `, K: p* i( c! c1 d* ^
$ r& t6 ~% G4 T3 c4 etheta=[0 pi/2 0 0 0 0]; %关节角度初值. _1 G; n4 z X9 p! o. C# G6 f/ W! w
5 |, F$ ^1 g; [( O" @t=[0:0.05:4]’;
; c: Y' p J: g6 e, C3 r
8 g! T& E' _) [( r2 i+ A* eqA=[0 pi/2 0 0 0 0];
" D6 v' Z# q$ h$ J! e7 U; ~0 n* M- \& W2 S: V5 _" N
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];: U' H2 \+ y7 ~( ~8 Q3 n
" y* n) ^; j5 n: P0 M
q=jtraj(qA, qB, t);
6 Y1 ?3 r4 \ q+ l- D$ l! D0 ]" v) u9 _. I; i$ {# x* T
plot(robot,q);
1 G% A1 U! a* w! F2 A- w% R% y$ v
" t9 ?* T5 ~! ?( R5 j$ ZT=fkine(robot,q);8 @. [7 N: P, P6 ?
* B$ B Y5 h- j! q6 |
x=squeeze(T(1,4, );
" x) u0 Z3 A. I! v8 \8 yy=squeeze(T(2,4, ); - j, {' w' _; ~! I4 s
z=squeeze(T(3,4, ); + l$ A3 q, d6 T+ u. w
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’); 8 ^% K' L/ |: V8 |3 G; m1 z
subpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’); 0 h. G y4 l( @" w; A
subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决? 1 s# V( ?9 _% J3 A5 E% P+ B
|