Linux下使用Simulink生成ROS代码并且运行

首先是在Linux下载matlab,我的系统是Ubuntu20.04,参考这篇文章安装的Matlab2021b,具体安装过程比较简单,我就不在赘述了。下面是我的学习过程(以自带的小海龟为例):
首先查看本机的IP地址:

ifconfig

请添加图片描述
请添加图片描述
我的地址为192.168.0.111,把这个地址在==.bashrc==文件中引入,意思是让你的引入ROS的IP:

export ROS_IP=你的IP地址

然后就是打开Simulink,切记接下来你创建的文件都要在matlab打开的工作空间内!!!
接下来就是配置Matlab的ROS环境:
1,打开roscore查看ROS_MASTER_URI:
请添加图片描述
2,在Matlab中设置环境并且初始化

setenv('ROS_MASTER_URI','http://192.168.0.111:11311')
rosinit

请添加图片描述
接下来检查ROS和Matlab的链接:
1,启动turtlesim和键盘控制节点:
请添加图片描述
2,查看运动节点:
请添加图片描述
我们知道,控制小乌龟物理学运动的节点是cmd_vel这个节点。
3,打开Simulink创建一个空白模型:
用ROS里面的subscriber来查看链接是否正常
请添加图片描述
为了方便显示,我加了几个示波器来看一下运动波形。
subscriber要链接cmd_vel节点:
请添加图片描述
上面接口接终端,下面的接口直接解析就行:
请添加图片描述
接下来就是将运行时间改为inf:
请添加图片描述

那么准备工作做完,运行之后随便打开一个示波器,接下来控制小海龟随便运动一下:
请添加图片描述
接下来将示波器停止,缩放一下XY轴看到这样就说明链接是没有问题的:
请添加图片描述
准备工作做完,接下来就可以使用Simulink生成ros代码了,具体操作如下:
因为输出的运动学数值均为Twist类型的:
请添加图片描述
所以,在simulink中,我们新建一个模板:
请添加图片描述
使用空白消息订阅Twist,采样周期依旧是inf。
接口接出来接到一个publisher上,首先得将数据解析,使用bus assignment解析:
请添加图片描述

将解析出来的数据接到publisher上,并且订阅的还是cmd_vel:
请添加图片描述

对于输入的Bus,由于我想要小海龟做圆周运动,所以对输入进行赋值操作,给x和z一个数值正好就是做圆周运动:
请添加图片描述
运行脚本可以看到小海龟是做圆周运动的,说明我们的操作都正常,可以将这些输出成代码。
最后就是将输出进行配置:
在设置中配置Hardware为ROS:
请添加图片描述
请添加图片描述
请添加图片描述
配置好之后就可以编译文件了:
请添加图片描述
接下来不出意外没有报错的话会在你的工作空间内生成两个文件:
请添加图片描述
将这两个文件编译到你的ROS工作空间内:
请添加图片描述
编译成功后在你的ROS工作空间内就会生成一个以你simulink文件为名字的文件夹:
请添加图片描述
接下来编译catkin_make生成执行文件:
请添加图片描述

运行生成的那个文件,你的小乌龟就可以动起来了:
请添加图片描述
为了对比之前调试的时候的位置,我手动调整了一下小乌龟的位置,现在形成了对比,可以看到用simulink生成ros的代码可以完美运行!
到这里最基本的内容就已经完成了,后续开发还是得下功夫多研究~~
参考视频

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Simulink ROS代码生成是指在使用Simulink进行系统建模和算法开发时,能够直接将模型转换为ROS(Robot Operating System)代码的功能。 Simulink是一种图形化的开发环境,可以帮助用户快速创建并验证算法模型。而ROS是一个开源的机器人操作系统,提供了一系列工具和库用于构建机器人应用程序。Simulink ROS代码生成使得开发人员可以在Simulink中进行模型设计和代码生成,然后将生成代码直接应用于ROS平台。 Simulink ROS代码生成的流程如下:首先,用户需要在Simulink中设计和搭建机器人应用程序的模型。然后,通过使用Simulink中的工具和块,用户可以将模型与ROS相关的库和功能进行集成,以便生成ROS平台兼容的代码。 在模型设计完成后,用户可以选择将模型转换为C++代码,或者使用ROS生成Simulink块。无论是哪种方式,Simulink都会自动将模型转换为ROS消息传递机制所需的代码和接口。 Simulink ROS代码生成的好处是简化了ROS应用的开发流程。用户可以在Simulink中进行高级算法设计和模型验证,无需手动编写相应的ROS代码代码生成后,开发人员可以直接将生成代码应用于ROS平台,而无需进行额外的代码调整或转换。 总的来说,Simulink ROS代码生成是一个方便且高效的工具,它使得使用Simulink进行算法开发和模型设计的用户能够轻松地将他们的工作应用于ROS平台,从而加速机器人应用程序的开发过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值