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.
Read full abstract