Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

Outline

TypeScript Demos

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.

📂 Available Demos

📨 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

🛠️ TypeScript Features

Type Safety

  • 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 from rclnodejs.require(...). With the class form, TypeScript infers the concrete message/service/action types automatically\u2014no explicit annotations needed.

Modern Development

  • 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

Code Quality

  • Consistent formatting with prettier/eslint configurations
  • Build validation with TypeScript strict mode
  • Runtime safety with proper error handling patterns

📊 Complexity Progression

Demo Complexity Communication Best For
topics ⭐ Basic Pub/Sub Learning fundamentals
services ⭐⭐ Intermediate Req/Response Synchronous operations
actions ⭐⭐⭐ Advanced Goal-oriented Long-running tasks

🔗 Related Resources

Morty Proxy This is a proxified and sanitized view of the page, visit original site.