认识ROS
创作时间:
作者:
@小白创作中心
认识ROS
引用
1
来源
1.
https://docs.openeuler.org/zh/docs/24.03_LTS/docs/ROS/%E8%AE%A4%E8%AF%86ROS.html
认识ROS
简介
ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。
ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括:
- 基于服务的同步RPC(远程过程调用)通讯;
- 基于Topic的异步数据流通讯,还有参数服务器上的数据存储。
自从2007年ROS开始以来,伴随着机器人技术的大发展,ROS的核心思想和基本软件包逐渐完善并发布了不同的ROS发行版本。下面是当前和历史的ROS发行版列表,表中以绿色标记的行是当前支持的发行版。
ROS虽然仍是机器人领域的开发利器,但介于最初设计时的局限性,也逐渐暴露出不少问题。比如:实时性差、系统开销大、对Python3支持不友好、没有加密机制安全性不高等问题。不少开发者和研究机构还针对ROS的局限性进行了改良,但这些局部功能的改善往往很难带来整体性能的提升。在ROSCon 2014上,新一代ROS的设计架构(Next-generation ROS: Building on DDS)正式公布,2015年8月31日第一个ROS2.0的alpha版本落地,之后也发布了不同的发行版本。下面是当前和历史的ROS2发行版列表,表中以绿色标记的行是当前支持的发行版。
架构
ROS总体架构如下图所示:
- OS层
- ROS1主要构建于Linux系统之上,ROS2带来了改变,支持构建的系统包括Linux、Windows、Mac、RTOS,甚至没有操作系统的裸机。
- 中间件
- ROS中最重要的一个概念就是基于发布/订阅模型的“节点”,可以让开发者并行开发低耦合的功能模块,并且便于二次复用。ROS1的通讯系统基于TCPROS/UDPROS,而ROS2的通讯系统基于DDS。DDS是一种分布式实时系统中数据发布/订阅的标准解决方案,下一小节会具体讲解。ROS2内部提供了DDS的抽象层实现,用户不需要关注底层DDS的提供厂家。
- 在ROS1的架构中Nodelet和TCPROS/UDPROS是并列的层次,为同一个进程中的多个节点提供一种更优化的数据传输方式。ROS2中也保留了这种数据传输方式,只不过换了一个名字,叫做“Intra-process”,同样也是独立于DDS。
- 应用层
- ROS1强依赖于ROS Master,可以想像一旦Master宕机,整个系统会面临如何的窘境。但是从右边ROS2的架构中我们可以发现,之前让人耿耿于怀的Master终于消失了,节点之间使用一种称为“Discovery”的发现机制来获取彼此的信息。
热门推荐
比特币的前世今生:从神秘诞生到全球关注
意法奥战争:盟友不靠谱
新车动力不足怎样进行改善?改善后怎样保持车辆的良好性能?
中国未婚女性领养孩子:法律途径与现实挑战
申月是农历几月?申月的具体时间与含义
实验室装修时地面材料的选择原则与推荐
深度优化安卓系统:清理垃圾文件、优化应用,提升手机性能及用户体验
长宁区中小学开学科技感拉满,数字化点亮活力教育
常春藤的生长习性特点和生长环境条件
加州大学洛杉矶分校会计学专业好申请吗
怀孕后应避免做哪些家务?如何减轻孕妇的家务压力?
生产一吨纸要多少棵树?揭秘纸张背后的森林消耗!
杨惠妍:从美国留学生到碧桂园掌舵人
南昌咏泰医美公司被投诉!市民花近13万元美容,术后疼痛1个月
如何高效撰写文档?掌握这些技巧让你事半功倍
硬盘损坏的症状及恢复方法:如何判断硬盘是否损坏并获取丢失的数据
个人想做量化交易,需要具备哪些知识和技能才能入门
粒级煤的特点与应用分析,助您选择合适煤种
如何查看手机系统:安卓与iOS的查看方法及注意事项
车被树砸了,保险不管该找谁?谁的树谁担责
易燃易爆还是保温高手?防火还是助燃?聚氨酯泡沫塑料的冰火两重天
一天三个机场启用新跑道,国内机场争相扩建,飞机引进却在降速
nba中詹姆斯的螃蟹步怎么个说法(詹姆斯动作特点)
电气工程中的接地极:标准做法全解析
退休后可能多一份收入,企业年金你都了解吗?
广西14市经济实力大比拼:南宁GDP超5400亿,防城港人均GDP近10万
宜春"正荣悦玲珑"楼盘房子开裂漏水等问题屡修不好 房屋验收被指走过场
婴儿换奶粉怎么转奶
春节给长辈拜年磕几个头
完美柠檬水:制作步骤与营养成分详解