ROS1 vs ROS2

Untitled

ROS(Robot Operating System)

The Robot Operating System (ROS) provides the hardware abstraction, low-level device control, implementations of commonly used functionality, inter-process message passing, package management, libraries needed for the development environment, and various development and debugging tools required when developing robot applications. ROS is a robot platform that acts like an operating system for robot application development. It includes the hardware platform through hardware abstraction, serves as a software platform supporting robot application development, and provides operating-system-like functionality usable across heterogeneous hardware.

Source : Robot Operating System (ROS) - Korean Wikipedia

See also, ROS: Home

Differences between ROS1 and ROS2

ROS1

  • Primarily Linux - supported up to Ubuntu 20.04 (noetic)
  • Single robot
  • No real-time control support
  • Requires a stable network environment
  • Research use at universities and research institutes

ROS2

  • Multi-node communication
  • ROS on embedded systems
  • Real-time control
  • Can cope with unstable network environments
  • Multi-platform support (Windows, Linux, MacOS)
  • Support for modern technologies (Protocol Buffers, DDS, Websockets, etc.)
  • Support for commercial products

Untitled

Source : https://www.lips-hci.com/ros

Conclusion

  • ROS1 has had no official release since 2020, while ROS2 continues to receive official releases such as Foxy, Humble, and Rolling.
  • ROS2 has the advantage of enabling real-time control, which was a major shortcoming of ROS1.
  • The community is now focused on ROS2, and ROSCon presentations are also based on ROS2.
  • ROS1 builds source code with catkin_make, whereas ROS2 uses colcon.
  • ROS2 enables flexible communication by leveraging various network environments (DDS/RTPS).
  • ROS1 is connected in a master-slave structure, whereas ROS2 has no master node and exchanges various data types effectively in a peer-to-peer (PTP) fashion.