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 消息、服务和 Action 接口生成 JavaScript 绑定和 TypeScript 声明。对于 Web 集成,它提供两条路径:一个使用带有允许列表的 WebSocket/HTTP 网关的类型化 SDK (rclnodejs/web),以及一个用于简单原型的轻量级 WebSocket 网关 (rosocket)。

适用对象

偏好 JavaScript/TypeScript 的机器人开发者、构建机器人控制仪表板的 Web 开发者,以及希望将 ROS 2 与 Electron 集成以实现跨平台桌面可视化的工程师。

亮点

  • 全套 ROS 2 功能集:支持 Topics、Services、Actions、Parameters 和 Lifecycle Nodes。
  • Web 集成:包含类型化的 Web SDK 和轻量级 WebSocket 网关,将 ROS 2 能力引入浏览器。
  • 响应式编程:与 RxJS Observables 集成,实现声明式消息处理(例如节流和防抖)。
  • 高性能:基准测试显示,在 Topic 和 Service 的往返通信中,它比 rclpy 更快,且与 rclcpp 相当。
  • TypeScript 支持:为 ROS 2 接口提供端到端的类型安全。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目