这个项目能做什么

rclnodejs 是 ROS 2 的 Node.js 客户端库,公开用于构建 ROS 2 应用的 JavaScript 和 TypeScript API。根据 README,其涵盖话题、服务、动作、参数、生命周期节点、TypeScript 支持、RxJS Observable 订阅、Electron 集成以及从浏览器访问 ROS 2。 安装需要 Node.js 20.20.2 或更高版本以及 ROS 2 SDK,并且在安装、构建或运行之前先 source ROS 2 环境。该包通过 npm i rclnodejs 安装。文档说明预构建二进制文件适用于 x64 和 arm64 上的 Ubuntu 22.04(Humble)、24.04(Jazzy、Kilted)和 26.04(Lyrical);其他环境从源码构建,设置 RCLNODEJS_FORCE_BUILD=1 可强制从源码构建。项目提供用于容器化开发的 Dockerfile。 针对浏览器,项目文档给出了两种选项。rclnodejs/web 是位于 ROS 2 计算图之上的类型化层,能力通过 web.json 或 CLI 参数加入允许列表;它提供类型化的 call、publish 和 subscribe,使用 WebSocket 传输,并为 call/publish 提供可选 HTTP 监听器,为 subscribe 提供 Server-Sent Events,还可通过 rclnodejs-web openapi 生成 OpenAPI 3.1 规范。rosocket 是一个精简的 WebSocket 网关,除内置 WebSocket 和 JSON 外没有浏览器依赖,通过 npx rosocket 启动。 消息生成是自动的:在 npm install 期间,会为已 source 环境中的每个 .msg、.srv 和 .action 接口生成 JavaScript 绑定和 TypeScript 声明;安装额外 ROS 包后,可运行 npx generate-ros-messages 重新生成。生成的文件位于 node_modules/rclnodejs/generated/。 其他文档内容包括:使用 throttleTime()、debounceTime()、map() 和 combineLatest() 等操作符的 RxJS Observable 订阅;使用 Electron Forge 和 Three.js 构建的 Electron 示例,包括一个双关节机械臂示例;TypeScript 配置指南;用于脚手架搭建和 launch 文件编排的配套 rclnodejs-cli;以及基准测试文档。项目采用 Apache License 2.0 许可。