Towards reliable and scalable robot communication

The Robot Operating System (ROS) is the de facto standard platform for modern robots. However, communication between ROS nodes has scalability and reliability issues in practice. In this paper, we investigate whether Erlang's lightweight concurrency and reliability mechanisms have the potential to address these issues. The basis of the investigation is a pair of simple but typical robotic control applications, namely two face-trackers: one using ROS publish/subscribe messaging, and the other a bespoke Erlang communication framework. We report experiments that compare five key aspects of the ROS and Erlang face trackers. We find that Erlang communication scales better, supporting at least 3.5 times more active processes (700 processes) than its ROS-based counterpart (200 nodes) while consuming half of the memory. However, while both face tracking prototypes exhibit similar detection accuracy and transmission latencies with 10 or fewer workers, Erlang exhibits a continuous increase in the total time taken to process a frame as more agents are added, and we identify the cause. A reliability study shows that while both ROS and Erlang restart failed computations, the Erlang processes restart 1000--1500 times faster than ROS nodes, reducing robot component downtime and mitigating the impact of the failures.

[1]  Richard Vaughan,et al.  Massively multi-robot simulation in stage , 2008, Swarm Intelligence.

[3]  Corrado Santoro,et al.  An erlang framework for autonomous mobile robots , 2007, ERLANG '07.

[4]  Simon St. Laurent,et al.  Introducing Elixir: Getting Started in Functional Programming , 2013 .

[5]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[6]  Gaurav S. Sukhatme,et al.  Most valuable player: a robot device server for distributed control , 2001, Proceedings 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems. Expanding the Societal Role of Robotics in the the Next Millennium (Cat. No.01CH37180).

[7]  Peter Norvig,et al.  Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp , 1991 .

[8]  M. Levandowsky,et al.  Distance between Sets , 1971, Nature.

[9]  Peter Norvig,et al.  Chapter 24 – ANSI Common Lisp , 1992 .

[10]  Ariel Tseitlin The Antifragile Organization , 2013, ACM Queue.

[11]  Takashi Suehiro,et al.  A Software Platform for Component Based RT-System Development: OpenRTM-Aist , 2008, SIMPAR.

[12]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[13]  Sten Grüner,et al.  Teaching Erlang using robotics and player/stage , 2009, Erlang Workshop.

[14]  Joe Armstrong,et al.  Programming Erlang: Software for a Concurrent World , 1993 .

[15]  S. Lloyd Ultimate physical limits to computation , 1999, Nature.

[16]  Donald E. Knuth The art of computer programming: fundamental algorithms , 1969 .

[17]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .