This directory contains TypeScript demonstrations showcasing rclnodejs functionality with full type safety and modern development practices. Each demo illustrates core ROS2 communication patterns using TypeScript interfaces and best practices.
📨 topics/ - Publisher/Subscriber Pattern
Basic ROS2 topic communication with TypeScript type safety
- Publisher: Sends timestamped string messages at regular intervals
- Subscriber: Receives and displays messages with colorful console output
- Features: Message counting, error handling, graceful shutdown
🔧 services/ - Request/Response Pattern
Synchronous service calls for immediate responses
- Service Server: Provides AddTwoInts service for integer addition
- Service Client: Makes requests with random numbers at intervals
- Features: Service discovery, request counting, comprehensive error handling
⚡ actions/ - Long-Running Task Pattern
Asynchronous actions with progress feedback and cancellation
- Action Server: Calculates Fibonacci sequences with progress updates
- Action Client: Sends goals, monitors progress, handles results
- Features: Goal cancellation, feedback processing, result handling
- Full typing for all ROS2 messages, services, and actions
- Compile-time validation of message structures
- IntelliSense support in VS Code and other TypeScript editors
- Two equivalent forms: identify a type by its string name
(e.g.
'std_msgs/msg/String') or by its class/constructor obtained fromrclnodejs.require(...). With the class form, TypeScript infers the concrete message/service/action types automatically\u2014no explicit annotations needed.
- ES2022+ syntax with async/await patterns
- Modular architecture with clean separation of concerns
- Error boundaries with comprehensive exception handling
- Graceful shutdown handling for SIGINT/SIGTERM
- Consistent formatting with prettier/eslint configurations
- Build validation with TypeScript strict mode
- Runtime safety with proper error handling patterns
| Demo | Complexity | Communication | Best For |
|---|---|---|---|
| topics | ⭐ Basic | Pub/Sub | Learning fundamentals |
| services | ⭐⭐ Intermediate | Req/Response | Synchronous operations |
| actions | ⭐⭐⭐ Advanced | Goal-oriented | Long-running tasks |
- rclnodejs Tutorials - Comprehensive API documentation
- Electron Demos - GUI applications with rclnodejs
- TypeScript Handbook - Language reference
- ROS2 Documentation - Official ROS2 concepts