1.1 Introduction to the Robot Operating System (ROS)

What is ROS?

ROS (Robot Operating System) is a flexible and open-source framework designed for developing robot software. Despite its name, ROS is not a traditional operating system but a middleware that sits on top of an operating system like Linux. It provides a structured communications layer between different parts of the robot's system (nodes), enabling developers to build complex and scalable robotic applications more easily.

Key features of ROS include:

  • Hardware Abstraction: ROS simplifies working with different hardware by providing a standard interface for controlling robotic components (sensors, actuators, etc.).

  • Modularity: ROS promotes modularity, allowing developers to break down software into smaller, reusable components called nodes.

  • Communication: It offers message-passing mechanisms like topics, services, and actions, enabling different parts of the system to communicate seamlessly.

  • Tools and Libraries: ROS provides a rich set of tools and libraries to aid in tasks such as simulation (Gazebo), visualization (RViz), navigation, and perception, among others.

ROS 1 vs. ROS 2

ROS has two major versions: ROS 1 and ROS 2.

  • ROS 1 (introduced in 2007) laid the foundation for robotics software development, supporting modular, scalable systems with strong community-driven libraries. However, it lacked certain features, such as real-time support, multi-robot communication, and native security measures.

  • ROS 2 was developed to address the limitations of ROS 1. Key improvements in ROS 2 include:

    • Real-time support: Essential for time-critical robotic operations.

    • Multi-robot systems: Improved capabilities for robots to work in coordination.

    • Security features: Added features like secure communications, which are critical in industrial or sensitive applications.

    • Cross-platform support: ROS 2 supports Linux, Windows, and macOS.

For this training, we will be using ROS 2 Foxy, which is a Long-Term Support (LTS) release. It incorporates the advanced features of ROS 2 while maintaining stability, making it ideal for learning and development purposes.

Last updated