MATLAB与ROS通信:使用自定义ROS消息custom ros message
-
安装matlab三方支持包roscustommsg
-
使用管理员模式运行matlab
-
如果自定义消息类型为util/sparkingspots。
在工作目录下创建名为util的文件夹
在util内创建名为msg的文件夹
将.msg文件放置到msg文件夹内
-
在util文件夹内创建名为package.xml的文件。内容如下
注意!!!!!!!!
util必须和文件夹名字util一致
<?xml version="1.0"?>
<package>
<name>util</name>
<version>1.0</version>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>std_msgs</build_depend>
<build_depend>message_generation</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>std_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>message_runtime</exec_depend>
</package>
- 返回到工作空间,运行命令
rosgenmsg('c:\MATLAB\custom_msgs')
在命令行窗口中出现如下内容
Checking subfolder "util" for custom messages.
Building custom message files for the following packages:
util
Generating MATLAB classes for message packages in c:\MATLAB\custom_msgs\matlab_gen\jar.
Loading file util-1.0.jar.
Generating MATLAB code for util/ParkingSpot message type.
To use the custom messages, follow these steps:
1. Edit javaclasspath.txt, add the following file locations as new lines, and save the file:
c:\MATLAB\custom_msgs\matlab_gen\jar\util-1.0.jar
2. Add the custom message folder to the MATLAB path by executing:
addpath('c:\MATLAB\custom_msgs\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.
如果成功,文件目录下会自动生成相关文件
- 按照matlab自动生成的说明文件执行,完成自定义msg文件的生成和调用
PS:如果报错,删除matlab_gen文件夹后重试。清空javaclasspath.txt后重试。如果msg文件包含Header生成有可能会报错(一般没问题)
- 打开SIMULINK,如图设置,使用自定义ROS MASSAGE文件
参考文献https://ww2.mathworks.cn/help/ros/ug/create-custom-messages-from-ros-package.html