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インターフェースに対してエンドツーエンドの型安全性を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト