ROS原理与技术应用 课件 3-4 完成ROS通信系统的构建.pptx

ROS原理与技术应用 课件 3-4 完成ROS通信系统的构建.pptx

《ROS原理与技术应用》能力模块三掌握自动驾驶系统的安装与使用方法任务四完成ROS通信系统的构建

导入在ROS的世界里面,最小的进程单元就是节点(node),通常来说一个节点负责整个机器人系统中某一个单独的功能往往实际情况中,整体系统的功能多,运行节点数量也非常庞大,了解节点分布结构以及各节点之间如何通信就成为了学习ROS必不可少的一步。

目录CONTENTS010203ROS系统常见术语节点(node)ROS通信

新授

一、ROS系统常见术语01节点(node)02主节点(master)03消息(msg)04话题(topic)05服务(service)06动作(action)

一、ROS系统常见术语1.节点(note)节点是指在ROS中运行的最小进程单元。可以把它看作一个可执行程序或一个小的功能模块。例如,自动驾驶车辆可能会把激光雷达定义为一个节点,深度摄像头是另一个节点,线控底盘也是一个节点。在ROS中注重各个功能模块的复用,经常将较复杂的功能细分为多个节点,提升节点的可复用型,有利于提升变成效率。

一、ROS系统常见术语2.主节点(master)主节点负责节点到节点的连接和消息通信,类似于节点管理器的作用。当节点运行时,需要向主节点注册自己的信息(节点名,发布/接收的话题名、服务名、消息类型等),通过主节点建立起节点间的访问和消息的传递。智慧猫的决策单元就充当了这个主节点的角色。

一、ROS系统常见术语3.消息(msg)节点之间通过消息来发送和接收数据。消息里包括消息的简单数据结构。使用消息的通信方法包括TCPROS,UDPROS等。每一条消息都要发布到相应的话题。例如定义一个名为障碍物的消息类型,消息中包含的五个字段,分别是障碍物的长度、宽度、高度、运动线速度和运动角速度。

一、ROS系统常见术语4.话题(topic)话题可以理解为是某一类消息的总称,发布者(publisher)和订阅者(subscriber)通过向主节点注册话题名,来建立相互之间的连接,通过TCPROS/UDPROS来实现具体消息的传递。话题是一种异步通信方式,一个话题可以有多个订阅者,发布者和订阅者之间是相互解耦的,发布者发布话题时不需要有订阅者,订阅者订阅话题时不需要有发布者。话题的名称在功能包里必须具有唯一性。例如自动驾驶车辆的摄像头、驱动系统和制动系统都被分别定义为单独的一个节点。摄像头节点发布一个检测路面是否出现行人的主题,频率为20Hz,摄像头此时就充当一个主题发布者的角色。再定义动系统和制动系统三个节点都去订阅这个检测路面行人的主题,那么这三个节点就充当该主题的订阅者。如果前方出现行人,驱动系统停止工作,制动系统则会同步开启制动车辆。

二、节点(node)节点间通信的架构如图:节点名在系统中必须唯一。节点可以采用C++或Python语言来进行编写。所有节点启动的时候都要在主节点进行注册,因此在运行节点的时候,必须要先启动主节点(master),否则启动的时候会报错。rosnode是节点处理的工具,与之匹配的命令如图

二、节点(node)启动主节点的常用命令如下:主节点启动后,才能够启动的其它节点。启动其它节点命令的格式如下:$rosrun[功能包名][可执行文件名]1.启动节点启动主节点:在新窗口中启动小海龟节点:在新窗口中启动键盘控制节点:2.查看当前运行的节点:命令执行后,可以看到当前运行的节点如图所示其中“/turtlesim”节点是小海龟节点,“/teleop_turtle”节点是键盘控制节点,“/rosout”是用于接收所有节点输出的节点,该节点一般可以不用关注。

二、节点(node)3.查看节点信息(以/turtlesim为例):查看到的节点信息如图所示,可以看到节点订阅的话题,发布的话题,以及节点包含的服务。

二、节点(node)详细节点内容如下:

二、节点(node)查看节点关系图:在新的命令窗口中输入如下命令:显示的节点关系如图

三、ROS通信ROS系统中主要的通信方式有话题(Topic)、服务(Service)和动作(Action)三种。话题(Topic)是最常用的一种。对于实时性、周期性的消息,使用话题(Topic)来传输是最佳的选择。话题(Topic)是一种点对点的单向通信方式,这里的“点”指的是节点(node)。话题(Topic)通信时,首先需要publisher节点和subscriber节点都到节点管理器进行注册,然后publisher会发布topic,subscriber在master的指挥下会订阅该topic,从而建立起sub-pub之间的通信。注意整个过程是单向的。服务(Service)方式在通信模型上与topic做了区别。服务(Service)通信是双向的,它不仅可以

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档