当前位置: 首页 > news >正文

ROS1和ROS2的区别autoware.ai和autoware.universe的区别

文章目录

  • 前言
  • 一、ROS1和ROS2的区别
    • 一、ROS2通讯实时性比ROS1强
    • 二、ROS1官方不再维护了
    • 三、ROS2的可靠性比ros1强
    • 四、ROS2的安全性比ros1强
    • 五、ROS2资源占用低
    • 六、等等等等
  • 二、autoware.ai和autoware.universe的区别
    • 一、autoware.ai不维护了
    • 二、autoware.universe功能多,算法新
    • 三、autoware.ai所需算力低
  • 总结


前言

在工作过程中,领导问了我一个问题:ROS1和ROS2的区别是什么?而这个问题是基于“项目到底是选择是autoware.ai版本还是autoware.universe版本?”这个问题的延伸。
我回答的并不全面,所以在此整理一下这两个问题。

首先需要注意的是,autoware的两个版本是两套智驾代码版本,其中ai版本是基于ros1而搭建的,而universe是基于ros2搭建的。


一、ROS1和ROS2的区别

说白了,ROS1发明的时候,无人驾驶和机器人还没像现在这么成熟落地,所以ros1主要适用的还是实验室,否则百度apollo后面几个版本也不会放弃ros1而研发自己的框架。
而ros2就不同了,它就是看到了ros1在无人驾驶和机器人领域所表现的各种不足,进行的改进。

所以在无人驾驶和机器人领域,ros2全面优于ros1.

具体有哪些优势:

一、ROS2通讯实时性比ROS1强

这个是在做无人驾驶和机器人领域非常非常看重的一点,也是ros2对于ros1的大改进。

通讯实时性根据场景可以分为两种。
一种是传感器和主机之间的通讯实时性。
一种是同一台电脑上的两个节点的通讯实时性。

这两种情况ros2的通讯实时性比ros1好的原因都是一样的。
是ros1是基于集中式的 ROS Master,用于节点发现和服务管理。而ROS2采用 DDS(Data Distribution Service) 作为通信中间件,分布式架构,无需 ROS Master。

再具体的原因如下(这部分可以不用看了,都是grok回答的):
ROS1:TCP 通信在网络抖动或丢包时会重传,导致延迟不可预测;UDPROS 虽快但不可靠,数据丢失会影响实时性。
集中式 ROS Master 需处理节点发现,增加通信开销,尤其在网络不稳定时,延迟和抖动更明显。
缺乏 QoS(服务质量)机制,无法优先处理关键数据,难以保证实时性。
单机通信仍通过 TCPROS(基于 TCP 的本地回环)或 UDPROS,涉及消息序列化/反序列化和网络栈处理,增加微秒级到毫秒级的开销。
消息传递没有优先级机制,高频或大数据量消息可能阻塞关键消息,导致延迟抖动。
通信栈未针对低延迟优化,性能受限于通用网络协议栈。

ROS2:使用 DDS 作为通信中间件,支持分布式节点发现,无需 ROS Master,减少了网络通信的额外开销。
DDS 的 QoS 策略(如可靠性、截止时间、优先级)可优化消息传递,确保关键数据低延迟传输,即使在网络不稳定时也能维持实时性。
DDS 的高效序列化和网络容错机制,适合多设备协作的实时场景(如机器人群或传感器网络)。
单机通信可使用 DDS 的 共享内存传输(如 Fast DDS 的共享内存传输层),避免网络栈开销,显著降低延迟(通常在微秒级)。
DDS 提供高效的消息序列化/反序列化,减少 CPU 开销。
QoS 策略仍适用(如 Deadline 和 Liveliness),可确保关键消息优先处理,降低延迟抖动。

二、ROS1官方不再维护了

这是一个致命的问题,ros1跟不上节奏了,并且一个官方不维护的版本,难以支撑后续的ros生态。
现在主流都在使用ros2,如果继续使用ros1,那一些新品牌的雷达等传感器,不一定有ros1的驱动。

三、ROS2的可靠性比ros1强

原因也是因为两者的基础架构,ros1依赖于ros master,如果master崩了就全崩了,但是ros2是分布式的,其中一个崩了其他的还能继续。

四、ROS2的安全性比ros1强

ros2支持消息加密,节点认证等,安全性较高。
这个原因我也不太懂,通讯方面的,反正记得这个好处就行。

五、ROS2资源占用低

ROS 2 资源占用低主要指的是运行时资源(如 CPU、内存、带宽等),而非下载或安装环境所需的存储空间。

六、等等等等

ros2现在就用在各种工业落地中,所以遇到的各种实时性问题官方或者社区都会积极的维护改进。

二、autoware.ai和autoware.universe的区别

上面讲了ros1和ros2的区别,而这两个版本前者依赖ros1,后者依赖ros2,自然后者就有天然的优势。

一、autoware.ai不维护了

这玩意儿最新的版本都是22年的版本了。
像是机床这种已经完全成熟的产品,几年不维护还好说,但是像无人驾驶这种每天都在高速发展的产品,三年不维护已经很难跟上时代了。
各种模块拓展,各种场景,那都得是新版本才能跟的上。

二、autoware.universe功能多,算法新

ai有的功能universe都由,然后又更新了三年,所以功能多,算法新,以此带来的各种优势。

三、autoware.ai所需算力低

这里是不是很反常识,明明ros2比ros1强很多,为什么现在又说ai的算力需求比universe版本低。

因为功能少啊,因为算法旧啊,ai用的还是传统的感知算法,那肯定比universe用的深度学习模型,多传感器融合等算法消耗的算力就少。

毕竟现在各种算法和框架越研究,对工控机算力的依赖越大。


总结

ros选择能选2不选1,autoware也是能选新的不选旧的,但是要硬件限制,那就另当别论了。

相关文章:

  • 怎么通过 jvmti 去 hook java 层函数
  • ubuntu自定义服务自动启动
  • 详解Jenkins Pipeline 中git 命令的使用方法
  • 【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
  • C++String的学习
  • VS Code 打开ipynb(还不会)运行python
  • 【SpringCloud】Nacos配置中心
  • C++内存列传之RAII宇宙:智能指针
  • 【和春笋一起学C++】(十七)C++函数新特性——内联函数和引用变量
  • 在java 项目 springboot3.3 中 调用第三方接口(乙方),如何做到幂等操作(调用方为甲方,被调用方为乙方)? 以及啥是幂等操作?
  • 本地日记本,用于记录日常。
  • ④Pybullet之Informed RRT*算法介绍及示例
  • 四元数:从理论基础到实际应用的深度探索
  • .net jwt实现
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法
  • 区块链架构深度解析:从 Genesis Block 到 Layer 2
  • Elasticsearch中的地理空间(Geo)数据类型介绍
  • 使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯
  • 【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!
  • ES海量数据更新及导入导出备份
  • 网站制作真人游戏娱乐平台怎么做/丈哥seo博客
  • 下载的网站模板怎么使用/郑州百度分公司
  • 比价网站开发毕业论文/网站建设运营
  • 做网站用c语言吗/成人技能培训班有哪些
  • 做建网站的工作一年赚几百万/系统优化是什么意思
  • 动态网站开发环境搭建/seo查询 工具