实现Matlab与Ros通过自定义服务消息通讯
前言
由于最近在matlab和pycharm分别写的node节点,期望通过ros实现两者消息的交互,由于要写一个service突然发现matlab预安装的rosjavamessage是设定好的无法满足要求所以需要将自定义的服务导入当中。本人matlab2018b-Linux/ubutnu18.04/ROS melodic
插件下载: ROS Custom Message Support
下载通道是在APP—获取更多APP,之后在搜索中输入关键字即可(注意:由于采用wifi安装会导致有一个第三方包安装出现报错,所以这里一定要选择手机热点方式安装):
构建srv package包
此处为关键步骤:
- 构建服务package,其中层级结构如下:
- assembly
- assembly_srv
- srv
- Anglez.srv
- package.xml
- srv
- assembly_srv
确保按照以上的格式构建服务文件夹否则在matlab会出现生成服务错误!
生成.jar文件
之后进入已经安装好插件的Matlab中进行生成服务操作。
在maltab运行以下指令:
path='~/assembly'; 输入你所定义的srv的位置
rosgenmsg(path);
之后会出现以下提示
To use the custom messages, follow these steps:
1. Edit javaclasspath.txt, add the following file locations as new lines, and save the file:
~/assembly/matlab_gen/jar/assembly_srv-0.0.0.jar
2. Add the custom message folder to the MATLAB path by executing:
addpath('/home/tiboy/桌面/assembly/matlab_gen/msggen')
savepath
3. Restart MATLAB and verify that you can use the custom messages.
Type "rosmsg list" and ensure that the output contains the generated
custom message types.
按照上述的提示即可,之后便会在运行rosmsg list
便可以看到你自己定义的服务
(注意:它将生成的服务分成了assembly_srv/AnglezRequest assembly_srv/AnglezResponse两部分)
参考如下链接:
1: https://blog.csdn.net/weixin_42268975/article/details/80820763
2: https://blog.csdn.net/qq_39448233/article/details/105268656