Reactive Programming of Robots with RxROS

Henrik Larsen, Gijs van der Hoorn, Andrzej Wąsowski*

*Corresponding author for this work

Research output: Chapter in Book/Conference proceedings/Edited volumeChapterScientificpeer-review

1 Citation (Scopus)


Reactive programming is an alternative to callback-based programming. This tutorial chapter first discusses the problems of asynchronous programming with callbacks and locks—the standard ROS 2 API—and then presents a way to overcome them using the reactive programming paradigm. We introduce RxROS: a new API for implementing ROS nodes, based on the paradigm of reactive programming. We demonstrate advantages on small code examples in a tutorial style using simple nodes written in RxROS for ROS 2, and show the results of performance experiments indicating that RxROS does not introduce any significant performance overhead. RxROS is available under a BSD license, with bindings for both ROS 1 and ROS 2, in both Python and C + +. The implementation of RxROS for ROS 2 is available at

Original languageEnglish
Title of host publicationRobot Operating System (ROS)
Subtitle of host publicationThe Complete Reference
EditorsAnis Koubaa
ISBN (Electronic)978-3-030-75472-3
ISBN (Print)978-3-030-75471-6
Publication statusPublished - 2021

Publication series

NameStudies in Computational Intelligence
ISSN (Print)1860-949X
ISSN (Electronic)1860-9503


  • Basics & foundations
  • Contributed ros packages
  • Reactive programming
  • ROS 2
  • RxCpp
  • RxPy
  • Tutorials


Dive into the research topics of 'Reactive Programming of Robots with RxROS'. Together they form a unique fingerprint.

Cite this