このプロジェクトについて
rclnodejs は、ROS 2 アプリケーションを構築するための JavaScript および TypeScript API を公開する、ROS 2 用の Node.js クライアントライブラリです。README によると、トピック、サービス、アクション、パラメータ、ライフサイクルノード、TypeScript サポート、RxJS Observable サブスクリプション、Electron 統合、および ROS 2 へのブラウザアクセスに対応しています。
インストールには Node.js 20.20.2 以降と ROS 2 SDK が必要であり、インストール、ビルド、実行の前に ROS 2 環境をソースする必要があります。パッケージは `npm i rclnodejs` でインストールされます。Ubuntu 22.04 (Humble)、24.04 (Jazzy, Kilted)、26.04 (Lyrical) の x64 および arm64 向けに事前ビルド済みバイナリが用意されています。それ以外の環境ではソースからビルドされ、`RCLNODEJS_FORCE_BUILD=1` を使用すると強制的にソースビルドが行われます。コンテナ化された開発用に Dockerfile も提供されています。
ブラウザについては、プロジェクトは2つのオプションを文書化しています。`rclnodejs/web` は、機能が `web.json` または CLI フラグで許可リストに登録されている ROS 2 グラフ上の型付きレイヤーであり、型付きの `call`、`publish`、`subscribe`、WebSocket トランスポート(`call`/`publish` 用のオプションの HTTP リスナーと `subscribe` 用の Server-Sent Events を含む)、および `rclnodejs-web openapi` によって出力される OpenAPI 3.1 スペックを提供します。`rosocket` は、組み込みの WebSocket と JSON 以外にブラウザ依存関係を持たない薄い WebSocket ゲートウェイであり、`npx rosocket` で起動できます。
メッセージ生成は自動的に行われます。JavaScript バインディングと TypeScript 宣言は、`npm install` 中にソース環境内のすべての `.msg`、`.srv`、`.action` インターフェースに対して生成され、追加の ROS パッケージをインストールした後は `npx generate-ros-messages` で再生成を実行できます。生成されたファイルは `node_modules/rclnodejs/generated/` に配置されます。
その他の文書化された資料には、`throttleTime()`、`debounceTime()`、`map()`、`combineLatest()` などの演算子を用いた RxJS Observable サブスクリプション、Electron Forge と Three.js を使用して構築された Electron デモ(2関節マニピュレータデモを含む)、TypeScript 設定ガイドライン、スキャフォールディングとラン치ファイルオーケストレーションのためのコンパニオンツール `rclnodejs-cli`、およびベンチマークドキュメントが含まれます。本プロジェクトは Apache License 2.0 の下でライセンスされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.