ROS学习(1)——ROS1和ROS2的区别

news/2025/3/19 18:16:29/

        因为机器人是一个系统工程,它包括了机械臂结构,电子电路,驱动程序,通信框架,组装集成,调试和各种感知决策算法等方面,任何一个人甚至是一个公司都不可能完成机器人系统的研发工作 。但是我们又希望自己能造出一个机器人跑一跑,验证一下自己的算法,所以我们就需要一个软件平台能够把机器人的各个部件做一个集成,这个平台就是ROS。那么至于机器人的每个部件(摄像头,电机等)就交给专业的人去做。

        最开始出现的是ROS1,是2007年机器人公司Willow Garage和斯坦福人工智能实验室合作开发的,每年都在Ubuntuxx.04版本发布一个月之后的五月份发布新版本。比较有意思的是ROS的发布日期刚好是在5月23号,这一天是世界乌龟日(World Turtle Day),用过ros的小伙伴应该都了解ros的每个版本的海报都是一只别具特色的小乌龟,ros的官方仿真教程turtlesim就是一只小乌龟在跑啊跑(会心一笑)。

       OS

       在ROSCon2014上,ROS正式发布了新一代的ROS设计架构,2018年正式推出ROS2的第一个正式版本。可以说ROS2是ROS1脱胎换骨之后的样子。那么我们已经有ROS1了,为什么还要发布ROS2呢,把ROS1一直改进改进不就好了么?接下来我们就来了解一下为什么一定要推出ROS2,以及ROS1和ROS2的区别在哪里。

ROS1的介绍

ROS1采用分布式框架,其架构可以分为三个层次:基于Linux系统的OS层,实现ROS核心通信机制以及众多机器人开发库的中间层;在ROS Master的管理下保证功能节点的正常运行的应用层。

ROS1的通信机制是每个节点通过ROS Master发送和接收话题消息。

 

 但是ROS1存在以下几个问题:

  • 无实时性(real-time)
  • 嵌入式设备不友好
  • 对于网络通信的重依赖(需要高带宽且稳定的网络连接)
  • 多用于学术应用
  •  原生的 ROS 仅支持单机器人
  •  超高的灵活性带来的不规范的编程模式

总的来说,ROS1比较适用于单个机器人,很多方面存在一些限制,对于多机器人系统,跨平台,实时性强,网络安全要求高,产品化的场景下(如自动驾驶汽车,多机械臂协同),ROS1就不能很好的胜任了。

 ROS2

ROS2和ROS1的系统框架对比如下图所示,最大的区别就在于ROS2没有Master了。

ROS1中Master相当于一个团队的核心成员,如果没有了Master或者是Master出现了问题,就会无法实现节点中的通信,这样这个系统很不稳定。所以采用类似去中心化的方式,ROS2中就没有了Master节点,ROS2中采用discovery——自发现机制,让节点和节点之间无需通过Master,互相找到彼此,从而建立稳定的通信连接。


http://www.ppmy.cn/news/71691.html

相关文章

Ambari-2.7.7源码编译

0 说明 本文基于Ambari-2.7.7版本进行源码编译。所需的编译资料统一提供如下: 链接:https://pan.baidu.com/s/1F2D7zBGfKihxTBArnOilTw 提取码:8m17 1 前提条件 1.1 下载ambari源码包 wget https://github.com/apache/ambari/releases/t…

LVGL- 颜色转换系统和相关宏的使用技巧

LVGL是一个可以适配不同颜色深度的gui,显示像素可以从1,8,16,32等都可以很好的支持。 其中有一个很关键的函数,转换r,g,b显示像素到对应的目标显示器的格式,使用这个函数来适配不同的目标设备。 在文件lv_color.h中有相关的定义,我…

如何使用Sentinel做流量控制?此文将附代码详细介绍Sentinel几种限流模式

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章将详细介绍Sentinel的两种限流模式,由于篇幅原因,后续文章将详细介绍Sentinel的其他三种。 如果文章有什么需要改进的地方还请大佬不吝赐教…

Centos7连接外网的相关配置与实现yum本地与网络配置(yum配置不使用wget)

目录 一、背景 二、实现连接外网的相关配置 1)查看物理机的IP相关信息 2)配置物理机指定IP 3)根据物理机配置虚拟机网卡 4)进入虚拟机,配置网卡 三、yum配置 1)切换到yum软件仓库配置文件目录中 2…

18130 繁忙的公路

Description 在一条笔直的大道(单方向行车道)上,汽车川流不息。道路从起点到终点,等距离的标记了1到N, 即起点是1,然后分别是2、3、4.....,终点是N。每一个标记处,安装了智能探头&a…

dbForge Studio for SQL Server Crack

dbForge Studio for SQL Server Crack 增加了对源代码管理中的数据操作语言(DML)触发器排序的支持。 添加了对不使用EXEC/EXECUTE关键字调用过程/函数的语法支持。 在语法检查中添加了对EXEC命令的支持。 dbForge Studio for SQL Server是一个IDE,用于SQL Server中的…

云计算多租户安全

目录 ​编辑必要的安全措施 概念 多租户如何运作 云计算中多租户有什么好处?

[mybatis]resultMap配置

<resultMap id"brandResultMap" type"brand"><!--id&#xff1a;完成主键字段的映射column&#xff1a;表的列名property&#xff1a;实体类的属性名result&#xff1a;完成一般字段的映射column&#xff1a;表的列名property&#xff1a;实体类的…