前言
平时使用simulink来构建模型非常方便,许多人会使用simulink,如果需要仿真来实际观察,可以配合coppeliasim来,但由于官方未给出方便的simulink与其的库,在此非常感谢Santiago博士提供的工具simExtSimulin库,这里使用该库完成配置与示例的搭建
simExtsimulinkhttps://github.com/santdiego/simExtSimulink 下载完后放入以下地址,如果配置过其它Vrep外接库的小伙伴会发现这个地址异常熟悉
C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu\programming
为了防止版本更新等等原因导致地址更改,我贴出该地址下的文件,大致一样就行,我这里因为后续的操作会多几个文件夹,将文件夹放入这里
一般来说大家应该已经安装过了,这里主要是强调一下一定要选
这样最后qt编译才能选C和C++的compiler
Download Qt | Develop Desktop & Embedded Systems | Qthttps://www.qt.io/download
这里进去点击如下Go open source进去下载qt online installer
填写完信息后可以下载了
进入软件
这时候先打开coppeliasim看看你需要的qt版本,Help/about
回到软件接着登录后 选择安装目录什么的
然后点next到以下界面,点开Qt/Qt 5.15.0,安装如下三个勾选上,可以看到符合了上面获取的对应版本。注意其它额外qt包就不用选了,不然安装内容非常庞大
然后一路安装最后确认的时候我记得是4.99GB的样子。等安装完成即可
------------------------------------------------------------------------
然后用qt打开我们刚刚下载的文件夹里的simExtSimulink.pro,首先选择编译器,然后configure
(这里如果选择不了编译器的小伙伴转到文末的问题解决1)
接着修改编译器为release,然后 构建/build All projects,观察到build加载条完毕即可
--------------------------------------------------------------
之后在programming目录内会发现多了build-simExtSimulink-Desktop_Qt_5_15_0_MSVC2019_64bit-Release文件夹,进入在release文件夹目录里复制simExtSimulink.dll,到C:\Program Files\CoppeliaRobotics\CoppeliaSimEdu目录下
打开matlab,将工作区定位到simExtSimulink目录下,然后执行命令(报错的话转移到问题解决2)
mex -setup
接着输入编译命令
mex gettable.cpp
mex settable.cpp
在matlab工作区打开example1.slx,点击运行后simulink会自动打开example1.ttt的世界并运行
1.qt编译工程的时候编译器前感叹号或者错误
这是由于编译器有一部分找不到的原因,一般出错就是在下面勾选红线的选项,首选鼠标悬浮在出问题的编译器上看看原因
下图是我成功使用的编译器配置
解决方法:
1.如果是C++ compiler有问题,打开找不见和我一样的选项,就是VS2019没有安装好的缘故,以前已经安装的小伙伴可以重新打开vs installer修改安装
2.如果是Debugger出问题,需要下载window10 SDK工具
Windows SDK - Windows 应用开发 (microsoft.com)https://developer.microsoft.com/zh-cn/windows/downloads/windows-sdk/下载打开如果提示已经安装可以先删了以前的,卸载里面搜索windows 10
删了以前的后再次安装如下
如果删了以前的话,如下需要全部勾选防止有些编译器被删除无法使用,反正不大
现在进入qt的编译器配置里debugger下应该可以选择了,如下或者和我一样的,只要能去掉warning即可
2.matlab命令mex出现问题
mex -setup命令 错误使用 mex问题【MATLAB 安装MinGW-w64编译器】_Cethy‘s Learning Notes-CSDN博客_mex-setuphttps://blog.csdn.net/bailing910/article/details/79669028这里参考大大的博文
3. coppeliasim中打开example1世界后运行报错in function 'sysCall_actuation'xxxx
由于之前qt编译出的dll库版本不对或者放错位置,导致coppeliasim没有找到该库的位置,建议重新核对编译出来的库版本对不对和放的地址对不对,还有问题可以评论区交流