当前位置:网站首页>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脚本

(持续更新中... ... )
边栏推荐
猜你喜欢

聊聊支付流程的设计与实现逻辑

Wechat forum exchange applet system graduation design completion (8) graduation design thesis template

V20变频器手自动切换(就地远程切换)的具体方法示例

【编译原理】词法分析设计实现

UE4_UE5全景相机

Specific method example of V20 frequency converter manual automatic switching (local remote switching)

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

Wechat forum exchange applet system graduation design completion (7) Interim inspection report

Innovation today | five key elements for enterprises to promote innovation

JMeter-接口自动化测试读取用例,执行并结果回写
随机推荐
Introduction to redis and jedis and redis things
Txt file virus
[language programming] exe virus code example
网络安全-钓鱼
Inftnews | web5 vs Web3: the future is a process, not a destination
Network security - joint query injection
Exploratory data analysis of heartbeat signal
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
Wechat forum exchange applet system graduation design completion (1) development outline
USB(十六)2022-04-28
Clean C disk
Brush question 3
OC variable parameter transfer
微信论坛交流小程序系统毕业设计毕设(4)开题报告
[untitled] reprint melting ice - track icedid server with a few simple steps
iNFTnews | NFT技术的广泛应用及其存在的问题
Brush question 5
How to operate DTC community?
CXF call reports an error. Could not find conduct initiator for address:
力扣解法汇总648-单词替换