0


Matlab+Webots联合仿真记录

Matlab+Webots联合仿真错误和问题记录

Matlab版本 2023b (需要下载支持包,matlab附加功能中MinGW-w64 C/C++)
Webots版本 2023b 后续回退版本到2023a
win10

1.Webots资源加载不出来

由于网络原因导致不能顺利打开Webots资源。故下载github中对应版本的assets资源包。参考官方文档,解压到下述目录中(修改电脑对应用户名,如下"he"):

C:\Users\“he”\AppData\Local\Cyberbotics\Webots\cache\assets

2.联合仿真时Matlab界面不能启动并调试

Webots2023b启动Matlab控制器由之前的nodesktop方式,变为了banch方式,导致Matlab的桌面不能正常启动,Github中已有该问题且提出了一种解决方案,期待后续版本中可以修正:

Cannot open Matlab desktop when using “batch” option #6362
https://github.com/cyberbotics/webots/issues/6362#issuecomment-1695794195

根据回答需采用extern外部控制的方式,启动matlab控制器并解决Matlab代码调试的问题,参考如下:

https://www.cyberbotics.com/doc/guide/running-extern-robot-controllers?version=master#running-a-matlab-extern-robot-controller
https://www.cyberbotics.com/doc/guide/matlab?version=master&tab-os=windows
https://github.com/cyberbotics/webots/pull/6366

详细步骤如下,供参考:

  1. Cmd 窗口下切换到webots安装目录下(此时需要更新webots2023rev1,2024a未尝试),例:cd /d D:\soft\Webots\msys64\mingw64\bin
  2. 运行webots-controller.exe并设置一些参数(需要指定matlab.exe路径),启动"yourname".m(绝对路径)文件,例:webots-controller.exe --interactive --matlab-path=D:\soft\MATLAB\R2023b\bin\win64\MATLAB.exe D:\bots_test\controllers\mpc_controller\mpc_controller.m
  3. m文件中添加代码desktop;keyboard;,此时就可以在matlab界面中进行单步调试。

后续:此方法打开Matlab后仍会闪退,此类BUG还是等更新大版本后看官方文档解决吧。本人回退2023a版本。

另外,运用uiopen函数,可将simulink当做ui界面打开,皆可以无缝仿真,中间不用过于卡顿。uiopen函数前面使用的地址是控制器文件夹中的simulink模型的地址(未在2023b版本尝试此方法打开simulink):

zhuanlan.zhihu.com/p/513545274?utm_id=0
uiopen(‘Full_model’,1);

3.Matlab/Simulink + Webots时间同步

修改Simulink设置为定步长,步长时间与webots时间步一致,如0.032s。

4.Matlab/Simulink + Webots API函数报错

使用联合仿真时,需要对每个API函数加入相应的调用代码,有那个函数就添加哪行,例:

coder.extrinsic(‘calllib’);
coder.extrinsic(‘setdatatype’);

其它参考链接

webots与Matlab联合仿真中的错误记录(1)
https://miracle.blog.csdn.net/article/details/104686998?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-1.nonecase

我matlab退出调试_开发经验分享(3) - Webots + Matlab/Simulink联合仿真方法
https://blog.csdn.net/weixin_39842237/article/details/109914823?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-2.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-2.no_search_link

标签: matlab

本文转载自: https://blog.csdn.net/weixin_45120853/article/details/135557187
版权归原作者 heheheshuai 所有, 如有侵权,请联系我们删除。

“Matlab+Webots联合仿真记录”的评论:

还没有评论