Matlab中创建一个Message方法

描述

创建一个空白ROS消息,并用机器人路径的X和Y位置填充它。然后将更新后的ROS消息发布到ROS网络。

简单介绍一下Blank Message模块的作用:Blank Message模块用指定的消息或服务类型创建一个空白消息。Msg块的输出是一个空白的ROS消息(总线信号)。

设置Class参数来选择ROS消息、服务请求和服务响应消息。这里我们使用的是ROS消息(总线信号)。可以使用总线分配块来修改总线信号中的特定字段。总线信号被初始化为零值(接地)。

matlab

具体操作如下:

1.在库浏览器中单击ROS工具箱选项卡,或在MATLAB命令行中键入roslib,选择ROS库。

2.将Blank Message块拖到模型中。双击该块以打开block的信息。

3.单击Message类型框旁边的Select,并从结果弹出窗口中选择geometry_msgs/Twist。

matlab

4.我们想要发布信息还需要Publish模块,双击打开后按下图所示,因为我们是要发布给/turtle1/cmd_vel去控制小乌龟运动,所以这里选择/turtle1/cmd_vel话题。

matlab

5.上面的我们提到了Blank Message输出是一个空白的ROS消息(总线信号)我们可以使用总线分配块(Bus Assignment)来修改总线信号中的特定字段。所以我们还需要一个Bus Assignment模块,具体需要选择Simulink 》 Signal Routing库中拖出一个Bus Assignment模块。

matlab

6.将空白消息块Blank Message的输出端口连接到总线分配块Bus Assignment的总线输入端口。然后将Bus Assignment块的输出端口连接到ROS Publish块的输入端口。双击总线分配块。您应该看到message信息,总线分配块允许总线中的元素被分配新的值。

左边的列表框显示了输入总线中的元素。使用选择按钮来选择要分配的元素。使用向上、向下或移除按钮重新排列选择。这里选择我们需要的X轴线速度和Z轴角速度,按下图所示操作:

matlab

7.按下图所示连接,这里我们将线速度设置为常数10和角速度设定为常数7。

matlab

8.同样要把仿真时间改为inf

matlab

9.单击Run开始模拟。Simulink为模型创建了一个专用的ROS节点,并创建了一个与Publish块相对应的ROS发布者。在模拟运行时,在MATLAB命令窗口中输入rosnode list。

这列出了ROS网络中所有可用的节点,并包括一个名称为/untitled_81473的节点(模型的名称加上一个随机数,使其具有唯一性)。在模拟运行时,在MATLAB命令窗口中输入rostopic list。这列出了ROS网络中可用的所有主题,其中包括/location。

matlab

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分