当前位置:网站首页>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脚本
(持续更新中... ... )
边栏推荐
- 位运算(Bit Operation)
- Develop those things: go plus c.free to free memory, and what are the reasons for compilation errors?
- [language programming] exe virus code example
- 智慧社區和智慧城市之間有什麼异同
- 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
- Gee (IV): calculate the correlation between two variables (images) and draw a scatter diagram
- 【编译原理】词法分析设计实现
- Unity3D学习笔记4——创建Mesh高级接口
- [network] Introduction to C language
- 力扣解法汇总648-单词替换
猜你喜欢
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
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
ArcGIS: two methods of attribute fusion of the same field of vector elements
二叉树(Binary Tree)
ArcGIS:矢量要素相同字段属性融合的两种方法
Brush question 4
微信论坛交流小程序系统毕业设计毕设(4)开题报告
Cases of agile innovation and transformation of consumer goods enterprises
Unity3D学习笔记5——创建子Mesh
随机推荐
Network security - install CentOS
Binary tree
The wonderful relationship between message queue and express cabinet
【刷题记录】3. 无重复字符的最长子串
系统架构设计师备考经验分享:论文出题方向
JMeter interface automated test read case, execute and write back result
JS triangle
Specific method example of V20 frequency converter manual automatic switching (local remote switching)
高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
Develop those things: go plus c.free to free memory, and what are the reasons for compilation errors?
Bit operation
[untitled] reprint melting ice - track icedid server with a few simple steps
2021-01-12
oc 可变參数传递
UE4_UE5结合罗技手柄(F710)使用记录
Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors
PMP project management exam pass Formula-1
Talk about the design and implementation logic of payment process
位运算(Bit Operation)
Clean C disk