References#

Lecture 8

ENPM605 – L8: Introduction to ROS 2

Covers the ROS 2 distributed architecture, DDS middleware and QoS policies, the publish/subscribe model (nodes, topics, messages, rules, patterns), workspace setup and colcon builds, Python package creation (package.xml, setup.py, ament_python), writing minimal and OOP-based nodes with rclpy, spinning and the executor model, timers and callbacks, publishers (create_publisher, Int64, QoSProfile), subscribers (create_subscription, named callbacks), and three pub/sub communication timing scenarios (no subscriber, fast subscriber, slow subscriber).

ROS 2 Official Documentation
ROS 2 Jazzy Documentation

docs.ros.org

The official ROS 2 Jazzy documentation hub. Starting point for all ROS 2 concepts, tutorials, and API references.

https://docs.ros.org/en/jazzy/
ROS 2 Beginner Tutorials

Beginner: Client Libraries

Step-by-step tutorials for writing nodes, publishers, subscribers, services, and actions in Python.

https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries.html
rclpy API Reference

rclpy

Full Python API reference for the rclpy client library.

https://docs.ros.org/en/jazzy/p/rclpy/
ROS 2 QoS Settings

QoS Concepts

Detailed explanation of all QoS policies, compatibility rules, and predefined profiles.

https://docs.ros.org/en/rolling/Concepts/Intermediate/About-Quality-of-Service-Settings.html
ROS 2 Logging

About Logging

How the ROS 2 logging system works, severity levels, and configuration options.

https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Logging.html
colcon Documentation

colcon

Official documentation for the colcon build tool.

https://colcon.readthedocs.io/
DDS and Middleware
OMG DDS Portal

Object Management Group

Official DDS standard, specification downloads, and community resources.

https://www.omg.org/omg-dds-portal/
DDS Foundation

DDS Foundation

Use cases, QoS reference, webinar series, and historical overview of DDS adoption.

https://www.dds-foundation.org/
eProsima Fast DDS

Fast DDS Documentation

Documentation for the default ROS 2 DDS implementation (eProsima Fast DDS).

https://fast-dds.docs.eprosima.com/
ROS 2 DDS Vendor Guide

ROS 2 Jazzy: Middleware Vendors

Comparison of supported RMW implementations for Jazzy: Fast DDS, Cyclone DDS, Connext DDS, GurumDDS.

https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Different-Middleware-Vendors.html
External Tutorials
Articulated Robotics: ROS 2 Tutorials

Articulated Robotics

Practical video and written tutorials for ROS 2 from workspace setup through navigation.

https://articulatedrobotics.xyz/category/ros2-tutorials/
The Construct: ROS 2 Basics

The Construct

Browser-based ROS 2 environment with guided courses for beginners through advanced users.

https://www.theconstructsim.com/ros2-for-beginners/
Real Python: Python Classes (OOP)

Real Python

Review of Python OOP concepts underlying OOP node design: classes, inheritance, __init__, super().

https://realpython.com/python3-object-oriented-programming/
Style and Best Practices
ROS 2 Python Style Guide

ROS 2 Coding Standards

Official style guidelines for Python and C++ ROS 2 code.

https://docs.ros.org/en/jazzy/Contributing/Code-Style-Language-Versions.html
PEP 8 – Python Style Guide

Coding Conventions

Python style guide applied throughout ROS 2 Python code.

https://peps.python.org/pep-0008/
Recommended Reading
Anis Koubaa (Ed.)

Robot Operating System (ROS): The Complete Reference (Vol. 1-7)

A multi-volume series covering ROS and ROS 2 from fundamentals through advanced applications. Relevant chapters cover distributed architectures, DDS, and communication patterns.

Open Robotics

Programming Robots with ROS 2

Hands-on guide to writing ROS 2 applications in Python and C++, covering nodes, topics, services, actions, parameters, and launch files.

Silberschatz, Galvin, and Gagne

Operating System Concepts (10th Edition)

Chapter 3 (Processes) and Chapter 4 (Threads) provide the OS-level background for understanding ROS 2 process isolation, the main thread, and the executor spin loop.

Object Management Group

DDS Specification v1.4

The formal OMG specification for the Data Distribution Service. Appendix A contains the complete QoS policy reference with compatibility rules and default values.