Rorg: Service Robot Software Management with Linux Containers

Rorg: Service Robot Software Management with Linux Containers

Rorg: Service Robot Software Management with Linux Containers Shengye Wang Xiao Liu Jishen Zhao Henrik I. Christensen∗ Abstract— Scaling up the software system on service robots increases the maintenance burden of developers and the risk of resource contention of the computer embedded on robots. As a result, developers spend much time on configuring, deploying, and monitoring the robot software system; robots may utilize significant computer resources when all software processes are running. We present Rorg, a Linux container-based scheme to manage, schedule, and monitor software components on service robots. Although Linux containers are already widely-used in cloud environments, this technique is challenging to efficiently adopt in service robot systems due to multi-tasking, resource constraints and performance requirements. To pave the way of Linux containers on service robots in an efficient manner, we present a programmable container management interface and a resource time-sharing mechanism incorporated with the Robot Operating System (ROS). Rorg allows developers to pack software into self-contained images and runs them in Fig. 1. TritonBot [3]: a Rorg-powered long-term autonomous tour guide isolated environments using Linux containers; it also allows robot that chats with people and navigates to introduce places of interest the robot to turn on and off software components on demand in a university office building. We use Rorg to manage the 41 software to avoid resource contention. We evaluate Rorg with a long- components in TritonBot. Rorg only runs the components that are needed term autonomous tour guide robot: It manages 41 software and shuts them down when they are idle to save computing resources. components on the robot and relieved our maintenance burden, to power and weight considerations. Efforts have been put and it also reduces CPU load by 45.5% and memory usage by into tackling these issues, but the infrastructure side of robot 16.5% on average. systems has only received limited attention. I. INTRODUCTION Recently, the Linux container has become a popular tool Robotic research and application are advancing at a high to deploy software in data centers and the cloud [10], [11], pace in recent years, and service robots have started to [12]. This technique allows developers to pack software and enter the consumer market and assist human at home and dependencies into self-contained images, deploy them onto offices [1]. Whereas deploying service robots is becoming different targets with minimal configuration, and isolate them easier, the robot systems themselves are becoming more from the host system to varying degrees. This technique also complex [2]. From our previous experience, a tour guide opens an opportunity to mitigate the maintenance burden and robot for human-robot interaction (HRI) research in a uni- resource limitation in service robots (Section II). However, versity office building consists of about 65 software pro- few research and commercial service robots currently benefit grams for face recognition, voice recognition, navigation, and from Linux containers due to three primary reasons: various other tasks [3]; autonomous driving vehicles have • Most of the current research and commercial service even more components for localization, pedestrian detection, robots use certain middleware or framework [13], [14], mission planning, motion planning, and so on [4]. As a robot [15] to facilitate loosely-coupled architecture design, and system evolves and expands, the complexity of the software among them ROS [13] is the most popular representative. components is becoming a more pressing issue that in turn, While ROS-based software can run inside containers in challenges scaling up. theory, there is limited experience to containerize the Developing software for robot applications has two pri- robotic software. mary challenges: maintenance burdens and resource lim- • Service robots have numerous software components with itations. First, when the number of software components complex relationships, and not all of them are in use increases, organizing, deploying, and monitoring them be- at the same time. Although existing tools can leverage comes tedious and error-prone [5], [6], [7]. Second, com- Linux containers to provide interfaces for one component putationally intensive programs use much of the computing to start/stop/monitor another, few take the runtime pattern resources in the on-board computer [8], [9]. They challenge of programs into account. scaling up since a service robot can only carry a computer • Few Linux container orchestration tools are designed for with moderate processing power and memory capacity due environments with tight overall resource budget, as they target for data centers and cloud platforms [12] where *Department of Computer Science and Engineering, University of Cal- ifornia, San Diego. La Jolla, CA 92093, USA. fshengye, x1liu, almost unlimited computing resources are available. jzhao, [email protected] Our goal is to enable efficient software organization Google Front End (GFE) / MoveBase / Gmapping / Microservice and scheduling on autonomous service robots in a high- BigTable / Chubby / Dremel OpenFace / OpenPose performance and scalable manner. We propose Rorg, a toolkit that leverages Linux containers to manage and schedule soft- Middleware App Engine / Hadoop / Spark ROS / MOOS / Yarp / MAVLink ware on service robot. Rorg makes three key contributions: • Rorg adopts a Linux container engine, Docker [10] to Software Borg / Kubernetes / Mesos Not Exist run robot software in individual containers. Rorg works Management with ROS [13], the de facto standard robotic middleware. Computer Clusters / Network Sensors / Actuators / Hardware It provides default configurations to run ROS software Infrastructure / Storage Arrary On-board Computer without modification, and we provide an example setup of a fully-functional tour guide robot application with Rorg. Data Center Service Robot Fig. 2. Robot systems are similar to data centers. Each hierarchy in • Rorg organizes the robot software into multiple Linux a service robot can find its counterparts in a data center, except for the containers and models the static and dynamic relationships “software management system.” We built Rorg to fill in the gap and address between them. Rorg provides an interface to create, query, the unique challenges of software management in service robots where resources are sacred. update, delete, start, stop, and restart these containers manually or programmatically. Prior research on applying Linux containers to robots. • Rorg allows the software components to time-share com- Previous research applied Linux containers to robotics to puting resources: It pauses or shuts down inactive services some extent. White et al. use Linux containers to run to save computing resources but reactivates them when ROS with Docker [19], but their examples do not illustrate they are required for an upcoming task. Rorg monitors the actual challenges on building and maintaining a moderate- system and keeps the resources utilization at a reasonable scale service robot system. Mabry et al. exploit Docker level. to deploy software on a maritime robot [20], but their We evaluate Rorg on a long-term autonomy tour guide approach only applies to application-specific robot and does robot, TritonBot (Figure 1). Rorg and its early prototype not scale up to fit the more complex software system of helped us to keep the robot working for over six months. The service robots. Avalon [21] is a crowd-robot scheduler that tour guide robot went through 126 software version updates distributes tasks to multiple robots; it also leverages Linux and 71 configuration changes. Rorg now manages 41 services containers to encapsulate the applications, but it does not (containers) on the robot. The robot consumes 89:4% of CPU address challenges on a standalone service robot. Cognitive time and 3:41 GB of memory on average without Rorg. With Interaction Toolkit (CITk) [22] adopts Linux containers to Rorg, the average CPU drops to 48:7% and the memory construct and run robot simulation experiments; a later work usage is 2:85 GB. Although web service and data center RoboBench [23] is a benchmark suite based on CITk that re- applications have wildly adopted container technology, Rorg produces robotic simulation on workstations. SwarmRob [24] addresses the specific challenge on service robots: multi- is a toolkit to share experimental heterogeneous robots using purpose systems with limited computing resources but have Linux containers. However, none of CITk, RoboBench, or high performance/responsiveness requirements. SwarmRob was tested on physical robots. The rest of this paper is organized as following: Section II discusses related work and the unique challenges of service Difference between service robots and data center appli- robot software management. Section III presents the design cations where Linux containers are used. Robot software of Rorg and introduces its features to ease software manage- systems are similar to data center applications in some ment and avoid resource contention. Section IV evaluates aspects. Modern applications in data centers are often built Rorg with a real tour guide service robot and measures its with the “microservices” pattern: individual microservices performance, and finally Section V concludes the paper. communicate and cooperate with each other to deliver greater functionality [25] — the same pattern also exists in ROS-

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us