找回密码
 注册
关于网站域名变更的通知
查看: 553|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-2-25 09:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-2-25 10:55 | 只看该作者
    自定义 ROS message 类型
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-20 15:03 , Processed in 0.140625 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表