ROS1 has its own middleware. ROS2 ditched the middle and now uses Data Distribution Service(DDS), a third-party middleware that is a reliable industry standard.
(2/8) No Rosmaster -
Rosmaster is a service facilitating two nodes to find each other (if they wish to communicate).In ROS1, each node needs to know the presence of rosmaster
ROS2 did away with rosmaster, and nodes can find each other directly.
(3/8) Shared codebase for Cpp and Python -
ROS has support for two languages, Cpp and Python and the underlying implementation differs in places.
ROS2 has the same shares C implementation. This common codebase is exposed through ROS Client Libraries APIs in C++ and Python.
(4/8) Multiple ROS nodes in a process -
ROS1 does not allow multiple ROS nodes in one process. That changes in ROS2
(5/8) Python build requirement -
Change python files in ROS1 doesn't require you to build the project. ROS2 needs you to build the project again
(6/8) Action Services
Action Services weren't a part of core ROS1 libraries (but actionlib). ROS2 core libraries have action servers
(7/8) Windows support
ROS2 is supported by Windows! Well, I sincerely hope you're using Linux though 😛
(8/8) Changed launch infrastructure
ROS1 primarily uses XML-based launch files. ROS2 has a python launch system supporting ordering constraints
I tweet about my learning, experiments, and experiences in Robotics and Startups.
Cheers!
• • •
Missing some Tweet in this thread? You can try to
force a refresh