Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2975969.2975971acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Towards reliable and scalable robot communication

Published: 23 September 2016 Publication History

Abstract

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.

References

[1]
J. Adams. Distributed robots with Elixir. http://www. erlang-factory.com/sfbay2014/josh-adams, 2014. Online; retrieved August 5, 2016.
[2]
N. Ando, T. Suehiro, and T. Kotoku. A software platform for component based RT-system development: OpenRTM-aist. In Simulation, Modeling, and Programming for Autonomous Robots, pages 87–98. Springer, 2008.
[3]
J. Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, 2007.
[4]
G. Biggs. RT-Erlang. https://staff.aist.go.jp/geoffrey. biggs/erlang.html, 2010. Online; retrieved August 5, 2016.
[5]
K. Conley. rospy package summary. http://wiki.ros.org/ rospy, 2012. {Online; retrieved August 5, 2016}.
[6]
P. de Kok. Why ROS’s timestamps are not enough. http://pkok.github.io/2014/10/16/Why-ROS’ s-timestamps-are-not-enough/, 2014.
[7]
Online; retrieved August 5, 2016.
[8]
P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec. The many faces of publish/subscribe. ACM Computing Surveys (CSUR), 35 (2):114–131, 2003.
[9]
N. Garg. Apache Kafka. Packt Publishing, 2013.
[10]
B. P. Gerkey, R. T. Vaughan, K. Støy, A. Howard, G. S. Sukhatme, and M. J. Matari´c. Most valuable Player: A robot device server for distributed control. In Proceedings of the 2001 IEEE/RSJ International Conference on Intelligent Robots and Systems, volume 3, pages 1226– 1231. IEEE, 2001.
[11]
R. Gommers, T. Oliphant, R. Kern, C. Harris, and J. Millman. NumPy. http://www.numpy.org/, 2006. Online; retrieved August 5, 2016.
[12]
S. Gruener and T. Lorentsen. KERL: Kent Erlang robotic library. https://sourceforge.net/projects/kerl/, 2013. Online; retrieved August 5, 2016.
[13]
S. Grüner and T. Lorentsen. Teaching Erlang using robotics and player/stage. In Proceedings of the 8th ACM SIGPLAN workshop on ERLANG, pages 33–40. ACM, 2009.
[14]
D. E. Knuth. The Art of Computer Programming: Fundamental Algorithms, volume 1. Addison-Wesley, 1968.
[15]
S. S. Laurent and J. D. Eisenberg. Introducing Elixir: Getting Started in Functional Programming. O’Reilly Media, 2014.
[16]
M. Levandowsky and D. Winter. Distance between sets. Nature, 234 (5323):34–35, 1971.
[17]
S. Lloyd. Ultimate physical limits to computation. Nature, 406(6799): 1047–1054, 2000.
[18]
A. C. Lutac. Real-time robot camera control in Erlang. Level 4 Dissertation, School of Computing Science, University of Glasgow, 2016.
[19]
V. Nicosia and C. Santoro. Experiences from using Erlang for autonomous robots. In In Proc. of 12th International Erlang User Conference (EUC), 2006.
[20]
P. Norvig. Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP. Morgan Kaufmann, 1992.
[21]
ROS Documentation. Open Source Robotic Faundation, 2009.
[22]
Open Source Robotic Foundation. ROS client libraries. http: //wiki.ros.org/Client%20Libraries, 2009. {Online; retrieved August 5, 2016}.
[23]
OpenCV. Face detection using haar cascades. http: //docs.opencv.org/3.1.0/d7/d8b/tutorial_py_face_ detection.html#gsc.tab=0, 2015. Online; retrieved August 5, 2016.
[24]
M. Quigley, K. Conley, B. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng. ROS: An open-source robot operating system. In ICRA Workshop on Open Source Software, volume 3, page 5, 2009.
[25]
M. Quigley, J. Faust, B. Gerkey, and T. Straszheim. roscpp package summary. http://wiki.ros.org/roscpp, 2012. {Online; retrieved August 5, 2016}.
[26]
C. Santoro. An Erlang framework for autonomous mobile robots. In Proceedings of the 2007 SIGPLAN workshop on ERLANG, pages 85–92. ACM, 2007.
[27]
C. Santoro and V. Nicosia. ROSEN – The RObotic Simulation Erlang eNgine, 2007.
[28]
A. Tseitlin. The antifragile organization. Communications of the ACM, 56(8):40–44, 2013.
[29]
D. Vasiliev. ErlPort – connect Erlang to other languages. http: //erlport.org/, 2013. Online; retrieved August 5, 2016.
[30]
R. Vaughan. Massively multi-robot simulation in Stage. Swarm Intelligence, 2(2-4):189–208, 2008.

Cited By

View all
  • (2024)Smart Navigation and Management of Vehicle Teleportation Using Qt ROS GUIWireless Personal Communications10.1007/s11277-024-11470-z137:3(1903-1916)Online publication date: 5-Jul-2024
  • (2022)On-Device CPU Scheduling for Robot Systems2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)10.1109/IROS47612.2022.9982085(11296-11303)Online publication date: 23-Oct-2022
  • (2021)Effective Crash Recovery of Robot Software Programs in ROS2021 IEEE International Conference on Robotics and Automation (ICRA)10.1109/ICRA48506.2021.9560876(9498-9504)Online publication date: 30-May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang 2016: Proceedings of the 15th International Workshop on Erlang
September 2016
61 pages
ISBN:9781450344319
DOI:10.1145/2975969
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 September 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Erlang
  2. ROS
  3. Robotics
  4. fault tolerance
  5. scalability

Qualifiers

  • Research-article

Funding Sources

Conference

ICFP'16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Smart Navigation and Management of Vehicle Teleportation Using Qt ROS GUIWireless Personal Communications10.1007/s11277-024-11470-z137:3(1903-1916)Online publication date: 5-Jul-2024
  • (2022)On-Device CPU Scheduling for Robot Systems2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)10.1109/IROS47612.2022.9982085(11296-11303)Online publication date: 23-Oct-2022
  • (2021)Effective Crash Recovery of Robot Software Programs in ROS2021 IEEE International Conference on Robotics and Automation (ICRA)10.1109/ICRA48506.2021.9560876(9498-9504)Online publication date: 30-May-2021
  • (2021)Reliable distribution of computational load in robot teamsAutonomous Robots10.1007/s10514-021-09967-8Online publication date: 2-Feb-2021
  • (2017)Scaling ReliablyACM Transactions on Programming Languages and Systems10.1145/310793739:4(1-46)Online publication date: 17-Aug-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media