RobotWebTools/rclnodejs

ROS 2 client library for Node.js, with browser integration

解决的问题

它提供了一种使用 JavaScript 和 TypeScript 开发 ROS 2(机器人操作系统)应用程序的方式,让开发者能够利用 Node.js 生态系统进行机器人软件开发。它弥合了机器人技术的高性能需求与基于 Web 的语言灵活性之间的差距。

运作方式

rclnodejs 作为 ROS 2 的客户端库,为 Topics、Services、Actions 和 Parameters 等核心 ROS 2 概念提供 API。它会自动为环境中发现的 ROS 2 接口(.msg、.srv、.action)生成 JavaScript 绑定和 TypeScript 声明。它还包含工具,可通过类型化的 Web SDK(rclnodejs/web)或轻量级的 WebSocket 网关(rosocket)将 ROS 2 功能暴露给浏览器。

适用对象

偏好使用 JavaScript/TypeScript 而非 C++ 或 Python 的机器人开发者,以及机器人控制界面、基于 Web 的仪表板和(使用 Electron 的)桌面应用程序的创建者,用于机器人管理。

亮点

  • 全面的 ROS 2 支持:提供 Topics、Services、Actions、Parameters 和 Lifecycle Nodes 的完整 API。
  • Web 集成:通过类型化的 SDK 或轻量级的 WebSocket 网关,内置支持基于浏览器的控制。
  • TypeScript 优先:为 ROS 2 接口提供强类型,以减少运行时错误。
  • 响应式编程:与 RxJS Observables 集成,用于声明式的消息处理管道。
  • Electron 支持:能够使用 Electron 和 Three.js 创建跨平台的桌面可视化工具。
  • 高性能:基准测试显示它比 rclpy 更快,且与 rclcpp 相当。

相关

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