Simulink下ROS代码生成

科技   2024-12-26 07:52   福建  

【思想】是没想到,Simulink的ROS工具箱居然也能支持代码生成!之前本公众号花费了大量的时间介绍Simulink生成嵌入式C语言和C++代码。其实,大部分基础知识都差不多(比如:数据字典、信号绑定等等)。

创建Simulink数据字典

【MBD开发】Simulink生成的C++代码及应用集成

Sinmulink代码生成基础体验教程

Simulink代码生成应用教程

Simulink代码生成提高教程

重复的内容就不想再重复了,有需要深入了解的老铁请戳上面链接。

Simulink的Ros工具箱

如果还没使用过Simulink Ros工具箱的老铁可以点击上面链接,回顾下往期内容。


01

配置编译模板

在【Configuration Parameters】窗口的【Code Generation】选项卡中将编译模板设置成ert.tlc。不一样的是在ToolChain要设置成Catkin,因为ROS/ROS2使用的就是Catkin编译器。

02

设置硬件类型

在【Hardware Implementation】选项卡中对硬件进行设置,这里选择AMD的x86-64平台,硬件选Robot Operation System。

03

生成代码

检查下模型的其他设置,没问题后在C++ CODE中点击BUILD,不管是CRUISE/Simulink联合仿真,还是嵌入式代码生成,这个步骤都一样。

04

代码打包

但是,点击BUID按钮后还不算真正编译完成,可以直接运行。说到底这只是把生成的代码打包了,还没执行Catkin Build。

看Matlab的当前目录,多出来了这三个玩意,分别是:生成的代码、bash脚本和代码压缩包。而其中的build_ros_model.sh就是需要我们自己在终端中运行的编译脚本。

第一次看到这个脚本肯定不知道如何使用,尝试在运行下看看什么提示!看懂这个步骤应该只需要0.6级的英语水平就可以了。主要就是运行bash脚本需要带入的参数,和需要一个catkin工作目录。这里其实有一个小坑,如果原先没有catkin工作目录需要使用catkin_init_workspace外还需要执行下catkin_make才能完成初始化。


./build_ros_model.sh myrossimulink_pub.tgz ~/catkin_ws

根据说明执行脚本,顺利完成编译!接下来就是运行了

05

运行代码

source devel/setup.bash

在catkin_ws目录中source一下,加载包的路径信息。

rosrun myrossimulink_pub myrossimulink_pub_node

在已经启动roscore的情况下,使用rosrun执行运行刚刚编译的包中的节点

理论上没有出现ERROR红色提示就算运行成功

使用rqt_plot查看/my_topic中的数值变化,再次确认编译运行成功!

之前的文章《自动驾驶是否需要Simulink》中,好像没有给出结论,也没有阐述【思想】的观点。其实,个人还是觉得直接手撕代码比较爽,费这么大劲搞了一个RollingCount功能。如有喜欢的老铁,赶紧点赞+分享


扫码或长按识别

        关注 

古德曼汽车工业







古德曼汽车工业
分享交流传统/新能源汽车领域的经验与知识,分享自制作小工具提高你我工作效率
 最新文章