Welcome to RDK S600 Developer Kit repository
1.Introduction to ROS2
1. Introduction to ROS2
Note: The accompanying reference video uses the ROS Humble version, for reference only
1. ROS2 Overview
ROS2 is the second generation Robot Operating System, an upgraded version of ROS1 that addresses some issues present in ROS1. The first ROS2 version, Arden, was released in 2017. Through iterative development and optimization, ROS2 now has stable releases. Like ROS1, the choice of Linux distribution and ROS2 version are related. The corresponding versions are as follows:

Note: Download the corresponding ROS2 version based on your Linux distribution. This course uses the Jazzy version as an example. The programs and examples in this course are applicable to all ROS2 versions.
2. ROS2 Features
2.1. ROS2 fully supports three platforms
Ubuntu
Mac OS X
Windows 10
2.2. Distributed architecture implemented
The Master central node is removed, enabling distributed node discovery with publish/subscribe and request/response communication.
2.3. Real-time support
2.4. New programming language versions
C++11
Python 3.5+
2.5. New build system Ament (ROS1 used Catkin)
2.6. ROS1 can communicate with ROS2 via rosbridge
3. Differences Between ROS2 and ROS1
3.1. Platform
ROS1 currently only supports running on Linux systems, typically Ubuntu. ROS2 can be set up on Ubuntu, Windows, and even embedded development boards, offering a wider range of platforms.
3.2. Language
C++
ROS1 core uses C++03, while ROS2 extensively uses C++11.
Python
ROS1 uses Python 2, while ROS2 requires Python 3.5 or higher. The Foxy version uses Python 3.8.
3.3. Middleware
ROS1 requires launching roscore before starting, with the master controlling all node communications. ROS2 has no such requirement - it only has an abstract middleware interface for data transmission. Currently, all implementations of this interface are based on the DDS standard. This allows ROS2 to provide various Quality of Service (QoS) policies to improve communication across different networks.

3.4. Build Commands
ROS1 uses catkin_make for building, while ROS2 uses the colcon build command.