找回密码
 注册
关于网站域名变更的通知
查看: 332|回复: 1
打印 上一主题 下一主题

请问为什么用matlab仿真机器人末端轨迹,会出现“位置 1 的索引超出数组范围(不能...

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-12-11 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1这是我再知网上查了许多论文,关于机器人末端轨迹的仿真,用的都是这一类的代码,会涉及到squeeze函数,不管怎样,都会有“位置 1 的索引超出数组范围(不能超过 1)”的报错。; V$ _# U/ L" W+ O, L2 w, v# v
29 U3 ]; X) ]# \1 o
L1 =Link( 'd',0.525, 'a',0.15,'alpha',pi/2) ;. V! z; [# w' B/ P. a  B9 b3 z# a
/ Y; ]5 v, W% S$ Q# H" ?. C: f2 ^
L2 =Link( 'd',0, 'a',0.79, 'alpha',0) ;
/ ?) |3 h% v- m% _  h5 @
% a+ s0 R1 X" @2 a$ q9 WL3 =Link( 'd',0, 'a',0.25, 'alpha',pi/2);
+ h4 q: h& L& B$ e8 j' m  W- M% G( ~$ A
, A/ e* m6 G% R: ^$ k* ]6 A6 eL4 =Link( 'd',0.835, 'a',0, 'alpha',-pi/2);; V2 q2 b- j- k4 |7 t& V- Z

$ ]. b5 |0 F( S" W6 _3 f9 p  kL5 =Link( 'd',0, 'a',0, 'alpha',pi/2) ;3 x  G7 a: t! b1 S: R! \: Q) g

2 j( R* \" V) a* s& ]1 O( g/ `L6 = Link( 'd', 0.1,'a',0,'alpha',0) ;
9 k( F& b) U, D( n6 R4 R- S* m! r8 s8 C' G4 ~" h
VFb=isrevolute( L1) ; %测试是否为旋转关节
7 f9 @6 v$ I/ v' Y0 C
# _" b5 F/ h( |* irobot=SerialLink([L1, L2, L3, L4, L5, L6]); %创建机器人模型
0 j; z. O- c" w) C0 O
1 a+ F' k) e* j8 w" F+ F5 Q* irobot.name='M-20iA'; %机器人模型名称& |7 J0 L$ ]8 _/ I5 s: Y9 o

+ f: p9 t* w1 Y* z# i! b8 J* mtheta=[0 pi/2 0 0 0 0]; %关节角度初值3 Z# v9 N  D- }

4 O  y0 ~/ {. g3 ~& V$ lt=[0:0.05:4]’;# b, O9 w8 i! @( _3 {

0 a" z; K# r2 D3 e! k; GqA=[0 pi/2 0 0 0 0];. u/ `3 s6 o& y& Z- M
( c; p& y% k. K: Q" W, C1 l
qB=[pi/2 pi/3 -pi/6 0 pi/3 pi/2];8 i5 \- c% @6 R$ ]! D# B6 }
, Z/ T, n* ~- _1 H8 n2 a; Q
q=jtraj(qA, qB, t);2 e  ~3 L- l! R+ S
+ q! Y5 V; ?; q- I* m0 |2 @1 Y- C
plot(robot,q);
# t$ X% T7 K) X' {6 \" c
1 P+ t& G3 o) U3 p. @) F  j! e/ kT=fkine(robot,q);
6 c1 Y; R" y3 R/ Y4 \1 |3 g9 w0 R" s
/ q$ r/ T. D) ~; ?9 ~/ G
x=squeeze(T(1,4,);

9 Q* K( E8 T3 J! _
y=squeeze(T(2,4,);

5 @" R8 n4 Q" [9 N! i
z=squeeze(T(3,4,);
1 S  p$ y6 F' t9 q
subpIoT(3,1,1);piot(t,x);xlabel(‘时间/s’);ylabel(‘x/m’);
) O0 U, y& F* {% ?0 z
subpiot(3,1,2);piot(t,y);xlabel(‘时间/s’);ylabel(‘x/m’);

  Y! P& w! g/ A& T: G+ {- s# Z
subpiot(3,1,3);piot(t,z);xlabel(‘时间/s’);ylabel(‘x/m’);
3请问该如何解决?
) s. A) C. M; N8 n
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2020-12-11 16:18 | 只看该作者
    超出索引范围肯定就是你数组位数设置错误的问题
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 17:12 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表