rclnodejs

ROS2.0 JavaScript client with Node.js

v0.21.4
Apache-2.0
Score: 0%

README

rclnodejs LinuxLinux

rclnodejs is a Node.js client for the Robot Operating System (ROS 2). It provides a simple and easy JavaScript API for ROS 2 programming. TypeScript declarations are included to support use of rclnodejs in TypeScript projects.

* rclnodejs development and maintenance is limited to all active ROS 2 LTS releases and the Rolling development branch

Here's an example for how to create a ROS 2 node that publishes a string message in a few lines of JavaScript.

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

Installation

Prerequisites

Install rclnodejs

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

Documentation

API documentation is available online.

JavaScript Examples

Try the examples to get started.

Using rclnodejs with TypeScript

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

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

TypeScript example:

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

See TypeScript demos for more examples.

Note that the interface.d.ts file is updated each time the generate_messages.js script is run.

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.

Try the electron_demo/turtle_tf2 demo for real-time coordinate frame visualization with dynamic transforms and keyboard-controlled turtle movement. More examples in electron_demo.

demo screenshot

License

Apache License Version 2.0