RobotWebTools/rclnodejs

Node.js version of ROS 2.0 client

해결하는 문제

JavaScript 및 TypeScript를 사용하여 ROS 2 (Robot Operating System) 애플리케이션을 개발하는 방법을 제공합니다. 이를 통해 개발자는 Node.js 생태계를 로봇 공학에 활용할 수 있으며, C++ 또는 Python만으로 작성할 필요 없이 웹 기반 인터페이스, Electron을 통한 데스크톱 앱 및 반응형 메시지 처리 파이프라인을 생성할 수 있습니다.

작동 원리

rclnodejs는 ROS 2를 위한 클라이언트 라이브러리로 작동하며 Topics, Services, Actions, Parameters와 같은 핵심 로봇 통신 패턴을 위한 API를 제공합니다. 설치 중에 ROS 2 메시지, 서비스 및 액션 인터페이스에 대한 JavaScript 바인딩과 TypeScript 선언을 자동으로 생성합니다. 웹 통합을 위해 두 가지 경로를 제공합니다: 보안을 위해 허용 목록(allow-list)을 사용하는 WebSocket/HTTP 게이트웨이 기반의 타입 지정 SDK (rclnodejs/web), 그리고 간단한 프로토타입을 위한 경량 WebSocket 게이트웨이 (rosocket)입니다.

대상 사용자

JavaScript/TypeScript를 선호하는 로봇 개발자, 로봇 제어 대시보드를 구축하는 웹 개발자, 그리고 크로스 플랫폼 데스크톱 시각화를 위해 ROS 2를 Electron과 통합하고자 하는 엔지니어.

주요 특징

  • 전체 ROS 2 기능 세트: Topics, Services, Actions, Parameters 및 Lifecycle Nodes를 지원합니다.
  • 웹 통합: 타입 지정 Web SDK와 경량 WebSocket 게이트웨이를 포함하여 ROS 2 기능을 브라우저로 가져옵니다.
  • 반응형 프로그래밍: RxJS Observables와 통합되어 선언적 메시지 처리(예: throttling 및 debouncing)를 지원합니다.
  • 고성능: 벤치마크 결과, 토픽 및 서비스 라운드트립에서 rclpy보다 빠르며 rclcpp와 경쟁할 만한 성능을 보여줍니다.
  • TypeScript 지원: ROS 2 인터페이스에 대해 엔드 투 엔드 타입 안정성을 제공합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트