RobotWebTools/rclnodejs

Node.js version of ROS 2.0 client

解決する課題

JavaScriptとTypeScriptを使用してROS 2 (Robot Operating System) アプリケーションを開発する方法を提供します。これにより、開発者はNode.jsのエコシステムをロボット工学に活用でき、C++やPythonを独占的に記述することなく、Webベースのインターフェース、Electronによるデスクトップアプリ、およびリアクティブなメッセージ処理パイプラインの作成が可能になります。

仕組み

rclnodejsはROS 2のクライアントライブラリとして機能し、Topics、Services、Actions、Parametersといったコアなロボット通信パターンのためのAPIを提供します。インストール時に、ROS 2のメッセージ、サービス、アクションインターフェースのJavaScriptバインディングとTypeScript宣言を自動的に生成します。Web統合については、セキュリティのための許可リストを備えたWebSocket/HTTPゲートウェイを使用する型付きSDK (rclnodejs/web) と、よりシンプルなプロトタイプ向けの軽量なWebSocketゲートウェイ (rosocket) の2つのパスを提供します。

対象者

JavaScript/TypeScriptを好むロボット開発者、ロボット制御ダッシュボードを構築するWeb開発者、およびクロスプラットフォームのデスクトップ可視化のためにROS 2をElectronと統合したいエンジニア。

ハイライト

  • 完全なROS 2機能セット: Topics、Services、Actions、Parameters、およびLifecycle Nodesをサポート。
  • Web統合: 型付きWeb SDKと軽量なWebSocketゲートウェイを含み、ROS 2の機能をブラウザに持ち込みます。
  • リアクティブプログラミング: RxJS Observablesと統合し、宣言的なメッセージ処理(例:スロットリングやデバウンス)を実現します。
  • 高性能: ベンチマークでは、トピックおよびサービスのラウンドトリップにおいて、rclpyよりも高速で、rclcppに匹敵する性能を示しています。
  • TypeScriptサポート: ROS 2インターフェースに対してエンドツーエンドの型安全性を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト