As we all know, the ROS Melodic has stopped maintenance in May this year, and ROS Noetic is last version of ROS1 and it will stop maintenance in 2025.As we all know, the ROS Melodic has stopped maintenance in May this year, and ROS Noetic is last version of ROS1 and it will stop maintenance in 2025.
In other words, the official will no longer continue to maintain and release ROS1. Now, Can we continue to use ROS in the future?
In the past 16 years, ROS1 has been praised for its ease of use and rich robot function library, but its use is limited to small-scale applications such as education, scientific research, and prototypes.
ROS1 limited real-time communication, insufficient system stability to meet industrial-level requirements, lack of security protection measures, and only support for Linux have severely limited the development of ROS1 in the fields of commercial and industrial robots.
As developers, we need a robot development framework that is more powerful, reliable, and more adaptable to commercial and industrial needs.
Compared to ROS1, ROS2 introduces a new mechanism. After several versions of iterations, ROS2 not only solves the problems of real-time communication, security and stability, but also support multi-language and compatibility.
Now, ROS2 has become the mainstream of the ROS version, and its performance and ecosystem have also been quite mature.
At present, many enterprises have begun to transition from ROS1 to ROS2.
There is a demand for ROS technology in the field of mobile robots and autonomous driving, and it is also facing a shortage of excellent talents.
Therefore, as a developer, turning to ROS2 can better adapt to the emerging robot application field.
We recommend developers to use ROS2-Foxy to get started with ROS2.
Because Foxy is a version that has been released for a long time in the ROS2 version, it has undergone some stability tests and improvements to provide a relatively stable user experience.
And Foxy is the currently widely used ROS2 version. Compared with other versions, Foxy already has many case tutorials for user reference.
By the way, all the current ROS robot cars of Yahboom fully cover ROS1 and ROS2, such as the ROSMASTER series, supports ROS1-melodic and ROS2-Foxy.
And provides two sets of tutorials for ROS1 and ROS2.
Users can choose suitable ROS version according to their own needs and project requirements.
We can see this system architecture diagram
ROS1 only supports the Linux operating system, while ROS2 not only supports mainstream PC operating systems such as Windows, Mac, and Linux, but also supports RTOS.
▷About middleware layer
In ROS1, the communication system is based on TCPROS/UDPROS and is highly dependent on the processing of the master node. If the master node goes down, the entire system will face the risk of crashing.
However, we can see that the master node has disappeared in ROS2, replaced by a communication system based on Data Distribution Service.
Data Distribution Service is a disruptive update in ROS2.
In distributed real-time systems, Data Distribution Service has become a standard solution for data publishing/subscribing.
Therefore, the Data Distribution Service communication mechanism will make ROS2 no longer limited to scientific research and academic field.
Commercial and industrial robots can use the communication system of ROS2 and Data Distribution Service to realize more efficient, reliable and safe robot applications.
▷About application layer
On the basis of inheriting the design principles and concepts of ROS, ROS2 has made some improvements in usage methods
•Extensive use of C++11 and Python 3.5+
•Writing launch startup files through Python
•Securely encrypt communication data
•Provides more flexible Quality of Service configuration options, allowing developers to adjust communication parameters such as reliability, delay, and bandwidth according to actual needs
•Node life cycle management mechanism
•A new build system called Ament is used
•Allows running multiple nodes in the same process
•Multi-robot collaborative communication
These improvements enable ROS2 to possess better functions and flexibility at the application layer, and provide developers with a better development experience.
ROS1 is about to be abandoned, but ROS2 has given us another surprise.
Compared with ROS1, ROS2 has the following features and advantages.
Support multiple operating systems: Linux, but also supports Windows, macOS, Android, iOS and so on.
Real-time and reliability: Data Distribution Service provides more reliable and efficient data transmission and communication.
Security and privacy: ROS2 provides a set of security policies and tools to protect the security and privacy of robot applications.
Easier to learn and use: ROS2 simplifies some concepts and interfaces, making it easier for developers to understand and use.
Easier to expand and integrate: ROS2 adopts a modular and plug-in design, allowing developers to more easily expand and integrate different functions and components.
Easier to collaborate and share: ROS2 provides a set of standardized and standardized interfaces and protocols, allowing developers to collaborate and share robot applications.
Although migrating from ROS1 to ROS2 may face some challenges.
Many advantages of ROS2, such as real-time communication, system stability, security, cross-platform compatibility and DDS communication mechanism, will promote the development of the robot industry.