当前位置:网站首页>Ros2 topic (03): the difference between ros1 and ros2 [01]

Ros2 topic (03): the difference between ros1 and ros2 [01]

2022-07-07 23:19:00 Mr anhydrous

1 summary

         future ROS2 Will become more and more popular , and ROS1 About to exit history ; millet 、 Huawei is widely used ROS2 了 , However ,ROS2 Data is extremely scarce , Here I will sift out some key information from foreign materials , For those riders who can speed up their horses .

2 Architecturally speaking  

1) Communication protocols are different

        ros1 It's using TCP and UDP agreement , and ROS2 use DDS agreement ;DDS It is a private bus protocol , Faster and faster communication .

2) Different architectures

        ROS1 need Master That is to say roscore That thing ;roscore It can be understood as a communication switch , Users' communications are all concentrated on Master In exchange for .

3)ROS2 One more. rcl

Users rely on rclpy and rclcpp package , These two packages are responsible for rcl signal communication , and rcl By DDS Agreement supported .

The difference between them is clearly expressed in the figure below .

3 From the code point of view

Let's start with “number” Take the procedure of the topic as an example , see ros1 and ros2 What is the code difference between .

3.1 Dependent package differences

3.2 Callback function  

3.3 Main function call

 

4 From the perspective of communication body

        ros1 The smallest unit of operation is the node , From the perspective of communication ,ros1 Node mechanism , That is, nodes can communicate with each other , Because each node can be connected with master signal communication ; and ros2 The smallest running unit of is the executable object , Each executable object can contain several components , Components can communicate with each other .

 5 The lifecycle of the slave node

        ros1 Nodes in have no lifecycle , When to start , When to quit , The node itself has no control , Control is on the subject that uses the node , Nodes are purely passive .

        ros2 Began to have the concept of life cycle , That is, the node has unconfigured status , Inactive state , active , And frozen state ; obviously ,ros2 The node of is already a multi-threaded management mechanism , Internal state machine organization .

6 Launch Comparison of documents

The contrast shows that , Two kinds of launch The files are very different :

1)ros1 Of launch The documents are as follows :

 2)ros2 Of launch The file is a python Script

  ( Ongoing update ... ... )

原网站

版权声明
本文为[Mr anhydrous]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207072036461086.html