电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于ROS的智能汽车设计与实训教程第八章

28页
  • 卖家[上传人]:小萌新****ao
  • 文档编号:367615607
  • 上传时间:2023-11-09
  • 文档格式:PPT
  • 文档大小:1.08MB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、8.1 话题Node在ROS的世界里,最小的进程单元就是节点(node)。一个软件包里可以有多个可执行文件,可执行文件在运行之后就成了一个进程(process),这个进程在ROS中就叫作节点。从程序角度来说,node就是一个可执行文件(通常为C+编译生成的可执行文件、Python脚本),被执行并加载到了内存之中;从功能角度来说,通常一个node负责着机器人的某一个单独的功能。由于机器人的功能模块非常复杂,我们往往不会把所有功能都集中到一个node上,而会采用分布式的方式,把鸡蛋放到不同的篮子里。18.1 话题Master由于机器人的元器件很多,功能庞大,因此实际运行时往往会运行众多的node,这些node负责感知世界、控制运动、决策和计算等功能。那么如果要进行调配、管理这些node的话,就要利用ROS提供给我们的节点管理器master,master在整个网络通信架构里相当于管理中心,管理着各个node。node首先在master处进行注册,之后master会将该node纳入整个ROS程序中。node之间的通信也是先由master进行“牵线”,才能两两的进行点对点通信。当ROS程序启动时

      2、,第一步首先启动master,由节点管理器处理依次启动node。28.1 话题启动master和node当我们要启动ROS时,首先输入命令:$roscore此时ROS master启动,同时启动的还有rosout和parameter server,其中rosout是负责日志输出的一个节点,其作用是告知用户当前系统的状态,包括输出系统的error、warning等等,并且将log记录于日志文件中,parameter server 即是参数服务器,它并不是一个node,而是存储参数配置的一个服务器。每一次我们运行ROS的节点前,都需要把master启动起来,这样才能够让节点启动和注册。启动master之后,节点管理器就开始按照系统的安排协调进行启动具体的节点。节点就是一个进程,只不过在ROS中它被赋予了专用的名字里node。我们知道一个package中存放着可执行文件,可执行文件是静态的,当系统执行这些可执行文件,将这些文件加载到内存中,它就成为了动态的node。具体启动node的语句是:$rosrun pkg_name node_name3通常我们运行ROS,就是按照上面的顺序启动,有时

      3、候节点太多,我们会选择用launch文件来启动。Master、Node之间以及Node之间的关系如图所示。8.1 话题4机器人是一个系统工程,通常一个机器人运行操作时要开启很多个node,对于一个复杂的机器人的启动操作并不需要每个节点依次进行rosrun,ROS为我们提供了一个命令能一次性启动master和多个node。该命令是:$roslaunch pkg_name file_name.launchroslaunch命令首先会自动进行检测系统的roscore有没有运行,也即是确认节点管理器是否在运行状态中,如果master没有启动,那么roslaunch就会首先启动master,然后再按照launch的规则执行。8.1 话题launch文件58.1 话题ROS的通信方式是ROS最为核心的概念,ROS系统的精髓就在于它提供的通信架构。ROS的通信方式有以下四种:Topic话题Service服务Parameter Service参数服务器Actionlib动作库ROS中的通信方式中,topic是常用的一种。对于实时性、周期性的消息,使用topic来传输是最佳的选择。topic是一种点对点

      4、的单向通信方式,这里的“点”指的是node,也就是说node之间可以通过topic方式来传递信息。Topic68.1 话题topic要经历下面几步的初始化过程:首先,publisher节点和subscriber节点都要到节点管理器进行注册,然后publisher会发布topic,subscriber在master的指挥下会订阅该topic,从而建立起sub-pub之间的通信。注意整个过程是单向的。Topic78.1 话题ROS是一种分布式的架构,一个topic可以被多个节点同时发布,也可以同时被多个节点接收。比如在这个场景中用户可以再加入一个图像显示的节点,如果想看摄像头节点的画面,则可以用自己的笔记本连接到机器人上的节点管理器,然后在自己的电脑上启动图像显示节点。这就体现了分布式系统通信的好处:扩展性好、软件复用率高。总结三点:(1)topic通信方式是异步的,发送时调用publish()方法,发送完成立即返回,不用等待反馈。(2)subscriber通过回调函数的方式来处理消息。(3)topic可以同时有多个subscribers,也可以同时有多个publishers。ROS中这样

      5、的例子有:/rosout、/tf等等。8Message8.1 话题Message按照定义解释就是topic内容的数据类型,也称之为topic的格式标准。这里和我们平常用到的Massage直观概念有所不同,这里的Message不单单指一条发布或者订阅的消息,也指定为topic的格式标准。基本的msg包括bool、int8、int16、int32、int64(以及uint)、float、float64、string、time、duration、header、可变长数组array、固定长度数组arrayC。9上一节我们介绍了ROS的通信方式中的topic(话题)通信,我们知道topic是ROS中的一种单向的异步通信方式。然而有些时候单向的通信满足不了通信要求,比如当一些节点只是临时而非周期性的需要某些数据,如果用topic通信方式时就会消耗大量不必要的系统资源,造成系统的低效率高功耗。这种情况下,就需要有另外一种请求-查询式的通信模型。这节我们来介绍ROS通信中的另一种通信方式service(服务)。8.2 服务108.2 服务service方式在通信模型上与topic做了区别。Servic

      6、e通信是双向的,它不仅可以发送消息,同时还会有反馈。所以service包括两个部分,一部分是请求方(Clinet),另一部分则是应答方/服务提供方(Server)。这时请求方(Client)就会发送一个request,要等待server处理,反馈回一个reply,这样通过类似“请求-应答”的机制完成整个服务通信。118.2 服务Service是同步通信方式,所谓同步就是说,此时Node A发布请求后会在原地等待reply,直到Node B处理完了请求并且完成了reply,Node A才会继续执行。Node A等待过程中,是处于阻塞状态的成通信。这样的通信模型没有频繁的消息传递,没有冲突与高系统资源的占用,只有接受请求才执行服务,简单而且高效。名称名称TopicService通信方式通信方式异步通信同步通信实现原理实现原理TCP/IPTCP/IP通信模型通信模型Publish-SubscribeRequest-Reply映射关系映射关系Publish-Subscribe(多对多)Request-Reply(多对一)特点特点接受者收到数据会回调(Callback)远程过程调用(RPC)服务

      7、器端的服务应用场景应用场景连续、高频的数据发布偶尔使用的功能/具体的任务举例举例激光雷达、里程计发布数据开关传感器、拍照、计算topic和service对比128.2 服务在实际应用中,service通信方式的命令时rosservice 具体的命令参数如下表:rosservice命令命令作用作用rosservice list显示服务列表rosservice info打印服务信息rosservice type打印服务类型rosservice uri打印服务ROSRPC urirosservice find按服务类型查找服务rosservice call使用所提供的args调用服务rosservice args打印服务参数138.2 服务 类似msg文件,srv文件是用来描述服务(service数据类型的,service通信的数据格式定义在*.srv中。它声明了一个服务,包括请求(request)和响应(reply)两部分。rosservice 具体的命令参数如下表:rosservice命令命令作用作用rosservice list显示服务列表rosservice info打印服务信息ro

      8、sservice type打印服务类型rosservice uri打印服务ROSRPC urirosservice find按服务类型查找服务rosservice call使用所提供的args调用服务rosservice args打印服务参数148.3 动作 Actionlib是ROS中一个很重要的库,类似service通信机制,actionlib也是一种请求响应机制的通信方式,actionlib主要弥补了service通信的一个不足,就是当机器人执行一个长时间的任务时,假如利用service通信方式,那么publisher会很长时间接受不到反馈的reply,致使通信受阻。当service通信不能很好的完成任务时候,actionlib则可以比较适合实现长时间的通信过程,actionlib通信过程可以随时被查看过程进度,也可以终止请求,这样的一个特性,使得它在一些特别的机制中拥有很高的效率。Action的工作原理是client-server模式,也是一个双向的通信模式。通信双方在ROSAction Protocol下通过消息进行数据的交流通信。client和server为用户提供一个简单

      9、的API来请求目标或通过函数调用和回调来执行目标。客户端会向服务器发送目标指令和取消动作指令,而服务器则可以给客户端发送实时的状态信息,结果信息,反馈信息等等,从而完成了service没法做到的部分。158.3 动作 利用动作库进行请求响应,动作的内容格式应包含三个部分:目标、反馈、结果。(1)目标机器人执行一个动作,应该有明确的移动目标信息,包括一些参数的设定,方向、角度、速度等等。从而使机器人完成动作任务。(2)反馈在动作进行的过程中,应该有实时的状态信息反馈给服务器的实施者,告诉实施者动作完成的状态,可以使实施者作出准确的判断去修正命令。(3)结果当运动完成时,动作服务器把本次运动的结果数据发送给客户端,使客户端得到本次动作的全部信息,例如可能包含机器人的运动时长,最终姿势等等。168.4 参数 参数服务器是特殊的“通信方式”。特殊点在于参数服务器是节点存储参数的地方、用于配置参数,全局共享参数。参数服务器使用互联网传输,在节点管理器中运行,实现整个通信过程。参数服务器,其作为ROS中另外一种重要的数据传输方式,有别于topic和service,它更加的静态。参数服务器维护着一个

      10、数据字典,字典里存储着各种参数和配置。178.4 参数字典简介 何为字典,其实就是一个个的键值对,我们小时候学习语文的时候,常常都会有一本字典,当遇到不认识的字了我们可以查部首查到这个字,获取这个字的读音、意义等等,而这里的字典可以对比理解记忆。键值kay可以理解为语文里的“部首”这个概念,每一个key都是唯一的。每一个key不重复,且每一个key对应着一个value。也可以说字典就是一种映射关系,在实际的项目应用中,因为字典的这种静态的映射特点,我们往往将一些不常用到的参数和配置放入参数服务器里的字典里,这样对这些数据进行读写都将方便高效。188.5 信息通信过程运行主节点 节点之间的消息通信当中,管理连接信息的主节点是为使用ROS必须首先运行的必需元素。ROS主节点使用roscore命令来运行,并使用XMLRPC运行服务器。主节点为了节点与节点的连接,会注册节点的名称、话题、服务、动作名称、消息类型、URI地址和端口,并在有请求时将此信息通知给其他节点。198.5 信息通信过程运行订阅者节点 订阅者节点使用rosrun或roslaunch命令来运行。订阅者节点在运行时向主节点 注册

      《基于ROS的智能汽车设计与实训教程第八章》由会员小萌新****ao分享,可在线阅读,更多相关《基于ROS的智能汽车设计与实训教程第八章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.