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
docs.ros.org
The official ROS 2 Jazzy documentation hub. Starting point for all ROS 2 concepts, tutorials, and API references.
Beginner: Client Libraries
Step-by-step tutorials for writing nodes, publishers, subscribers, services, and actions in Python.
rclpy
Full Python API reference for the rclpy client library.
QoS Concepts
Detailed explanation of all QoS policies, compatibility rules, and predefined profiles.
About Logging
How the ROS 2 logging system works, severity levels, and configuration options.
colcon
Official documentation for the colcon build tool.
DDS and Middleware
Object Management Group
Official DDS standard, specification downloads, and community resources.
DDS Foundation
Use cases, QoS reference, webinar series, and historical overview of DDS adoption.
Fast DDS Documentation
Documentation for the default ROS 2 DDS implementation (eProsima Fast DDS).
ROS 2 Jazzy: Middleware Vendors
Comparison of supported RMW implementations for Jazzy: Fast DDS, Cyclone DDS, Connext DDS, GurumDDS.
External Tutorials
Articulated Robotics
Practical video and written tutorials for ROS 2 from workspace setup through navigation.
The Construct
Browser-based ROS 2 environment with guided courses for beginners through advanced users.
Real Python
Review of Python OOP concepts underlying OOP node design:
classes, inheritance, __init__, super().
Style and Best Practices
ROS 2 Coding Standards
Official style guidelines for Python and C++ ROS 2 code.
Coding Conventions
Python style guide applied throughout ROS 2 Python code.
Recommended Reading
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.
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.
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.
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.