EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在ROS系统应用中,程序员为实现某些特定的功能,常常自定义一些ros packet ,所以Matlab要想读取这些类型的 ROS message,必须在Matlab中自定义这些ROS message ,将其转换成Matlab 可以识别的message type 。 自定义 ROS message 类型: 在MATLAB中从ROS包,创建自定义消息 要求: - Install Robotics System Toolbox Add-ons安装机器人系统工具箱附加组件(为了可以使用rosgenmsg函数)
- 完整的ROS功能包(自定义msg文件夹 和 package.xml文件)
# y' t. v- y, H
1.安装 Robotics System Toolbox InteRFace for ROS Custom Messages 单击菜单栏的附加功能
弹出窗口,搜索 Robotics System Toolbox Interface for ROS Custom Messages,根据提示安装即可 或者使用命令,弹出附加功能窗口
2.安装完 Robotics System Toolbox Interface for ROS Custom Messages,获得rosgenmsg函数,使用此函数编译文件 设置正确的文件放置位置
将自定义msg文件夹(放置自定义.msg文档)和package.xml 文件放置在如下目录下(忽略CMake文件,这里不需要放置CMake文件)
注意:这里package.xml 中功能包名称必须和文件所在文件夹名称一致
正确定义完文件夹路径后 运行rosgenmsg 函数进行编译
编译完成没有报错后 单击:
将生成的jar文件路径添加到里面。
将文件加载到Matlab 路径
重启Matlab。 在MATLAB中从ROS包,创建自定义消息完成,可以订阅ROS主节点发布的自定义ROS message ,同时自己也可义发布此类型的topic 还有一个坑。 在不同的目录下转换ros 功能包。最后都需要将生成的msggen文件夹添加到Matlab路径。 由于不是在相同目录下转换,所以他们生成的msggen所在的路径不同,所以添加到Matlab路径,后一次的路径会覆盖前一次的。所以就无法找到之前的路径,之前定义的message type 就不可用,想要使用重新将msggen添加到路径即可(不需要再转换),当然他又会覆盖上一个路径。 所以最好的办法就是,将不同的功能包放置在同一个目录下转换,这样msggen是同一个。 # G, X T W2 a$ K, T/ I
|