[翻译]ROS2介绍

原文:8.2 ROS 2 · GitBook

ROS2的前身是ROS,ROS即Robot Operating System(机器人操作系统)。但是ROS本身并不是一个操作系统,而是一个软件库和工具集。ROS的出现解决了机器人各个组件的通讯问题。后来越来越多的机器人算法被集成到ROS中。ROS2继承了ROS,比ROS更强大,更优秀。

1 ROS2的设计目标和特点

ROS2肩负着改变智能机器人时代的历史使命,设计之初就考虑满足各类机器人应用的需求。

  • 多机器人系统:未来的机器人不再是独立的个体,机器人之间也需要通信和协作。ROS2为多机器人系统的应用提供了标准的方法和通信机制。

  • 跨平台:机器人应用场景不同,采用的控制平台也会有很大差异。为了让所有机器人都能运行ROS2,ROS2可以跨平台运行在Linux、Windows、MacOS、RTOS上。

  • 实时性:机器人运动控制和很多行为策略都要求机器人具备实时性,比如机器人要在100ms内可靠地检测到前方的行人,或者在1ms内完成运动学和动力学计算,ROS2对这样的实时性提供了基本要求。

  • 产品化:大量的机器人已经进入我们的生活,未来还会越来越多,ROS2不仅可以在机器人研发阶段使用,也可以直接安装在产品中,走向消费市场。这也对ROS2的稳定性和健壮性提出了巨大的挑战。

  • 项目管理:机器人开发是一个复杂的系统工程,从设计、开发、调试、测试、部署全过程的项目管理工具和机制也将在ROS2中得到体现,让我们开发一个机器人变得更加简单。

2 发布版本

ROS2与Ubuntu对应的发布版本及维护周期。

ROS2 版本发布日期维护截止日期Ubuntu 版本
Dashing(潇洒)2019.52021.5Ubuntu 18.04(仿生海狸)
Eloquent(雄辩)2019.112020.11Ubuntu 18.04(仿生海狸)
Foxy(狐狸)2020.62023.5Ubuntu 20.04(焦点窝)
Galactic(银河系)2021.52022.11Ubuntu 20.04(焦点窝)
Humble(谦逊的)2022.52027.5Ubuntu 22.04(Jammy Jellyfish)

3 ROS与ROS2的比较

ROS2对系统架构进行了重新设计,两代ROS之间的架构变化如下:

  • OS层:在ROS2中,可以建立在linux或者其他系统上,甚至是没有操作系统的裸机上。

  • 中间件层: ROS1的通讯系统基于TCPROS/UDPROS,ROS2的通讯系统基于DDS,DDS是分布式实时系统中数据发布/订阅的标准解决方案。

  • 应用层: ROS1依赖于ROS Master,而在ROS2中,节点之间使用一种叫“Discovery”的发现机制来帮助彼此建立连接。

ROS 设计了一整套完整的通信机制(主题、服务、参数、动作)来简化机器人开发。通过这套机制,可以将机器人的各个组件连接起来。这套机制设计了一个叫 Ros Master 的节点,其他所有组件的通信都必须经过主节点。一旦主节点挂了,就会导致整个机器人系统的通信崩溃!所以,Ros 的不稳定性不能用来制作自动驾驶等一些高风险的机器人。另外,还有以下缺点:

  • 基于TCP的通信实时性较差,系统开销较大
  • 对python3支持不友好
  • 消息传递机制不兼容
  • 无加密机制,安全性低

ROS2首先移除了ROS中存在的主节点。移除主节点之后,各个节点可以通过DDS节点相互发现,各个节点都是平等的,可以实现一对一、一对多、多对多的通信。使用DDS进行通信之后,可靠性和稳定性都得到了增强。

相比于仅支持Linux系统的ROS , ROS2还支持windows、mac,甚至RTOS平台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值