Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3528535.3531518acmconferencesArticle/Chapter ViewAbstractPublication PagesmiddlewareConference Proceedingsconference-collections
research-article
Open access

ROS-SF: A Transparent and Efficient ROS Middleware using Serialization-Free Message

Published: 24 October 2022 Publication History

Abstract

In recent years, ROS becomes the dominant middleware for robotic systems. The performance of its message-passing paradigm is crucial to the robot's reaction time. However, previous works only focus on efficiency, but ignore the requirement for transparency. We present ROS-SF framework, which can transparently eliminate serialization and de-serialization under the ROS APIs. The key contributions are a new serialization format called SFM and a life-cycle management method for serialization-free messages. Evaluation results show that our ROS-SF framework can improve the message-passing performance of ROS by up to 76.3\%. Application case study and applicability study show that our ROS-SF framework can be transparently applied to many existing ROS-based systems and packages. Even in the failure cases, our ROS-SF framework can provide modification guidance.

References

[1]
Oren Ben-Kiki, Clark Evans, and Ingy döt Net. 2021. YAML Ain’t Markup Language Version 1.2. (October 2021). https://yaml.org/spec/1.2/spec.html Retrieved May 9, 2022 from
[2]
Tim Bray. 2017. The JavaScript Object Notation (JSON) Data Interchange Format. RFC 8259 (2017), 1–16. https://doi.org/10.17487/RFC8259
[3]
Tim Bray, Jean Paoli, and C. M. Sperberg-McQueen. 1997. Extensible Markup Language (XML). World Wide Web J. 2, 4 (1997), 27–66. http://www.w3.org/TR/WD-xml-970807
[4]
Alex Campos. 2019. FlatData API. (March 2019). http://community.rti.com/examples/flatdata-api Retrieved May 9, 2022 from
[5]
Peter Druschel and Larry L. Peterson. 1993. Fbufs: A High-Bandwidth Cross-Domain Transfer Facility. In Proceedings of the Fourteenth ACM Symposium on Operating System Principles, SOSP 1993, The Grove Park Inn and Country Club, Asheville, North Carolina, USA, December 5-8, 1993. 189–202. https://doi.org/10.1145/168619.168634
[6]
Mike Eisler. 2006. XDR: External Data Representation Standard. RFC 4506 (2006), 1–27. https://doi.org/10.17487/RFC4506
[7]
Jakob Engel, Vladyslav C. Usenko, and Daniel Cremers. 2016. A Photometrically Calibrated Benchmark For Monocular Visual Odometry. CoRR abs/1607.02555 (2016). http://arxiv.org/abs/1607.02555
[8]
Sadayuki Furuhashi. 2021. It's like JSON. but fast and small. (December 2021). https://msgpack.org/ Retrieved May 9, 2022 from
[9]
Google. 2020. FlatBuffers. (January 2020). https://google.github.io/flatbuffers/ Retrieved May 9, 2022 from
[10]
Google. 2022. Protocol Buffers. (May 2022). https://developers.google.com/protocol-buffers/ Retrieved May 9, 2022 from
[11]
W. Gropp, E. Lusk, A. Skjellum, and R. Thakur. 1999. Using MPI: Portable Parallel Programming with the Message-passing Interface. MIT Press. 99016613 https://books.google.ae/books?id=DFT1ngEACAAJ
[12]
Izzat El Hajj, Thomas B. Jablin, Dejan S. Milojicic, and Wen-Mei W. Hwu. 2017. SAVI objects: sharing and virtuality incorporated. Proc. ACM Program. Lang. 1, OOPSLA (2017), 45:1–45:24. https://doi.org/10.1145/3133869
[13]
Maurice Herlihy and Barbara Liskov. 1982. A Value Transmission Method for Abstract Data Types. ACM Trans. Program. Lang. Syst. 4, 4 (1982), 527–551. https://doi.org/10.1145/69622.357182
[14]
Pieter Hintjens. 2013. ZeroMQ: Messaging for Many Applications. O'Reilly Media.
[15]
Albert S. Huang, Edwin Olson, and David C. Moore. 2010. LCM: Lightweight Communications and Marshalling. In 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, October 18-22, 2010, Taipei, Taiwan. IEEE, 4057–4062. https://doi.org/10.1109/IROS.2010.5649358
[16]
Costin Iordache, Stephen M. Fendyke, Mike J. Jones, and Robert A. Buckley. 2021. Smart Pointers and Shared Memory Synchronisation for Efficient Inter-process Communication in ROS on an Autonomous Vehicle. CoRR abs/2108.07085 (2021). https://arxiv.org/abs/2108.07085
[17]
Christian Kurmann and Thomas Stricker. 2003. Zero-Copy for CORBA - Efficient Communication for Distributed Object Middleware. In 12th International Symposium on High-Performance Distributed Computing (HPDC-12 2003), 22-24 June 2003, Seattle, WA, USA. 4–13. https://doi.org/10.1109/HPDC.2003.1210011
[18]
Chris Lattner and Vikram S. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In 2nd IEEE / ACM International Symposium on Code Generation and Optimization (CGO 2004), 20-24 March 2004, San Jose, CA, USA. 75–88. https://doi.org/10.1109/CGO.2004.1281665
[19]
LLVM. 2022. Clang: A C Language Family Frontend for LLVM. (March 2022). http://clang.llvm.org/ Retrieved May 9, 2022 from
[20]
Sun Microsystems. 1987. XDR: External Data Representation standard. RFC 1014 (1987), 1–20. https://doi.org/10.17487/RFC1014
[21]
Raul Mur-Artal and Juan D. Tardós. 2017. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras. IEEE Trans. Robotics 33, 5 (2017), 1255–1262. https://doi.org/10.1109/TRO.2017.2705103
[22]
OpenCV team. 2022. OpenCV - Official Site. (May 2022). http://opencv.org/ Retrieved May 9, 2022 from
[23]
Oracle. 2010. Java Object Serialization Specification. (January 2010). https://docs.oracle.com/javase/7/docs/platform/serialization/spec/serialTOC.html Retrieved May 9, 2022 from
[24]
Python Software Foundation. 2022. pickle - Python object serialization. (April 2022). https://docs.python.org/3/library/pickle.html Retrieved May 9, 2022 from
[25]
M. Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng. 2009. ROS: an open-source Robot Operating System. In ICRA Workshop on Open Source Software.
[26]
Aniruddh Rao, Visali Mushunuri, Samar Shailendra, Bighnaraj Panigrahi, and Anantha Simha. 2017. Reliable robotic communication using multi-path TCP. In 9th International Conference on Communication Systems and Networks, COMSNETS 2017, Bengaluru, India, January 4-8, 2017. IEEE, 429–430. https://doi.org/10.1109/COMSNETS.2017.7945427
[27]
Real-Time Innovations. 2007. DDS: An Open Standard for Real-Time Applications. (January 2007). http://www.rti.com/products/dds-standard Retrieved May 9, 2022 from
[28]
Muhamad Risqi U. Saputra, Andrew Markham, and Niki Trigoni. 2018. Visual SLAM and Structure from Motion in Dynamic Environments: A Survey. ACM Comput. Surv. 51, 2 (2018), 37:1–37:36. https://doi.org/10.1145/3177853
[29]
Raj Srinivasan. 1995. XDR: External Data Representation Standard. RFC 1832 (1995), 1–24. https://doi.org/10.17487/RFC1832
[30]
Konstantin Taranov, Rodrigo Bruno, Gustavo Alonso, and Torsten Hoefler. 2021. Naos: Serialization-free RDMA networking in Java. In 2021 USENIX Annual Technical Conference, USENIX ATC 2021, July 14-16, 2021, Irina Calciu and Geoff Kuenning (Eds.). USENIX Association, 1–14. https://www.usenix.org/conference/atc21/presentation/taranov
[31]
The Object Management Group. 2015. Data Distribution Service. (March 2015). http://www.omg.org/spec/DDS/1.4/ Retrieved May 9, 2022 from
[32]
The Object Management Group. 2020. Extensible and Dynamic Topic Types for DDS. (February 2020). https://www.omg.org/spec/DDS-XTypes/ Retrieved May 9, 2022 from
[33]
The Object Management Group. 2021. Common Object Request Broker Architecture, 3.4 edition. (February, 2021). http://www.omg.org/spec/CORBA/ Retrieved May 9, 2022 from
[34]
Yu-Ping Wang, Xu-Qiang Hu, Zi-Xin Zou, Wende Tan, and Gang Tan. 2019. IVT: an efficient method for sharing subtype polymorphic objects. Proc. ACM Program. Lang. 3, OOPSLA (2019), 130:1–130:22. https://doi.org/10.1145/3360556

