EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。2 e+ C% q. ?- Z9 x! M0 n
2; Q7 a* R5 a0 q
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;
+ B3 T" D9 h3 k# R! y( ?
; x0 _% S7 N. i/ XL2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;
1 O+ B8 ~' S- n
! M7 _0 G) Y ~/ I1 \L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);* T! T5 K% B* D% q" r% J0 D; z. m
9 `: c' e c4 H+ s7 t
L4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);
) p" I' ?7 C( p; o$ L4 u% y9 d3 i
; _% t- i4 ~, O, R9 W* Z3 zL5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;* x# _4 R/ o; V) h( b
* `2 w8 ^: p4 E. oL6 = Link( 'd', 0.1,'a',0,'alpha',0) ;. y/ v# H! n) q5 n
7 @2 i* b! f8 J4 J1 z
VFb=isrevolute( L1) ; %测试是否为旋转关节
5 }$ g$ v9 j% a' {; d7 }
" e$ _: P! s! u5 e" krobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型( ~) a0 W; S8 m( }
/ R% B! W4 f, B/ ?# ]! v7 _1 f
robot.name='M-20iA'; %机器人模型名称4 P4 K, ~# V, A
( y8 m1 }, x- n3 `0 a6 Ctheta=[0 pi/2 0 0 0 0]; %关节角度初值
/ F+ S) j- V, b; }' T4 n' V% {" I3 U O1 o& K8 k; G% N
t=[0:0.05:4]’;
) ~" m& P/ C# s2 O4 y
, |- p$ H" c+ n' c' Y3 G2 Z/ ]qA=[0 pi/2 0 0 0 0];
9 Q4 r- G5 F4 f# R! D* ]8 G& n E3 q" C- d# y% G& E+ D
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];
% }" W- x3 }+ v/ N& B$ K" h0 |6 P& h4 R* a) ~
q=jtraj(qA, qB, t);1 X- s" F; j, t3 N
0 {6 C. P6 g n# I2 ]! fplot(robot,q);
* Q! ?3 f/ S' w. k; o6 O; B$ x
) O* {9 F) }; v! h, qT=fkine(robot,q);, G7 [, s5 H2 m, T6 m+ W' H3 K# r
5 J6 _+ Q* P/ r# t2 c, Ax=squeeze(T(1,4, );
4 v4 [; `0 ^! g/ r; G' P1 My=squeeze(T(2,4, );
- Q/ `8 v/ V' n" v; oz=squeeze(T(3,4, ); : M; n6 c) g- H# D4 ?$ ]
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’); " d5 {' P+ f; y
subpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’); ) A/ f& j7 [& Q6 n3 H
subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决? / r( p- v# R' p% A; C# ]
|