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

Abstract

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 https://github.com/rosin-project/rxros2.

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

Publication series

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

Keywords

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

Fingerprint

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

Cite this