前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用Matlab/Simulink构建ROS应用

利用Matlab/Simulink构建ROS应用

作者头像
Defry
发布2022-04-19 17:10:15
发布2022-04-19 17:10:15
1.3K0
举报
文章被收录于专栏:Vehicle攻城狮Vehicle攻城狮

上篇主要分享了如何建立Matlab/Simulink与ROS的通讯,这次简单介绍如何利用Matlab/Simulink进行ROS算法的搭建和验证。以常见的turtlesim为例,我们经常会启动turtle_teleop_key的ROS节点,通过移动键盘上的光标来控制小乌龟的移动,其原理是 turtle_teleop_key的节点会发布运动控制的topic:/turtle1/cmd_vel,turtlesim的节点会订阅该topic从而实现运动,运行原理图如下图所示:

其中/turtle1/cmd_vel的topic包含的rosmsg是:geometry_msgs/Twist

geometry_msgs/Twist的数据结构如下:

因此要想实现小乌龟的运动,需要在Matlab/Simulink中搭建模型,发布含有rosmsg:geometry_msgs/Twist的 /turtle1/cmd_vel topic即可实现,当只改变线速度X和角速度Z 时,小乌龟将做旋转运动,搭建的模型如下图所示:

当搭建好模型后即可进行算法的仿真验证,如上篇介绍,当建立好Matlab/Simulink与ROS的通讯后,首先在Ubuntu中运行turtlesim节点,再点击Simulink的仿真按钮即可进行该简单算法的仿真验证,从仿真结果可看到搭建的模型可满足要求。

此时需要将搭建的算法模型,生成为实际的代码,并在Ubuntu中编译成实际的ROS节点并运行,以此来检验实际的运行效果。首先在Simulink的Model Configuration Parameters—Hardware Implementation中选中Robot Operating System后点击确定,再点击代码生成按钮,即可生成相应的C++代码。

生成的代码文件如下图所示:

将上图标红的.sh和压缩文件拷贝至Ubuntu环境中,如下图所示:

再打开终端输入如下命令,即可自动将代码编译成一个名为Circle的ROS 节点。

最后在Ubuntu中运行实际的Circle节点,可看到实际运行效果同仿真结果保持一致,从背后的运行机理更能清楚的看到这一点。

该篇主要简单介绍了如何利用Matlab/Simulink构建ROS的算法并进行仿真和应用的案例,相信通过Matlab/Simulink这个强大的工具,我们可构建更多复杂而有趣的ROS应用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Vehicle攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档