À propos du projet

rclnodejs est une bibliothèque cliente Node.js pour ROS 2 qui expose des API JavaScript et TypeScript permettant de créer des applications ROS 2. Selon le README, elle couvre les sujets, les services, les actions, les paramètres, les nœuds de cycle de vie, la prise en charge de TypeScript, les abonnements RxJS Observable, l'intégration Electron et l'accès au navigateur à ROS 2. L'installation nécessite Node.js 20.20.2 ou plus récent et un SDK ROS 2, avec l'environnement ROS 2 activé avant d'installer, de compiler ou d'exécuter. Le paquet s'installe avec `npm i rclnodejs`. Des binaires précompilés sont documentés pour Ubuntu 22.04 (Humble), 24.04 (Jazzy, Kilted) et 26.04 (Lyrical) sur x64 et arm64 ; les autres environnements compilent depuis les sources, et `RCLNODEJS_FORCE_BUILD=1` force une compilation depuis les sources. Un Dockerfile est fourni pour le développement conteneurisé. Pour le navigateur, le projet documente deux options. `rclnodejs/web` est une couche typée sur le graphe ROS 2 où les capacités sont autorisées dans `web.json` ou via des indicateurs CLI, avec des appels `call`, `publish` et `subscribe` typés, un transport WebSocket plus un écouteur HTTP optionnel pour `call`/`publish` et Server-Sent Events pour `subscribe`, et une spécification OpenAPI 3.1 émise par `rclnodejs-web openapi`. `rosocket` est une passerelle WebSocket fine sans dépendances navigateur au-delà de WebSocket et JSON intégrés, démarrée via `npx rosocket`. La génération de messages est automatique : des liaisons JavaScript et des déclarations TypeScript sont générées pour chaque interface `.msg`, `.srv` et `.action` dans l'environnement activé lors de `npm install`, et `npx generate-ros-messages` relance la génération après l'installation de paquets ROS supplémentaires. Les fichiers générés se trouvent dans `node_modules/rclnodejs/generated/`. Le matériel documentaire supplémentaire comprend des abonnements RxJS Observable avec des opérateurs tels que `throttleTime()`, `debounceTime()`, `map()` et `combineLatest()` ; des démonstrations Electron construites avec Electron Forge et Three.js, y compris une démonstration de manipulateur à deux articulations ; des conseils de configuration TypeScript ; un outil compagnon `rclnodejs-cli` pour l'échafaudage et l'orchestration de fichiers de lancement ; et une documentation de référence. Le projet est sous licence Apache License 2.0.