References#
Lecture 10
ENPM605 – L10: Parameters, Custom Interfaces, Services & Actions
Covers ROS 2 parameters (declaration, reading, descriptors with
range constraints, runtime parameter callbacks, YAML parameter
files, CLI tools), custom interface definitions (.msg,
.srv, .action files, CMake build configuration, interface
verification), services (request/response model, server
implementation, asynchronous and synchronous clients, deadlock
avoidance), and actions (goal/feedback/result model, server with
cancellation support, asynchronous client with feedback
monitoring, CLI tools, and a decision guide for choosing the
right communication pattern).
ROS 2 Official Documentation
ROS 2 Jazzy: Parameters
Tutorial for declaring, reading, and using parameters in a Python class-based node.
ROS 2 Parameter Concepts
Conceptual overview of parameters: types, descriptors, constraints, and the parameter service API.
ROS 2 Jazzy: Services
Step-by-step tutorial for creating a service server and client in Python.
ROS 2 Service Concepts
CLI-based introduction to services, including listing, calling, and inspecting service types.
ROS 2 Jazzy: Actions
Complete tutorial covering action server implementation, client usage, feedback, and cancellation.
ROS 2 Action Concepts
CLI-based introduction to the action model, goal states, feedback topics, and introspection commands.
ROS 2 Jazzy: Custom Interfaces
Tutorial for creating .msg, .srv, and .action
files with CMake and rosidl_generate_interfaces.
ROS 2 Jazzy: Using Custom Interfaces
Advanced guide for using custom interfaces defined in the same package or a separate package.
External Tutorials
Articulated Robotics
Video tutorials covering ROS 2 services and actions with practical robot examples and demonstrations.
The Construct
Browser-based interactive environment with guided exercises on services, actions, and custom interfaces.
Robotics Back-End
Practical blog posts with complete code examples for services, actions, parameters, and custom interfaces.
Recommended Reading
Robot Operating System (ROS): The Complete Reference (Vol. 1-7)
Relevant chapters cover ROS 2 services, actions, and the interface generation pipeline.
Programming Robots with ROS 2
Chapters on services, actions, and custom interfaces provide applied coverage of this lecture’s communication patterns.
Mastering ROS for Robotics Programming (3rd Edition)
Covers service/action design patterns, custom interface packages, and parameter management in production ROS 2 systems.
ROS 2 Design
Official design documents explaining the rationale behind the action protocol, parameter API, and interface definition language (IDL) used in ROS 2.