创建一个空白ROS消息,并用机器人路径的X和Y位置填充它。然后将更新后的ROS消息发布到ROS网络。
简单介绍一下Blank Message模块的作用:Blank Message模块用指定的消息或服务类型创建一个空白消息。Msg块的输出是一个空白的ROS消息(总线信号)。
设置Class参数来选择ROS消息、服务请求和服务响应消息。这里我们使用的是ROS消息(总线信号)。可以使用总线分配块来修改总线信号中的特定字段。总线信号被初始化为零值(接地)。
具体操作如下:
1.在库浏览器中单击ROS工具箱选项卡,或在MATLAB命令行中键入roslib,选择ROS库。
2.将Blank Message块拖到模型中。双击该块以打开block的信息。
3.单击Message类型框旁边的Select,并从结果弹出窗口中选择geometry_msgs/Twist。
4.我们想要发布信息还需要Publish模块,双击打开后按下图所示,因为我们是要发布给/turtle1/cmd_vel去控制小乌龟运动,所以这里选择/turtle1/cmd_vel话题。
5.上面的我们提到了Blank Message输出是一个空白的ROS消息(总线信号)我们可以使用总线分配块(Bus Assignment)来修改总线信号中的特定字段。所以我们还需要一个Bus Assignment模块,具体需要选择Simulink 》 Signal Routing库中拖出一个Bus Assignment模块。
6.将空白消息块Blank Message的输出端口连接到总线分配块Bus Assignment的总线输入端口。然后将Bus Assignment块的输出端口连接到ROS Publish块的输入端口。双击总线分配块。您应该看到message信息,总线分配块允许总线中的元素被分配新的值。
左边的列表框显示了输入总线中的元素。使用选择按钮来选择要分配的元素。使用向上、向下或移除按钮重新排列选择。这里选择我们需要的X轴线速度和Z轴角速度,按下图所示操作:
7.按下图所示连接,这里我们将线速度设置为常数10和角速度设定为常数7。
8.同样要把仿真时间改为inf
9.单击Run开始模拟。Simulink为模型创建了一个专用的ROS节点,并创建了一个与Publish块相对应的ROS发布者。在模拟运行时,在MATLAB命令窗口中输入rosnode list。
这列出了ROS网络中所有可用的节点,并包括一个名称为/untitled_81473的节点(模型的名称加上一个随机数,使其具有唯一性)。在模拟运行时,在MATLAB命令窗口中输入rostopic list。这列出了ROS网络中可用的所有主题,其中包括/location。
-
matlab
+关注
关注
185文章
2974浏览量
230406 -
机器人
+关注
关注
211文章
28390浏览量
206951 -
ROS
+关注
关注
1文章
278浏览量
17004
发布评论请先 登录
相关推荐
评论