Cited By

View all
  • (2023)Accelerating Multilingual Applications with In-memory Array Sharing2023 IEEE International Conference on Big Data (BigData)10.1109/BigData59044.2023.10386462(255-262)Online publication date: 15-Dec-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
Middleware '22: Proceedings of the 23rd ACM/IFIP International Middleware Conference
November 2022
110 pages
ISBN:9781450393409
DOI:10.1145/3528535
This work is licensed under a Creative Commons Attribution International 4.0 License.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 October 2022

Check for updates

Badges

Author Tags

  1. Message Passing Middleware
  2. Robot Operating System
  3. Serialization-Free Message

Qualifiers

  • Research-article

Conference

Middleware '22
Sponsor:
Middleware '22: 23rd International Middleware Conference
November 7 - 11, 2022
QC, Quebec, Canada

Acceptance Rates

Middleware '22 Paper Acceptance Rate 8 of 21 submissions, 38%;
Overall Acceptance Rate 203 of 948 submissions, 21%

Upcoming Conference

MIDDLEWARE '24
25th International Middleware Conference
December 2 - 6, 2024
Hong Kong , Hong Kong

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)278
  • Downloads (Last 6 weeks)33
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Accelerating Multilingual Applications with In-memory Array Sharing2023 IEEE International Conference on Big Data (BigData)10.1109/BigData59044.2023.10386462(255-262)Online publication date: 15-Dec-2023

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media