【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

这篇具有很好参考价值的文章主要介绍了【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么要推出ROS2?

2010年,ROS1首次发布正式版本,其研发的初衷是为设计PR2(个人服务型机器人)共用的软件架构。但随着ROS1技术的普及,ROS1开始广泛融入各领域无人系统的研发,陆续暴露了系统的诸多问题。为了适应新时代机器人研发的需要,2022年5月,ROS开发者团队推出新版本ROS2。

(一)ROS1的诞生

2007年,斯坦福大学学生为开发PR2(个人服务型机器人)共用的软件架构,设计ROS的原型。2010年,Willow Garage公司推出ROS1的首个发行版。

(二)ROS1存在的问题

ROS1最早的设计目标:针对家庭服务机器人PR2,设计一款共用开发的软件架构。

(1)PR2特点

  • 体积大,算力充足:它搭载了工作站级别的计算平台和各种先进的通信设备,不用担忧算力不够,有足够的实力支持各种复杂的实时运算和处理;
  • 通讯可靠:由于是单兵作战,通信绝大部分都自己内部完成,那就可以用有线连接,保证了良好的网络连接,没有丢数据或者黑客入侵的风险;
  • 实验室产品,没有工程应用:这台机器人最终虽然小批量生产,但是由于高昂的成本和售价,也只能用于学术研究。
    【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

(2)ROS1存在问题

随着ROS1技术的普及,ROS1融入各领域无人系统的研发。原本仅针对PR2设计的软件架构,就出现诸多问题:

  • 资源需求大:需要在资源有限的嵌入式系统中运行;
  • 系统抗干扰差:要在有干扰的地方保证通信的可靠性;
  • 产品应用差:要做成产品走向市场,甚至用在自动驾驶汽车和航天机器人上。

(三)ROS2设计思路

(1)ROS2针对场景

  • 多机器人系统:ROS2为多机器人系统的应用提供了标准方法和通信机制。
  • 跨平台:机器人应用场景不同,使用的控制平台也会有很大差异,为了让所有机器人都可以运行ROS2,ROS2可以跨平台运行于Linux、Windows、MacOS、RTOS,甚至是没有任何系统的微控制器(MCU)上。
  • 实时性:机器人运动控制和很多行为策略要求机器人具备实时性,比如机器人要可靠得在100ms内发现前方的行人,或者稳定的在1ms周期内完成运动学、动力学的解算,ROS2为类似这样的实时性需求提供了基本保障。
  • 网络连接:无论在怎样的网络环境下,ROS2都可以尽量保障机器人大量数据的完整性和安全性,比如在wifi信号不好的时候数据也要尽力发送过去,在有黑客入侵风险的场景下要对数据进行加密解密。
  • 产品化:大量机器人已经走向我们的生活,未来还会越来越多,ROS2不仅可以用于机器人研发阶段,还可以直接搭载在产品中,走向消费市场,这对ROS2的稳定性、强壮性也提除了巨大挑战。
  • 项目管理:机器人开发是一个复杂的系统工程,设计、开发、调试、测试、部署等全流程的项目管理工具和机制,也会在ROS2中体现,更方便我们去开发一款机器人。

(2)设计思路

ROS开发团队从长远角度考虑,选择推翻ROS1的软件架构,设计全新的ROS2操作系统。对系统架构、软件代码、系统编译均做出全面升级。

  • 系统架构:借助DDS通信架构,实现系统分布式
  • 软件接口:ROS2结合C++和Python3的最新标准,重新设计API接口
  • 系统编译:对大工程和python工程,更加友好。
    【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

二、ROS2系统特性

(一)系统架构

【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

  • 进程管理:在ROS1中,需要开启中央节点管理器Master,统一管理所有节点。如果Master节点出现故障,将严重影响ROS系统功能。在ROS2中,系统引入节点自发现机制,可有效提高系统鲁棒性。
  • 进程内通信:进程内部进行通信,ROS1和ROS2均采用共享内存的方式。
  • 进程间通信:在ROS1中,进程间进行通信主要依赖于底层的TCP\UDP协议,但是在ROS2中,引入复杂的DDS系统。

(二)通信架构

【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

ROS1是基于TCP/UDP通信系统,具有高延迟、丢数据、无法加密等特点。而ROS2在通信层面使用DDS通信协议。
DDS是物联网中一种通信协议,具有多个版本,DDS是一个国际标准,能够实现该标准的软件系统并不是唯一的。多个厂家可以提供的DDS系统,比如OpenSplice、FastRTPS等,每一家的性能不同,适用的场景也不同。
每一个厂家的软件接口是不同的,为了解决这个问题,ROS2设计了一个ROS Middleware,简称RMW,也就是指定一个标准的接口。比如如何发数据,如何收数据,数据的各种属性如何配置,都定义好了,如果厂家想要接入ROS社区,就得按照这个标准写一个适配的接口,把自家的DDS给移植过来,这样就把问题交给了最熟悉自家DDS的厂商。对于我们这些用户来讲,某一个DDS用的不爽,只要安装另一个,然后做一个简单的配置,程序一行的都不用改,轻松更换底层的通信系统。
对于开发者,在产品研发阶段,可以使用开源的DDS满足产品基本需求,在部署交付阶段,可以更换到更加稳定的DDS版本,以减小开发成本。
(三)核心概念
为了ROS开发者开发的延续性,ROS2保留了ROS1的基本概念。
【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》

