Call for contributions: ROS 2 Node.js client

Hi there,

I want to invite anyone who is interested in developing robotic programs by web technology to contribute to the Node.js client of ROS 2.

Node.js is a JavaScript runtime which is powerful, across-platform and easy to develop. Also, by leveraging npm, it has the largest distribution platform. The Node.js client of ROS 2, rclnodejs, is just the one based on Node.js, not the node in ROS :sweat_smile: and the rclnodejs started to support the ROS 2 since its first stable release - Ardent Apalone in 2017 (long long ago). I also presented the project in person on ROSCon2018.

The latest release of rclnodejs (0.10.0) has supported the Dashing Diademata. Along with the increasing maturity of ROS 2, more and more developers in the ROS ecosystem would like to migrate their projects to ROS 2 gradually, and I believe the requirement of having a Node.js (JavaScript) client will be stronger than anytime before. The project rclnodejs is managed by the Robot Web Tools organization . If you have web developing experience in ROS 1 era, you must hear of it. It offers a bunch of useful modules to bridge ROS to the web world. For the rclnodejs, it has a thin layer to wrap the rcl library, and 96% test coverage to ensure the quality. What’s more, we have Windows/Linux/macOS CIs to verify every PR and release.

Unfortunately, there is still a gap. I submitted an issue to describe the functions which are absent till now. I hope anyone who cares the web technology can help to contribute.



We at Rover Robotics are interested in helping to support web tools for ROS 2. We are currently working on web tools for setting up a robot (connecting it to wifi, setting UDEV rules). Then we will be moving on to higher level features like creating / editing / saving maps, visualizing camera feeds with bounding box overlays.

We think that it would be nice to modularize these components into apps and have a ROS 2 web app store for posting to and installing from.

Hi Nick,

I am very glad to hear from you, thanks! I strongly agree that integrating the web components into ROS 2 is valuable.

Currently, we have two components designed for ROS 2, that’s rclnodejs and ros2-web-bridge. Others are suitable for ROS 1 only, you can check them. But I want to point out that some repo are not active, please notice that if you want to reuse them in the future.

Meanwhile, the OSRF once expressed that they want to port the current ROS 1 components to ROS 2, see here, but I don’t know the current status of it.

Finally, you are welcome to contribute to the components of ROS2, and you can also contact jihoon who is very helpful to discuss your thoughts.

The porting effort is still ongoing. The latest PR is from today: Porting rosbridge library (capabilities and internal) to ROS2. by jubeira · Pull Request #419 · RobotWebTools/rosbridge_suite · GitHub

1 Like

Hi Dirk, thanks for your update!