Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl rclcpp_benchmark custom_msg_test geometry_msgs

Repository Summary

Description Node.js version of ROS 2.0 client
Checkout URI https://github.com/robotwebtools/rclnodejs.git
VCS Type git
VCS Version develop
Last Updated 2025-09-25
Dev Status UNKNOWN
Released UNRELEASED
Tags nodejs javascript client typescript robotics ros ros2 rcl
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rclcpp_benchmark 0.0.1
custom_msg_test 1.0.0
geometry_msgs 0.1.0

README

rclnodejs - The ROS 2 Client Library for JavaScript

npm Coverage Status npm GitHub license node npm type definitions code style: prettier

ROS Distro* Status
Rolling
Kilted
Jazzy
Humble
Linux
Linux
Windows

Note: rclnodejs development and maintenance is limited to the ROS 2 LTS releases and the Rolling development branch

rclnodejs is a Node.js client library for ROS 2 that provides comprehensive JavaScript and TypeScript APIs for developing ROS 2 solutions.

const rclnodejs = require('rclnodejs');
rclnodejs.init().then(() => {
  const node = new rclnodejs.Node('publisher_example_node');
  const publisher = node.createPublisher('std_msgs/msg/String', 'topic');
  publisher.publish(`Hello ROS 2 from rclnodejs`);
  node.spin();
});

Documentation

Installation

Prerequisites

Install rclnodejs

npm i rclnodejs

Note: To install rclnodejs from GitHub: add "rclnodejs":"RobotWebTools/rclnodejs#<branch>" to your package.json dependency section.

Docker: For containerized development, see the included Dockerfile for building and testing with different ROS distributions and Node.js versions.

See the features and try the examples to get started.

rclnodejs-cli

rclnodejs-cli is a companion project we recently launched to provide a commandline interface to a set of developer tools for working with this rclnodejs. You may find rclnodejs-cli particularly useful if you plan to create ROS 2 node(s) and launch files for working with multiple node orchestrations.

Usage: rclnodejs [command] [options]

Options:
  -h, --help                               display help for command

Commands:
  create-package [options] <package-name>  Create a ROS2 package for Nodejs development.
  generate-ros-messages                    Generate JavaScript code from ROS2 IDL interfaces
  help [command]                           display help for command

API Documentation

API documentation is available online or generate locally with npm run docs.

Electron-based Visualization

Create rich, interactive desktop applications using Electron and web technologies like Three.js. Build 3D visualizations, monitoring dashboards, and control interfaces that run on Windows, macOS, and Linux.

Demo Description Screenshot
🐢 turtle_tf2 Real-time coordinate frame visualization with turtle control. Features TF2 transforms, keyboard control, and dynamic frame updates. turtle_tf2
🦾 manipulator Interactive two-joint robotic arm simulation. Features 3D joint visualization, manual/automatic control, and visual movement markers. manipulator

Explore more examples in electron_demo.

Using rclnodejs with TypeScript

TypeScript declaration files are included in the types/ folder. Configure your tsconfig.json:

{
  "compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "target": "es2020",
  },
}

File truncated at 100 lines see the full file

Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl