zoukankan      html  css  js  c++  java
  • 解决高版本MATLAB robotics toolbox在plot/teach时报错问题

    在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


    之后应该弹出

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

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


    如图:

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

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

  • 相关阅读:
    构建之法阅读笔记03
    12.16第三周总结
    构建之法阅读笔记02
    12.9第二周周总结
    四则运算2
    构建之法阅读笔记01
    12.2第一周总结
    课堂练习-增加信息
    软件工程00
    web自动化测试---web页面元素的定位
  • 原文地址:https://www.cnblogs.com/WanZhiQiu/p/14048903.html
Copyright © 2011-2022 走看看