Simulink中使用ROS1自定义消息

简介

最近在做的项目里需要使用SimulinkROS联合仿真,这里就遇到了一个问题,Simulink无法直接使用ROS中的自定义消息,需要在MATLAB中生成一下,再引入进MATLAB中才能使用,这里简单介绍下,并分享下过程里遇到了几个问题,给一些参考。

前提条件

系统:Windows11
MATLAB版本:2021b
ROS版本:ROS noetic

此外还需要下载Python2.7CMake这两个版本倒没有什么要求,由于MATLAB 2021b自带ROS Toolbox,所以Robotics System Toolbox Interface for ROS Custom Messages这个插件不需要下载,另一个要下载的是VS2019,这里要用到VS2019里的编译器,而且VS2019是支持MATLAB 2021b的,换VS2022的话要用更高版本的MATLAB,这里未作尝试,其实我觉得更高版本的MATLAB问题应该会少不少。

VS2019的安装包我放在了gitee仓库,有需要可以去下载。

操作流程

参照matlab simulink与 ros通信时messgae注册教程。

其实只要rosgenmsg能执行完,按照MATLAB提示进行操作就可以了,不过这之前还会遇到几个小问题。
操作

问题一

首先就是执行rosgenmsg报找不到Python,即使安装Python后在MATLAB里使用pyversion命令会显示我们安装的Python,这里也还是报错,这里需要使用命令手动设置一下,设置如下:

pyversion('C:\Python27\python.exe')

问题二

之后执行rosgenmsg还会报找不到CMake,这里查到是因为MATLAB 2021b本身的bug,需要修改提示出错的那个.m文件,修改如下:
文件

问题三

最后一个问题就是执行rosgenmsg还会报没有编译器,这里试了直接用MinGW发现还是不行,参考别人的经验发现可以使用VS2019的编译器,只是不知道为什么在此之前还需要下载MinGWMATLAB插件才能使用 mex -setup C++来选择VS2019的编译器,MinGW的插件也放在了gitee仓库

吐槽

近期实在有点搞,基本每天都是灵魂三问:“我是谁,我在哪,我在干什么”,有点离谱,我一个做汽车电子嵌入式软件开发的被临时拉来要做自动驾驶,ROSSimulinkTruckSim,人麻了QAQ。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值