热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

解决高版本MATLABroboticstoolbox在plot/teach时报错问题

在MATLAB2019或者2020等高版本里,使用机器人工具箱(roboticstoolboxRTB)对机器人进行可视化时(比如robot.teach,robot.plot)会报错

在MATLAB 2019 或者 2020 等高版本里,使用机器人工具箱(robotics toolbox/RTB)对机器人进行可视化时(比如robot.teach,robot.plot)会报错:

Index exceeds the number of array elements (4).

Error in SerialLink/plot>create_robot (line 473)
d = norm( d(4:6)-d(1:3) ) / 72;

Error in SerialLink/plot (line 256)
handle = create_robot(robot, opt);

Error in SerialLink/teach (line 102)
robot.plot(q, args{:});

 

而在MATLAB 2018b及更早版本中不会报错。此时只需在可视化语句之前加上

view(3)

 


即可解决。
然而每次都要写这个太麻烦了,有一个一劳永逸的办法。首先在命令窗口里键入

edit SerialLink.plot

 

 


之后应该弹出

 

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

 

 

 

然后在函数的第一行开始加入

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

 


如图:

 

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

 

 

 

 

之后就不需要每次都写view(3)了,和旧版本的用法一致。

注意以上代码不能简单用view(3)代替,如果只写view(3)的话会在程序运行时不能拖动视角。按照当前解决方案,每次调用SerialLink.plot都会判断一下当前视角,造成执行效率变低一点点点点点,而且当你拖动到正俯视图视角时会自动变成view(3)视角。如果你有更好的解决方案,欢迎留言交流。


推荐阅读
author-avatar
手机用户2602915205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有