EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。* Y4 F3 v2 j' j9 @& D% S. U
2/ u: c( Y" S+ e1 l
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;
( K3 j' G2 z* S
8 j: j0 r6 ^0 Q9 UL2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;3 _- C" h; M+ s; x1 n. |
* G8 }0 i }! j# @1 y. W2 F
L3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);: |0 Y$ v7 h( V, p' Z- B
/ y. P* j) r7 U+ o. p9 b mL4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2); C: p/ e4 T8 m3 v/ [7 z
6 V% w* |+ a' L6 x0 S! [4 [
L5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;
& U" ?$ Q( d: ]: |# p1 D+ ?* V& ^! H
L6 = Link( 'd', 0.1,'a',0,'alpha',0) ;" [8 \ |6 A+ m
4 o2 i- Y3 H/ m f, sVFb=isrevolute( L1) ; %测试是否为旋转关节
0 O- y- W' f* ^1 T8 c! J9 T" d/ }% A( k. E4 A8 V& \
robot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型
' D, U4 O7 P0 w9 P8 E' R4 F0 u1 G5 |5 F" Z; L" ^& D2 l, _, t
robot.name='M-20iA'; %机器人模型名称
9 f+ j" G3 ?, s1 i8 ?& b6 w4 Y8 Y. h( @, W
theta=[0 pi/2 0 0 0 0]; %关节角度初值1 n1 v7 m: d% S. @
: O0 B; ?4 U0 J# j% G$ O) _
t=[0:0.05:4]’;
% p4 X" E) Y( Z7 Y9 [( ?+ N. G% f
/ {$ n! \+ C( yqA=[0 pi/2 0 0 0 0];( n$ e# w9 x0 z7 N: ~% }( w
3 z% S0 U8 v9 K% H
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];0 g+ u0 k c- E: C3 j5 {* I+ J, X
5 y/ @2 q% J K/ Y! E1 @q=jtraj(qA, qB, t);; a/ f3 M7 h* S- v2 v6 ^
2 w9 s6 Y/ q6 ~& t
plot(robot,q);
b" f6 t% S* C: t
, }7 F. x! _8 x- w& e/ S8 d! jT=fkine(robot,q);4 o3 P& U! l7 I0 }( T2 G, T7 N
- Z: l9 p6 O5 T* j
x=squeeze(T(1,4, );
: ~$ T% u/ k# s5 b" s3 a ^6 m. C' ly=squeeze(T(2,4, ); & x2 T: _- [# [3 r
z=squeeze(T(3,4, );
\7 L/ f: @% MsubpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’);
) ? _2 H% F3 psubpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’); ! p6 G/ F N4 H0 [; Q/ K
subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’); 3请问该如何解决?
' C! h8 X) ?4 C; H |