(1) Overview
Introduction
Motivation and significance
Robots have become increasingly prevalent in our daily lives, with their progressive integration into society through innovative applications. [5]. Naturally, robotics education has evolved to parallel this societal trend [17]. Departing from the typical case of programming a single robot, there is a growing interest in studying the realization of groups of robots that can cooperate and act collectively [5, 16]. Swarm robotics [4] is an approach to design collective behaviors for such groups of robots. Education in swarm robotics presents an avenue for fostering interdisciplinary engineering education by addressing challenges in robotics cooperation [35, 17].
A robot swarm is a group of relatively simple robots whose strength builds upon the large number of individuals in the group. Typically, the robots in a swarm are simple in design, hardware and software—making them easy-to-produce and cost-effective devices [8]. This is the case of the e-puck [28]: a generic small mobile robot designed for education. Originally introduced in 2009, the e-puck is probably the most used robot in swarm robotics education and research [6]. The basic form of the e-puck is a two-wheeled robot endowed with infrared proximity sensors and a low-performance microcontroller. Beyond its basic form, the e-puck can be enhanced with new sensors, actuators, and computational power through plug-in extensions. Although the e-puck has been extensively used in the past, no common framework or set of software tools exists to experiment with it. In most cases, users develop ad hoc control software and interfaces to interact with the robot—which are typically not reusable. Indeed, modern common mobile robot functionalities like autonomous navigation and obstacle avoidance need to be implemented every time from the ground up when experimenting with the e-puck.
Robot Operating System (ROS) [31] is a collection of robotics development tools that can serve as a standard framework to develop control software for robots. ROS provides tools and software libraries to develop applications that cover the design, implementation, and operation of robots—most of them being the standard in the academia and the industry. A large and growing community supports ROS by developing reusable software tools that are shared in open-source repositories. We believe that enabling ROS for the e-puck will reduce the burden on educators and researchers by streamlining the implementation of basic robot functionalities. This, in turn, allows a concentrated focus on challenges inherent in the operation and coordination of multiple robots [33, 11]. However, to enable ROS for the e-puck, it is essential to meet the minimal computing requirements for installation and provide a fundamental set of software tools to initiate the development of control software for the robot.
At the moment, two commercial computing modules are available for extending the computational power of the e-puck: the Gumstix Overo COM extension board2 and the Pi-puck extension board [27, 1]. The Gumstix Overo COM has been largely used with the e-puck since its release in 2010, and the the Pi-puck extension board is a newer module commercially introduced in 2019. Alongside the commercial modules, researchers have also introduced an ad hoc computing module that uses Hardkernel Odroid XU4 [21]—authors coined the name Xpuck for e-pucks using this module. E-pucks that use the Pi-puck extension board, as well as the Xpucks, have ROS-ready operating systems (ROS Melodic for the former, and ROS Indigo for the latter). However, ROS is unavailable for e-pucks equipped with the Gumstix Overo COM extension board and its companion Omnivision Module extension—to which we refer as G-pucks in the rest of the paper. G-pucks have been traditionally operated through the Ångström3 operating system: an old and deprecated Linux distribution that does not support ROS. At the moment, the only option available to G-pucks users for enabling ROS is to upgrade the robots by acquiring Pi-puck extension boards. However, acquiring new hardware modules may entail significant economic investments, especially when considering the large number of robots typically employed in swarm robotics education and research. Moreover, the recent global shortage of electronics material and devices, in particular Raspberry Pi, has shown that such upgrades are also highly sensitive to external and unpredictable issues.
We present DeimOS, an open-source Linux-based operating system for the G-puck providing support for ROS Melodic. DeimOS is a software-only solution to enable ROS for G-pucks. We developed DeimOS under the framework of the Yocto Project4 and we configured it to operate with the core ROS software packages. Thanks to the modular nature of the Yocto Project, DeimOS allows one to easily add, remove, share, and reuse ROS packages that can bootstrap the development of new software for the robot. DeimOS integrates support for ARGoS [30]—a swarm dedicated simulator widely used in education and research. Users of G-pucks can design and test their control software in simulation using the tools provided by ARGoS and later port it to the robots. G-pucks that use DeimOS can be integrated in ROS-based applications altogether with e-pucks endowed with other extension modules such as the Pi-puck extension board or ad hoc implementations like the Xpuck. DeimOS hence offers an alternative to modernize the e-puck with ROS so that it remains a suitable platform to conduct robotics experiments in education and research.
Impact
It is our contention that DeimOS provides an easy-to-use solution for teaching (swarm) robotics with the G-puck. Teaching robotics to new generations has recently received growing attention [17]. Indeed, students interested in robotics are frequently repelled by the many, multi-faceted challenges of this field, especially concerning the hardware. Providing robust, well documented platforms is therefore mandatory to promote a progressive learning of the complexity of robotics.
DeimOS can also strongly benefit the research community in swarm robotics as there is still a large body of recent literature that reports experiments with G-pucks [18, 22, 13, 12, 29, 34, 9]. The development and deployment of software in a ROS-ready system facilitates the initialization, verification and evaluation of the experiments. ROS provides tools that are useful for monitoring and managing experiments such as rosbag5—a logging and replay tool, and rviz6—a monitoring and control interface with plugins for a wide variety of sensors and actuators. All these tools prove desirable for monitoring and managing experiments involving large groups of robots.
DeimOS enables an easy and convenient way of performing heterogeneous swarm experiments including both G-pucks and e-pucks using the Pi-puck extension board by enabling communication through ROS. Yet, we expect that DeimOS can be easily implemented in new platforms. Indeed, the Yocto Project—on which we base the development of DeimOS—provides the necessary tools to port our configuration to other robot platforms. We include configuration files to compile DeimOS for systems that use other versions of Gumstix—such as the DuoVero and Verdex Pro series.
We have mainly used DeimOS in the context of the emergent research on swarm SLAM [24, 23, 32, 26]. In the current release of DeimOS, we provide the core functionalities of ROS and the software packages required to experiment with swarm SLAM. We expect that DeimOS can also contribute to research in human-swarm interaction [25], as ROS provides useful tools to monitor and interact with the robots at runtime. By extending the capabilities of the G-puck, we believe that DeimOS will benefit our current research on the automatic design of robot swarms [2, 3]—in which the complexity of the tasks that can be performed by swarms of e-pucks has been so far limited by the few capabilities available to the robots [7, 12].
Conclusions
We present DeimOS, a Linux-based ROS-ready operating system for the G-puck robot. DeimOS provides tools for using modern robotics software on the e-puck. By integrating ROS alongside libraries from ARGoS3, DeimOS leverages a large set of new and useful tools for both education and research—for example, runtime monitoring of robots, and logging and replay of experiments. DeimOS extends the number of feasible tasks that can be performed by the G-puck. A proof of this potential is the recent experiments on swarm SLAM—a task whose complexity is beyond what could be possibly achieved with the original operating system of the robot. We believe that DeimOS supports further complex experimentation with the G-puck, and additional packages can be included thanks to the modularity provided by the framework of the Yocto Project.
Implementation and architecture
Software Architecture
DeimOS is based on the Yocto Project, whose distributions are composed of layers that regroup packages and configuration files according to the targeted platform architecture. The definition and configuration of each package in a layer is determined by specific files named recipes. Specifically, DeimOS is based on the Warrior branch of the Gumstix Repo Manifest for the Yocto Project Build System,7 which adds a Gumstix-specific layer to the Yocto Project Poky standard distribution. Although Warrior is not the latest available Yocto distribution, the Overo Gumstix of the G-puck seems not to support later releases such as Dunfell. DeimOS includes the latest ROS distribution available for Warrior, ROS Melodic. We included the recipes for the core functionalities of ROS, and additional ROS packages that are being used in swarm robotics experiments: GMapping [14, 15], multirobot_map_merge [20] and multimaster_fkie [19]. In addition, we integrated an e-puck layer that provides recipes for ARGoS3 along with a template recipe useful to develop new control software for the e-puck with ARGOS3 and ROS—this template handles the initialization and operation of hardware components of the robot. The templates we provide allow developers to easily conceive new control software for the robot, and also, to integrate any software package of the rich ROS ecosystem. The installation instructions can be found at https://github.com/demiurge-project/DeimOS. Prebuilt image files are also available at https://doi.org/10.5281/zenodo.10551351.
Software Components
We present here the main software packages of the distribution.
Robot Operating System software
On top of the core ROS packages that enable the ROS software management and logging, DeimOS includes additional specific packages for robot mapping and communication:
GMapping8 is a single-robot, self localization and mapping (SLAM) algorithm that takes sensor information and produces a two-dimensional occupancy grid of the environment. Robots can use this package to produce a map that describes the empty and obstructed areas that they encounter.
multirobot_map_merge9 is a map merging algorithm that enables the fusion of an arbitrary number of maps at run time—in swarm robotics experiments, it is indeed useful to merge the different maps built by the large number of robots of the swarm.
multimaster_fkie10 allows multiple systems using ROS to communicate with each other. It provides management of the information flow, and embeds discovery and synchronization processes that allow new systems to be added or discarded on the fly. This property is specially relevant in swarm robotics to maintain the scalability of the system.
ARGoS3 Software
ARGoS3 [30] is a swarm-dedicated simulator that allows one to use the same control software for both simulated and real robots. The version of the ARGoS control software included in DeimOS is argos3-beta48 (which is the latest version supported by the argos3-epuck plugin, see below). ARGoS3 supports natively the basic e-puck platform, but not its hardware extensions. However, it can be easily extended through plugins to support them. In particular, the argos3-epuck plugin [10] provides support for configurations of the e-puck11 extended with the range & bearing board (e-RandB), ground sensors, and camera (Omnivision module).
Templates
We provide two Yocto recipe templates that serve as a basis to develop new software packages. One template allows one to easily conceive ROS-ready and ARGoS3 control software, and a second one is intended to enable the development of custom ROS-only software.
Quality control
We used DeimOS in swarm robotics experiments that require the software packages provided by ROS. In particular, we have recently focused on conducting swarm SLAM experiments [24]. In Kegeleirs et al [23], we used a swarm of 10 e-puck robots to map different bounded indoor environments. In our research, we developed control software for several exploration strategies reported in the literature, and evaluated the performance of these strategies on swarm SLAM. First, individual maps were produced by each e-puck using GMapping, and later, we merged the maps using the multirobot_map_merge ROS package. Additionally, we conducted related experiments. For example, we merged maps of two e-pucks directly on the robots thanks to the inter-robot communication capabilities enabled by multimaster_fkie.
Finally, DeimOS allowed us to remotely monitor and control e-puck robots. We used the templates to produce control software that integrates ARGoS3 and ROS. The control software enabled the e-pucks to deliver sensor information at runtime, and to receive control commands from an external operator. We used the tools provided by ROS to interface and operate the e-pucks with a Sony PlayStation Dualshock 4 controller.12 None of the aforementioned experiments would have been feasible with the G-puck without the integration of ARGoS3 and ROS that DeimOS provides.
(2) Availability
Operating system
DeimOS can be compiled on standard Linux operating systems (tested on Ubuntu 16.04 and newer).
Programming language
Yocto Project Warrior (2.7.4).
Additional system requirements
No special requirements are required to compile DeimOS. The operating system can be compiled in typical desktop machines produced in the last five years. DeimOS will run on e-puck robots embedded with Gumstix extension boards.
Dependencies
No additional dependencies are required.
Software location
Code repository
Name: GitHub
Persistent identifier: https://github.com/demiurge-project/DeimOS
Licence: GPL
Date published: 28/04/2021
Language
English
(3) Reuse potential
We have outlined the reuse potential of DeimOs in the above discussion.
By integrating ROS alongside libraries from ARGoS3, DeimOS provides a new set of tools that extends the number of feasible tasks that can be performed with swarm-dedicated robots like the e-puck. Thanks to the modularity provided by the framework of the Yocto Project, Deimos can be customized to fit the requirements of specific experiments. In particular, we believe that it could enable the interoperability of multiple types of e-pucks in the context of heterogeneous swarm robotics experiments.
Notes
[1] The software was implemented by MK. The paper was drafted MK and DGR and edited by MB; all authors read and commented the final version. The research was directed by MB.
[11] http://www.e-puck.org.
Competing interests
The authors have no competing interests to declare.
