关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型

在ROS系统应用中,程序员为实现某些特定的功能,常常自定义一些ros packet ,所以Matlab要想读取这些类型的 ROS message,必须在Matlab中自定义这些ROS message ,将其转换成Matlab 可以识别的message type 。 

 自定义 ROS message 类型:

在MATLAB中从ROS包,创建自定义消息

要求:

  1. Install Robotics System Toolbox Add-ons安装机器人系统工具箱附加组件(为了可以使用rosgenmsg函数)
  2. 完整的ROS功能包(自定义msg文件夹 和 package.xml文件)

1.安装 Robotics System Toolbox Interface for ROS Custom Messages

单击菜单栏的附加功能

弹出窗口,搜索 Robotics System Toolbox Interface for ROS Custom Messages,根据提示安装即可

或者使用命令,弹出附加功能窗口

关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型_第1张图片

2.安装完 Robotics System Toolbox Interface for ROS Custom Messages,获得rosgenmsg函数,使用此函数编译文件

设置正确的文件放置位置

关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型_第2张图片

将自定义msg文件夹(放置自定义.msg文档)和package.xml 文件放置在如下目录下(忽略CMake文件,这里不需要放置CMake文件)

关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型_第3张图片

注意:这里package.xml 中功能包名称必须和文件所在文件夹名称一致

关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型_第4张图片

正确定义完文件夹路径后

运行rosgenmsg 函数进行编译

编译完成没有报错后

单击:

将生成的jar文件路径添加到里面。

关于Matlab/Simulink 中ROS学习总结(二)自定义 ROS message 类型_第5张图片

将文件加载到Matlab 路径

重启Matlab。

在MATLAB中从ROS包,创建自定义消息完成,可以订阅ROS主节点发布的自定义ROS message ,同时自己也可义发布此类型的topic

还有一个坑。

在不同的目录下转换ros 功能包。最后都需要将生成的msggen文件夹添加到Matlab路径。

由于不是在相同目录下转换,所以他们生成的msggen所在的路径不同,所以添加到Matlab路径,后一次的路径会覆盖前一次的。所以就无法找到之前的路径,之前定义的message type 就不可用,想要使用重新将msggen添加到路径即可(不需要再转换),当然他又会覆盖上一个路径。

所以最好的办法就是,将不同的功能包放置在同一个目录下转换,这样msggen是同一个。
 

 

 

你可能感兴趣的:(自动驾驶仿真测试,matlab自定义ROS,message,type)