RobotWebTools/rclnodejs

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

해결하는 문제

JavaScript와 TypeScript를 사용하여 ROS 2(Robot Operating System) 애플리케이션을 개발하는 방법을 제공하여 개발자가 로보틱스 소프트웨어에 Node.js 생태계를 활용할 수 있게 합니다. 로보틱스의 고성능 요구 사항과 웹 기반 언어의 유연성 사이의 격차를 메웁니다.

작동 방식

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 기능을 브라우저에 노출하는 도구도 포함합니다.

대상 사용자

C++나 Python보다 JavaScript/TypeScript를 선호하는 로보틱스 개발자, 그리고 로봇 관리용 로봇 제어 인터페이스, 웹 기반 대시보드, 데스크톱 앱(Electron 사용)을 만드는 개발자.

주요 특징

  • 포괄적인 ROS 2 지원: Topics, Services, Actions, Parameters, Lifecycle Nodes에 대한 완전한 API.
  • 웹 통합: 타입이 지정된 SDK 또는 경량 WebSocket 게이트웨이를 통한 브라우저 기반 제어의 내장 지원.
  • TypeScript 우선: ROS 2 인터페이스에 대한 강력한 타입 지정으로 런타임 오류 감소.
  • 반응형 프로그래밍: RxJS Observables와의 통합으로 선언적 메시지 처리 파이프라인 구축.
  • Electron 지원: Electron과 Three.js를 사용한 크로스 플랫폼 데스크톱 시각화 도구 구축 가능.
  • 고성능: 벤치마크에서 rclpy보다 빠르며 rclcpp와 경쟁력이 있습니다.

관련

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