当前位置:网站首页>ROS2专题(03):ROS1和ROS2的区别【01】
ROS2专题(03):ROS1和ROS2的区别【01】
2022-07-07 21:51:00 【无水先生】
1 提要
未来ROS2将越来越火,而ROS1将要退出历史;小米、华为都普遍用上ROS2了,然而,ROS2资料奇缺,我这里将从国外资料筛选出一些关键的信息,提供给那些能够快马加鞭的骑手们。
2 从架构上说
1)通信协议不同
ros1用的是TCP和UDP协议,而ROS2用DDS协议;DDS是专用总线协议,更快更明快的通信。
2)架构不同
ROS1需要Master也就是roscore那玩意;roscore可以理解成通信交换机,用户的通信全部集中在Master交换。
3)ROS2多了一个rcl
用户依赖于rclpy和rclcpp包,这两个包负责与rcl通信,而rcl是由DDS协议支撑的。
在下图清楚地表达了他们之间区别。

3 从代码上看
以下我们从实现“number”题目的程序为例,看ros1和ros2的代码区别是什么。
3.1 依赖包区别
3.2 回调函数

3.3 主函数调用

4 通信体上看
ros1的最小运行单元是节点,从通信上看,ros1是节点机制,即节点之间都可以相互通信,因为每个节点可以与master通信;而ros2的最小运行单元是可执行对象,每个可执行对象内部可以包含若干个组件,组件与组件能实现通信。

5 从节点的生命周期
ros1中的节点是没有生命周期的,什么时候启动,什么时候退出,节点本身没有控制权,控制权在使用节点的那个主体上,节点是纯被动的。
ros2开始有了生命周期的概念,即节点有未配置状态,未激活状态,激活状态,以及冰冻状态;显然,ros2的节点已经是一个多线程管理机制,内部有状态机组织。

6 Launch文件的对比
对比看出,两种launch文件差别很大:
1)ros1的launch文件如下:

2)ros2的launch文件是个python脚本

(持续更新中... ... )
边栏推荐
- Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades-KDD2020
- Matlab-SEIR传染病模型预测
- 成年人只有一份主业是要付出代价的,被人事劝退后,我哭了一整晚
- Bea-3xxxxx error code
- FreeLink开源呼叫中心设计思想
- 嵌入式音频开发中的两种曲线
- 网络安全-对操作系统进行信息查询
- turbo intruder常用脚本
- [language programming] exe virus code example
- Cases of agile innovation and transformation of consumer goods enterprises
猜你喜欢

微信论坛交流小程序系统毕业设计毕设(4)开题报告

UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)

微信论坛交流小程序系统毕业设计毕设(7)中期检查报告

Adults have only one main job, but they have to pay a price. I was persuaded to step back by personnel, and I cried all night
![[microservices SCG] gateway integration Sentinel](/img/f3/410d7228b4b253ebf41015a785099f.png)
[microservices SCG] gateway integration Sentinel

微信论坛交流小程序系统毕业设计毕设(2)小程序功能

How to operate DTC community?

Talk about the design and implementation logic of payment process

微信论坛交流小程序系统毕业设计毕设(1)开发概要

Unity3D学习笔记5——创建子Mesh
随机推荐
Install Fedora under RedHat
聊聊 Dart 的空安全 (null safety) 特性
Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades-KDD2020
Use JfreeChart to generate curves, histograms, pie charts, and distribution charts and display them to jsp-2
Exploratory data analysis of heartbeat signal
网络安全-对操作系统进行信息查询
Talk about the design and implementation logic of payment process
php 使用阿里云存储
./ setup. Insufficient sh permission
解决:信息中插入avi格式的视频时,提示“unsupported video format”
Brush question 5
iNFTnews | NFT技术的广泛应用及其存在的问题
Txt file virus
Oracle-数据库的备份与恢复
Classification and prediction of heartbeat signal
海内外技术人们“看”音视频技术的未来
Kubernetes' simplified data storage storageclass (creation, deletion and initial use)
[microservices SCG] gateway integration Sentinel
Network security -beef
js 获取对象的key和value