Bulletin of Electrical Engineering and Informatics Vol. 12, No. 5, October 2023, pp. 3027~3038 ISSN: 2302-9285, DOI: 10.11591/eei.v12i5.5590 3027 Journal homepage: http://beei.org Towards a ROS2-based software architecture for service robots Yong Hwan Jo, Se Yeon Cho, Byoung Wook Choi Department of Electrical and Information Engineering, Seoul National University of Science and Technology, Seoul, South Korea Article Info ABSTRACT Article history: Received Dec 23, 2022 Revised Feb 3, 2023 Accepted Feb 23, 2023 This paper presents a scalable software architecture based on robot operating system 2 (ROS2) for service robots. ROS2 supports the data distribution service (DDS) protocol that provides benefits such as real-time operation and security and performance enhancements. However, ROS2 still lacks task management capabilities, essential for practical robotic applications consisting of multiple threads and processes. Moreover, integrating new devices into ROS2 requires additional development effort to create specific drivers for specific devices. The proposed software architecture addresses these drawbacks and provides a simple and user-friendly programming interface for easier integrating of various devices and existing ROS2 applications. Moreover, it is designed using python with multi-processing to avoid issues related to the python global interrupt lock (GIL). To verify the developed software architecture, an application for a custom-made service robot called the SeoulTech service robot (SSR) is implemented on a Jetson Xavier NX board with various features, such as ROS2 navigation and SLAM, text-to-speech (TTS), speech recognition, and face recognition. Keywords: Embedded system Python Robot operating system 2 Service robot Software architecture This is an open access article under the CC BY-SA license. Corresponding Author: Byoung Wook Choi Department of Electrical and Information Engineering Seoul National University of Science and Technology Seoul 01811, South Korea Email: bwchoi@seoultech.ac.kr 1. INTRODUCTION Recently, robots made by integrating complex and diverse mechanical devices and sensors have been used in many applications. Robots are finding active use in various fields, from the existing manufacturing industry to the service sector [1]. In these areas, use cases are increasing in applications that involve working with humans or sharing tasks closely with them, such as serving and delivery [2], [3]. Service robots must work with humans or interact with customers to provide services [4], [5]. The development cost and duration of a service robot have increased considerably because it is difficult to apply the existing service robot architecture to these types due to the direction of design and development efforts depending on the purpose of the service. To this end, the demand for robot software frameworks such as robot operating system (ROS) [6] and OROCOS [7] has been constantly increasing. In particular, ROS1 has become the new norm for robotic developers, and existing robotic platforms offer integration to ROS1. However, ROS1 does not support real-time systems and communication protocols, which are the requirements for a reliable and deterministic robotic system. Thus, ROS2 [8] has been developed to solve these issues. ROS2 uses data distribution service (DDS) [9], [10] with the quality of service (QoS) concept to provide improve the real-time performance of inter-node communications and its security. However, robotic applications must perform multiple tasks that often involve multi-threading and multi-processing applications. ROS2 still lacks task management, which is essential for practical applications. Moreover, the