古月居中已经有相关教程,但是没有那么具体的教应该如何编译,博主折腾了大半天才知道怎么弄,写下来这篇防止忘记。
相关链接:Matlab与ROS(1/2)---Simulink(二) - 古月居 (guyuehome.com)
注意:MATLAB 2020b以上的版本自带了ROS Toolbox Interface for ROS Custom Messages 工具,如果低于这个版本就需要通过链接ROS Toolbox Interface for ROS Custom Messages 下载。
这里有一个MATLAB2023b的网盘资源:链接:https://pan.baidu.com/s/1Kn9VY_b_3MacTAMCK8qvCg?pwd=1024
提取码:1024
这里默认与ros的基本链接已经成功。我是在Windows中的MATLAB控制另外一个电脑上的ros,编译时要将用到的功能包放到Windows中,注意一定要把工作空间拉过来。然后在MATLAB的命令行添加相关路径,把路径换成自己的。
编译之前要先下载一个c++编译器,(visstudio就可以),下载之后再在命令行中输入mex -setup cpp,MATLAB会自动寻找编译器;并且注意要把,msg,action,srv文件中的中午注释删掉,否则会报错。还有极大概率会遇到编码问题,这个时候查看报错中显示的日志文件,根据日志文件来修改MATLAB中相关的python文件,把其中读取文件的格式改为“UTF-8”。
可以参考这个打大佬的文章:在window中使用Matlab接收Ubuntu中ROS的自定义消息 rosgenmsg报错592的一个解决思路_buildpackage(builder, [], 'install', catkinmakearg-CSDN博客
编译完成之后会提示你在命令行运行四个命令:
把路径换成自己的
addpath('D:\uwb_test\src\matlab_msg_gen_ros1\win64\install\m')
savepath
clear classes
rehash toolboxcache
然后再运行rosmsg list就可以看到你自定义的消息类型了!