当前位置:网站首页>ROS2专题(03):ROS1和ROS2的区别【02】

ROS2专题(03):ROS1和ROS2的区别【02】

2022-07-07 21:51:00 无水先生

7 提要

        接上文:ROS2专题(03):ROS1和ROS2的区别【01】_

       

8 ros1和ros2的通信模式

        ros2废除了ros的Ros-master服务器模式,采用DDS协议的分布式通信;下图说明它们的通信模式区别。

9 参数服务和管理

9.1 ros1的参数服务器 

ros1的参数全部提交给ROS-master内部,以全局方式存储,所有节点可访问;如下图:

9.2 ros2的参数服务 

        ros2的参数存储在某个专门节点内部,需要参数的节点,可以通过Topic接收参数信息;这意味着参数信息可以实时改动,比如相机热插拔;相反,在Ros1中更换相机,需要更换参数;因而不得不规定“本系统相机硬件必须是某某型号”

 

10 服务模式

ros1的服务是同步模式,ros2服务是异步模式;这可以防止通信阻塞。更灵活的是,如果ROS2也想实现同步模式,只要选择一下参数就可以了。

11action通信

        Action通信不是将信息发送到哪里,而是需要支配某些动作,如开关、按钮等的开闭。ROS1是双握手机制,而ros2改成3握手机制。如下述:

11.1 ros1的action

在ros1中,action服务通过Topic实现。

11.2 ROS2的action服务

12 自定义消息

ros2的自定义消息需要加上命名空间。

 举例对比ROS1和ROS2的自定义消息如下:

 可以看出,编译过后,自定义消息的名称稍许不同。

13 workspace编译路径

13.1 编译地方都在workspace下边(src的上边);但编译工具不同:

13.2  ros-tools的不同

 13.3 ros2的新功能

 

原网站

版权声明
本文为[无水先生]所创,转载请带上原文链接,感谢
https://yamagota.blog.csdn.net/article/details/125654470