前言:机器人工具箱在matlab2018中使用的时候没错误,同样的代码在安装有机器人工具箱的matlab2019版本中却出现错误。
代码:
% theta d a alpha offset
L1 = Link([0 0 0 -pi/2 0],'standard');
L2 = Link([0 0.19 0.650 0 0],'standard');
L3 = Link([0 0 0 pi/2 0],'standard');
L4 = Link([0 0.600 0 -pi/2 0],'standard');
L5 = Link([0 0 0 pi/2 0],'standard');
L6 = Link([0 0 0 0 0],'standard');
robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','PUMA 762');
% theta=[-pi/2 -pi/2 pi/2 0 0 0];
% view(3)
% robot.plot(theta);
teach(robot);
错误如下:
这是因为matlab2019版本的figure图框在可视化模型的时候应该是以三维的方式显示。所以在figure之前或teach()之前都应加上view(3).如下将上面的注释代码行取消后:
% theta d a alpha offset
L1 = Link([0 0 0 -pi/2 0],'standard');
L2 = Link([0 0.19 0.650 0 0],'standard');
L3 = Link([0 0 0 pi/2 0],'standard');
L4 = Link([0 0.600 0 -pi/2 0],'standard');
L5 = Link([0 0 0 pi/2 0],'standard');
L6 = Link([0 0 0 0 0],'standard');
robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','PUMA 762');
theta=[-pi/2 -pi/2 pi/2 0 0 0];
view(3)
robot.plot(theta);
teach(robot);
不报错,显示结果正常。
另外。在附加功能中下载的PUMA_Simulation在运行时也会因为figure图框的原因出错(在matlab2018中不会出错)。
报错的时候显示的是:
看报错提示,知道是由于在MATLAB2019中figure图框,即fig_1不为其他控件所共用。所以我在初始化程序中添加了对figure的初始化,使其对其他控件共享。
运行正常:
附:上面的PUMA720是在MATLAB附加功能中的,我只是把GUI界面改成了中文的,并简单添加了些其他功能。
感兴趣的可以关注下—————————地址:https://github.com/xiaosnowqiang/Matlab-for-PUMA-simulation
后记:评论区有更好的解决方法,不用每次figure对象后面添加view(3)。
这里同样贴出如下截图进行操作:
进入程序之后,如下添加view(3)就可以了