Simulink与ROS通信(以小乌龟为例)

Simulink与ROS通信(以小乌龟为例)

接上篇 Linux环境安装MATLAB,这里默认大家已经完成安装

更改MATLAB默认工作路径

首先要更改MATLAB的默认工作路径

redwall@redwall-G3-3500:~$ locate matlabrc.m
/usr/local/MATLAB/R2019b/toolbox/local/matlabrc.m

然后编辑该文件

redwall@redwall-G3-3500:~$ sudo gedit /usr/local/MATLAB/R2019b/toolbox/local/matlabrc.m

在文件末尾添加如下,引号中为期望设置的路径

cd '/home/redwall/MATLAB_Data/'

简单通信测试

配置完成后检查MATLAB能够操作ROS,打开小乌龟节点

redwall@redwall-G3-3500:~$ rosrun turtlesim turtlesim_node 
[ INFO] [1672839004.968318336]: Starting turtlesim with node name /turtlesim
[ INFO] [1672839004.977814450]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]

在MATLAB命令行窗口简单测试

>> rosinit
Initializing ROS master on http://redwall-G3-3500:11311/.
Initializing global node /matlab_global_node_61262 with NodeURI http://redwall-G3-3500:36741/
>> rostopic list
/rosout              
/turtle1/cmd_vel     
/turtle1/color_sensor
/turtle1/pose        
>> rostopic echo /turtle1/pose

  X               :  6.311942100524902
  Y               :  9.387969970703125
  Theta           :  2.739405870437622
  LinearVelocity  :  0
  AngularVelocity :  0
---

  X               :  6.311942100524902
  Y               :  9.387969970703125
  Theta           :  2.739405870437622
  LinearVelocity  :  0
  AngularVelocity :  0
---

  X               :  6.311942100524902
  Y               :  9.387969970703125
  Theta           :  2.739405870437622
  LinearVelocity  :  0
  AngularVelocity :  0
---

可以顺利回显小乌龟位置信息,说明MATLAB/Simulink与ROS通信正常

Simulink控制小乌龟

消息发布
在这里插入图片描述

  • 注意将Blank Message的采样时间设为-1,不然会出现小乌龟在运动一会儿就停止的问题

话题订阅
在这里插入图片描述

  • 注意将Bus Selector构建为Enabled Subsystem,IsNew输入给Enable
  • 这样可以避免没有接收到消息时输出空白消息(例如,消息的值为0)

将仿真时间设置为Inf,最终效果如下
在这里插入图片描述
Simulink可以发送速度指令给小乌龟,同时可以接受小乌龟的位置等信息,通信顺利

参考博客

ROS与Matlab语言入门教程-开始在Simulink中使用ROS

Matlab&Simulink与ROS的通讯(详细图文)

Simulink控制支持ROS的机器人(1)——控制小海龟做圆周运动

ROS与Matlab系列:一个简单的运动控制

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Simulink是一个在MATLAB软件环境中开发和模拟动态系统的集成开发环境。它提供了一个图形化编程界面,使得用户可以通过拖放模块来设计和构建系统模型,而无需编写复杂的代码。Simulink广泛应用于各种领域,包括控制系统设计、信号处理、通信系统、电力系统等。 ROS(Robot Operating System)是一个灵活、模块化的机器人软件平台,它提供了一系列工具、库和约定,用于帮助开发者构建机器人应用程序。ROS的特点是分布式计算,它通过消息传递机制来实现机器人的各个组件之间的通信和数据共享。ROS中的节点(nodes)、主题(topics)和服务(services)是实现这种分布式计算的重要概念。 SimulinkROS在机器人领域有着广泛的应用。Simulink提供了强大的仿真和控制系统设计工具,可以帮助开发者快速设计和验证机器人的控制算法。同时,Simulink还与ROS进行了集成,使得开发者可以通过Simulink模型直接生成ROS节点和主题,并使用ROS提供的工具和库,将模型部署到ROS系统中。这种集成为机器人系统的开发和测试提供了更高的效率和便利性。 总而言之,SimulinkROS是两个在机器人领域中非常有用的工具。Simulink提供了强大的建模和仿真工具,ROS则提供了分布式计算框架和机器人应用开发的必要工具。它们的集成使得机器人系统的设计、仿真和控制变得更加高效和便捷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Prejudices

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值