This directory contains comprehensive tutorials explaining various ROS 2 features and concepts using rclnodejs. Each tutorial provides practical examples and best practices for building robust ROS 2 applications in JavaScript/Node.js.
Getting Started
If you're new to ROS 2, start with the Basic Concepts tutorial to understand fundamental communication patterns, then explore other tutorials based on your specific needs.
Available Tutorials
๐ Fundamentals
ROS 2 Basic Concepts
Introduction to fundamental ROS 2 communication patterns: Topics (publish/subscribe) and Services (request/response). Essential for beginners to understand the core building blocks of ROS 2 applications.
๐ง Node Management
Lifecycle Nodes
Learn about managed nodes with state machines for controlled startup, shutdown, and error handling. Covers lifecycle states, transitions, and implementing robust, production-ready nodes.
Parameter Service
Dynamic configuration management using ROS 2 parameters. Covers parameter declaration, validation, runtime updates, and callbacks for building configurable applications.
๐ Advanced Communication
ROS 2 Actions
Implement long-running, cancellable tasks with progress feedback using the ROS 2 action system. Learn to create action servers and clients for complex robot behaviors.
Service Introspection
Debug and monitor service interactions in real-time. Learn to observe service calls, responses, and performance metrics for troubleshooting distributed systems.
Content Filtering Subscription
Reduce network traffic and improve performance by filtering messages at the DDS middleware level using SQL-like expressions. Essential for high-frequency data streams.
Observable Subscriptions with RxJS
Use RxJS Observables for reactive programming with ROS 2 subscriptions. Apply operators like throttleTime(), combineLatest(), and filter() to process message streams declaratively.
๐ Introspection & Debugging
Type Description Service
Introspect message and service types used by nodes at runtime. Learn to query type definitions, field descriptions, and dependencies for better system understanding.
Additional Resources
These tutorials are part of the rclnodejs project. For the latest updates and more examples, visit the GitHub repository.