解決高版本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)視角。如果你有更好的解決方案,歡迎留言交流。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM