Rorg: Service Robot Software Management with Linux Containers

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 isolated environments using Linux containers; it also allows the robot to turn on and off software components on demand to avoid resource contention. We evaluate Rorg with a long-term autonomous tour guide robot: It manages 41 software components on the robot and relieved our maintenance burden, and it also reduces CPU load by 45.5% and memory usage by 16.5% on average.

[1]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[2]  Sebastian Wrede,et al.  Autonomous fault detection for performance bugs in component-based robotic systems , 2016, 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[3]  Holger Voos,et al.  Graph-based software knowledge: Storage and semantic querying of domain models for run-time adaptation , 2016, 2016 IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR).

[4]  Daniel King,et al.  Fetch & Freight : Standard Platforms for Service Robot Applications , 2016 .

[5]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.

[6]  Shengye Wang,et al.  TritonBot: First Lessons Learned from Deployment of a Long-Term Autonomy Tour Guide Robot , 2018, 2018 27th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN).

[7]  Matthieu Herrb,et al.  GenoM3: Building middleware-independent robotic components , 2010, 2010 IEEE International Conference on Robotics and Automation.

[8]  Daniel Ota,et al.  A general approach to health monitoring & fault diagnosis of unmanned ground vehicles , 2018, 2018 International Conference on Military Communications and Information Systems (ICMCIS).

[9]  David Bernstein,et al.  Containers and Cloud: From LXC to Docker to Kubernetes , 2014, IEEE Cloud Computing.

[10]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[11]  Wolfgang Hess,et al.  Real-time loop closure in 2D LIDAR SLAM , 2016, 2016 IEEE International Conference on Robotics and Automation (ICRA).

[12]  Shinpei Kato,et al.  An Open Approach to Autonomous Vehicles , 2015, IEEE Micro.

[13]  Ruffin White,et al.  ROS and Docker , 2017 .

[14]  Matthew J. Bays,et al.  Maritime autonomy in a box: Building a quickly-deployable autonomy solution using the Docker container environment , 2016, OCEANS 2016 MTS/IEEE Monterey.

[15]  Aljoscha Pörtner,et al.  SwarmRob: A Toolkit for Reproducibility and Sharing of Experimental Artifacts in Robotics Research , 2018, ArXiv.

[16]  Holger Voos,et al.  A Reference Architecture for Deploying Component-Based Robot Software and Comparison with Existing Tools , 2018, 2018 Second IEEE International Conference on Robotic Computing (IRC).

[17]  Abhishek Verma,et al.  Large-scale cluster management at Google with Borg , 2015, EuroSys.

[18]  Sven Wachsmuth,et al.  The Cognitive Interaction Toolkit - Improving Reproducibility of Robotic Systems Experiments , 2014, SIMPAR.

[19]  Nancy M. Amato,et al.  A Roadmap for US Robotics - From Internet to Robotics 2020 Edition , 2021, Found. Trends Robotics.

[20]  Silvano Dal-Zilio,et al.  Formal Verification of Complex Robotic Systems on Resource-Constrained Platforms , 2018, 2018 IEEE/ACM 6th International FME Workshop on Formal Methods in Software Engineering (FormaliSE).

[21]  Kurt Konolige,et al.  The Office Marathon: Robust navigation in an indoor office environment , 2010, 2010 IEEE International Conference on Robotics and Automation.

[22]  Eric A. Brewer,et al.  Borg, Omega, and Kubernetes , 2016, ACM Queue.

[23]  Mahadev Satyanarayanan,et al.  OpenFace: A general-purpose face recognition library with mobile applications , 2016 .

[24]  Joelle Pineau,et al.  Person tracking and following with 2D laser scanners , 2015, 2015 IEEE International Conference on Robotics and Automation (ICRA).

[25]  Simha Sethumadhavan,et al.  RoboBench: Towards sustainable robotics system benchmarking , 2016, 2016 IEEE International Conference on Robotics and Automation (ICRA).

[26]  Zhiyuan Yan,et al.  Avalon: Building an Operating System for Robotcenter , 2018, ArXiv.

[27]  Herman Bruyninckx,et al.  The real-time motion control core of the Orocos project , 2003, 2003 IEEE International Conference on Robotics and Automation (Cat. No.03CH37422).

[28]  Herman Bruyninckx,et al.  The BRICS component model: a model-based development paradigm for complex robotics software systems , 2013, SAC '13.