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 介面提供端到端的類型安全。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案