Historically, robotics research has been disseminated through academic papers which lacked important implementation details, or one-time demonstrations of functionality. Neither of these methods has been conducive to either repeatable science, nor to building upon previous work. A shift is happening, however. The increasing distribution and use of open source software within robotics is moving the field to a model in which code is distributed, repeatedly executed and built upon. This cultural shift has the potential to accelerate robotics development by encouraging robust algorithms, algorithm comparison, and collaborations between research groups. Additionally, this shift should prevent new graduate students from reimplementing common algorithms. This special issue of Autonomous Robots is dedicated to exploring the use of open source software within a research context.

Creating and disseminating usable software is time-consuming. It involves re-writing prototype software to be efficient, structuring it to be readable and extendable, and testing it thoroughly. It also involves time spent writing documentation, and not to be forgotten, time spent supporting the community using the software. The benefits, however, are valuable. The creators enjoy wider visibility and credit than a paper alone could offer, and often receive interesting ideas for extending their work. The users receive building blocks for their own systems and role models for their research.

Although the value of distributing reusable software is now being recognized, it rarely results in academic publications, and so has become a secondary pursuit for the academic community. This issue aims to stress the importance of disseminating quality software components. In this issue, we invite you to focus on software contributions alongside algorithmic advances, and reflect on how the availability of software is helping the field progress. The papers in this issue represent multi-faceted contributions, being evaluated on both their theoretical research contributions as well as the availability and usability of their code. We hope that you will find the software contributions useful for your own research.

A brief overview of each paper follows.

The paper by Pomerleau et al., “Comparing ICP Variants on Real-World Data Sets: Open-source library and experimental protocol,” covers the range of contributions for this journal issue. Pomerleau et al. look at the ICP algorithm which is so important and so often used in robotics systems, but whose implementations are difficult to compare due to a lack of standardized interfaces. This paper presents an open-source library implementation of ICP which is fast yet modular, and thus adaptable for a range of robotics applications. In addition, this paper presents a framework for comparing multiple ICP implementations and provides a comparison of two baseline ICP implementations.

Ball et al. take a different view on SLAM in “OpenRatSLAM: An Open Source Brain-Based SLAM System,” by taking inspiration from rodent neural processes underlying navigation. They have created a system built atop ROS that navigates via imagery from a monocular camera. Successful experiments include delivery tasks and mapping a suburb, as well as demonstrations on two publicly available datasets.

Dryanovski et al. take indoor navigation off the ground in “An Open-Source Navigation System for Micro-Air Vehicles”. This paper provides a modular system for quadrotor navigation that builds upon the ROS infrastructure. Keeping in mind code reuse, the system provides control, state estimation, path-planning and teleoperation, but interfaces with the ROS 2D SLAM and 3D mapping tools. At the same time, the software runs onboard in real time, making it useful in practice.

Navigation and mapping frameworks rely on an underlying efficient representation of data such as occupancy maps. “OctoMap: An Efficient Probabilistic 3D Mapping Framework Based on Octrees” by Hornung et al. provides exactly that. Currently in use by many researchers, the OctoMap framework provides functionality for efficiently storing and accessing 3D data using the octree data structure.

Shifting gears, Romano et al., look at the underused sense of sound in “ROS Open-source Audio Recognizer: ROAR”. Although speech recognition has flourished recently, sound classification for other tasks has not been so readily adopted. Sound, however, can give a wealth of cues about the results of a robot’s actions in the world. For example, a crash might tell us that the robot has hit something or dropped an object it was holding. This paper provides a library known as ROAR containing tools for the learning and classification of audio events.

In “The ManyEars Open Framework - Microphone Array Open Software and Open Hardware System for Robotic Application,” Grondin et al. also recognize the importance of sound, and note that a critical cue is the direction in which the sound originated. They provide the ManyEars library, built atop ROS, for localizing, tracking and separating sounds. They additionally provide a customized microphone board and sound card as open hardware for use on various robots.

Finally, the paper by Valero-Gomez et al., “A new Paradigm for Open Robotics Research and Education with the C++ OOML,” tackles the hardware domain. An array of accessible hardware platforms, such as the Arduino and 3D printer, have come onto the market recently. Software tools are required to make use of these platforms, and open source software tools will facilitate sharing designs. This paper presents an open source mechanics library which allows users to model hardware through object-oriented C++ code, and generates fabrication files.

These papers reflect the growing trend in the research community toward reusable, open software and even hardware. Hopefully this issue will expose you to new research and software that you can use in your own robot systems. Enjoy the issue!