MATLAB robotics toolbox机器人工具箱 (Index exceeds the number of array elements报错)解决方案

  • Post author:
  • Post category:其他


MATLAB 机器人工具箱 plot/teach可视化程序 数组越界报错/解决方案



报错信息

当在

MATLAB 2019及以上

版本中使用

Robotics工具箱

时,运行

plot或teach

等含可视化功能的命令时出现以下报错信息:

Index exceeds the number of array elements. Index must not exceed 4.

出错 SerialLink/plot>create_robot (第 469 行)
            d = norm( d(4:6)-d(1:3) ) / 72;

出错 SerialLink/plot (第 252 行)
        handle = create_robot(robot, opt);

在这里插入图片描述

索引超出数组数目

在MATLAB2018b以前版本中不会出现这个问题



解决方法


一、临时解决方案


每次都在可视化语句前加入以下命令:

view(3);

虽能解决可视化问题,但仍会报错

此类型的变量不支持使用点进行索引。

出错 SerialLink/animate (第 105 行)
                        if h.link(L) ~= 0

出错 SerialLink/plot (第 299 行)
    robot.animate(qq);


二、一劳永逸方案


1、在命令行窗口中输入

edit SerialLink.plot

此时会打开工具箱中的plot.m文件,如下图:

在这里插入图片描述

2、在程序的开头处加入如下程序

[myModifyForViewErrorA,myModifyForViewErrorB]=view(gca);
if isequal([myModifyForViewErrorA,myModifyForViewErrorB],[0,90])
    view(3)
end

如下图:

在这里插入图片描述

再次执行可视化程序,即可成功运行!



运行效果

1、运行示例程序

startup_rvc
L1 = Link('d', 0, 'a', 1, 'alpha', pi/2)
L2 = Link('d', 0, 'a', 1, 'alpha', 0)
bot = SerialLink([L1 L2], 'name', 'my robot')
bot.fkine([0.1 0.2]) 
bot.plot([pi/4 pi/3])

2、绘图效果

在这里插入图片描述

参考博客:


解决高版本MATLAB robotics toolbox在plot/teach时报错问题



版权声明:本文为nomoremorphine原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。