ROS2系统学习,可参考:古月居ROS2入门21讲文章来源地址https://www.toymoban.com/news/detail-490985.html

到了这里,关于【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis—Redis介绍(是什么/为什么快/为什么做MySQL缓存等)

    一、Redis是什么 Redis 是一种 基于内存的数据库 ,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于 缓存,消息队列、分布式锁等场景 。         Redis 提供了多种数据类型来支持不同的业务场景,比如 String(字符串)、Hash(哈希)、 List (列表)、Set(集合)、

    2024年02月10日
    浏览(67)
  • 电脑bios使用的uefi启动,系统盘使用的mbr格式,为什么安装完系统无法进入?

      在电脑的安装系统过程中,我们会遇到一些问题,比如说使用UEFI启动但是磁盘分区使用MBR格式,导致系统安装完成之后无法引导。这是因为UEFI启动只支持GPT格式的磁盘分区。 在本文中,我们将探讨如何将磁盘转换成GPT格式,并重新安装系统,以便正确地引导系统。    

    2024年02月12日
    浏览(60)
  • 你用过猿如意吗?猿如意可以使用ChatGPT哦,这里详细介绍了猿如意的功能,为什么我建议你使用猿如意,来看看吧

    你是否还在为为每次安装IDE(集成开发工具)要去各种网站找教程而烦恼? 你是否还在为各种文本格式转换而头痛? 你是否在为斗图都不过兄弟们而卑微? 你是否在为互联网中庞大冗杂却低效的教程文档而崩溃? 你想不想有一个关于代码的模板库? 你想不想不用\\\"科技\\\"就使

    2023年04月13日
    浏览(50)
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍

    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 在密码中一般是:明文+密钥-密文(加密) ,密文+密钥-明文(解密) 那么为什么大家放弃了原有的http换为https呢? 这我们就要先介绍一下H

    2024年02月08日
    浏览(53)
  • SaaS是什么?企业为什么要有SaaS系统?

    什么是SaaS系统?企业为什么要有SaaS系统? 近几年, SaaS突然变成了一个热门词汇 ,无论是一些权威报告,还是 知乎上知友们热烈的讨论,对于Saas系统可谓是各有各的见解和看法。 今天就综合几位答主的观点,以及我个人的见解,为大家解释下,到底什么是SaaS系统。 想要

    2023年04月20日
    浏览(64)
  • 我们为什么需要分布式系统?

    简单来说,分布式系统的出现,主要是为了解决单体系统的不足。 分布式系统解决了单机性能瓶颈导致的成本问题。由于摩尔定律失效,廉价PC机的性能瓶颈无法继续突破,虽然小型机和大型机能够实现更高的单机性能,但是成本太高。 分布式系统解决了用户量和数据量爆炸

    2023年04月11日
    浏览(77)
  • 什么是分布式操作系统?我们为什么需要分布式操作系统?

    分布式操作系统是一种特殊的操作系统,本质上属于多机操作系统,是传统单机操作系统的发展和延伸。它是将一个计算机系统划分为多个独立的计算单元(或者也可称为节点),这些节点被部署到每台计算机上,然后被网络连接起来,并保持着持续的通信状态。在分布式操作

    2024年02月16日
    浏览(55)
  • 为什么不用Go开发操作系统?

      操作系统 (OS) 是计算机系统的心脏和灵魂,它管理着计算机的硬件和软件资源,并为用户提供与计算机交互的方式。传统上,C 和 Assembly 等语言因其低开销和 “接近机器码” 的特性而被用于开发操作系统。 但诸如 Go 等高级语言的兴起引入了一些特性,这些特性或许可以使

    2024年02月06日
    浏览(61)
  • 我们为什么需要API管理系统?

    我们为什么需要API管理系统? 随着web技术的发展,前后端分离成为越来越多互联网公司构建应用的方式。前后端分离的优势是一套Api可被多个客户端复用,分工和协作被细化,大大提高了编码效率,但同时也带来一些“副作用”: 接口文档不可靠。很多小伙伴管理接口文档,

    2024年02月12日
    浏览(73)
  • 为什么很多程序员喜欢linux系统?

    a Linux哪些行业在运用? Linux系统运用极其广泛,不少用户只知道windows,是因为,Linux的运用主要是在企业端。现在科技极其发达,我们手机在手,就能干很多事情,只需点一点屏幕,轻松完成聊天、娱乐、甚至支付功能。这些操作看似简单,但其背后,有一系列复杂请求和响

    2024年02月03日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包