当前位置:网站首页>【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》
【ROS2】为什么要使用ROS2?《ROS2系统特性介绍》
2022-06-25 06:32:00 【后厂村路蔡徐坤】
文章目录
一、为什么要推出ROS2?
2010年,ROS1首次发布正式版本,其研发的初衷是为设计PR2(个人服务型机器人)共用的软件架构。但随着ROS1技术的普及,ROS1开始广泛融入各领域无人系统的研发,陆续暴露了系统的诸多问题。为了适应新时代机器人研发的需要,2022年5月,ROS开发者团队推出新版本ROS2。
(一)ROS1的诞生
2007年,斯坦福大学学生为开发PR2(个人服务型机器人)共用的软件架构,设计ROS的原型。2010年,Willow Garage公司推出ROS1的首个发行版。
(二)ROS1存在的问题
ROS1最早的设计目标:针对家庭服务机器人PR2,设计一款共用开发的软件架构。
(1)PR2特点
- 体积大,算力充足:它搭载了工作站级别的计算平台和各种先进的通信设备,不用担忧算力不够,有足够的实力支持各种复杂的实时运算和处理;
- 通讯可靠:由于是单兵作战,通信绝大部分都自己内部完成,那就可以用有线连接,保证了良好的网络连接,没有丢数据或者黑客入侵的风险;
- 实验室产品,没有工程应用:这台机器人最终虽然小批量生产,但是由于高昂的成本和售价,也只能用于学术研究。
(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系统特性
(一)系统架构
- 进程管理:在ROS1中,需要开启中央节点管理器Master,统一管理所有节点。如果Master节点出现故障,将严重影响ROS系统功能。在ROS2中,系统引入节点自发现机制,可有效提高系统鲁棒性。
- 进程内通信:进程内部进行通信,ROS1和ROS2均采用共享内存的方式。
- 进程间通信:在ROS1中,进程间进行通信主要依赖于底层的TCP\UDP协议,但是在ROS2中,引入复杂的DDS系统。
(二)通信架构
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入门21讲
边栏推荐
- Ht513 I2S input 2.8W mono class D audio power amplifier IC
- With a younger brother OCR, say no to various types of verification codes!
- In a single-page app, what is the right way to deal with wrong URLs (404 errors)?
- Arm register (cortex-a), coprocessor and pipeline
- We cannot activate inspection type for article master in transaction code MM41?
- Introduction to sap ui5 tools
- [hand torn STL] Stack & queue
- Personal blog system graduation project opening report
- Query process of MySQL secondary index
- ACWING/2004. 错字
猜你喜欢
Personal blog system graduation project opening report
VMware virtual machine prompt: the virtual device ide1:0 cannot be connected because there is no corresponding device on the host.
Self adjustment process of MySQL index tree when adding data
Wechat applet authorization login + mobile phone sending verification code +jwt verification interface (laravel8+php)
Digitalization, transformation?
Large funds support ecological construction, and Plato farm builds a real meta universe with Dao as its governance
How to realize hierarchical management of application and hardware in embedded projects
[network security] sharing of experience and ideas of an emergency battle
Cs5092 5V USB input boost two section lithium battery charging management IC, SOT23-6 miniature package
[hand torn STL] Stack & queue
随机推荐
Why can't GC () free memory- Why does gc() not free memory?
Report on the application prospect and investment potential of global and Chinese cell therapy industry 2022-2028
Exercise: completion
Brief introduction and use of JSON
With a younger brother OCR, say no to various types of verification codes!
What does cardinality mean in set
Viewing Chinese science and technology from the Winter Olympics (V): the Internet of things
Methods for obtaining some information of equipment
ASP. Net core - Safety of asynclocal in asp NET Core
Cs8683 (120W mono class D power amplifier IC)
Global and Chinese gallium nitride (GAN) market output value scale forecast and application prospect analysis report 2022
Microsoft issued a document to celebrate Net 20th anniversary!
Can TCP syn handshake messages transmit data
How to realize the stable output of 3.3v/3.6v (1.2-5v) voltage of lithium battery by using the voltage rise and fall chip cs5517
Understand what ICMP Protocol is
STL map的用法
DataX tutorial (10) - hot plug principle of dataX plug-in
[core content and derivation] the mystery of human memory system may be just like this
JS to determine whether an element exists in the array (four methods)
Drosophila played VR and entered nature. It was found that there were attention mechanisms and working memory. The insect brain was no worse than that of mammals