Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the copyright holder.

Abstract

As robotic systems become larger and more complex, it is increasingly important to compose them from reusable software components that can be easily deployed in novel systems. To date, efforts in this area have focused on device abstractions and messaging frameworks that promote the rapid and interoperable development of various perception, mapping and planning algorithms. These frameworks typically promote reusability through the deﬁnition of message interfaces that are sufficiently generic to cover all supported robot conﬁgurations. However, migrating beyond these supported conﬁgurations can be highly problematic, as generic data interfaces cannot fully capture the variability of robotic systems.

Speciﬁcally, there will always be pecularities of individual robots that must be explicitly coupled to the algorithms that govern their actions, and no single message or device abstraction can express all possible information that a robot might provide. The critical
insight underlying this work is that while the information that contributes to a given algorithm may change from one robot to the next, the overall structure of the algorithm will
remain largely undisturbed. The diﬀerence is made in comparatively small details, such as
varying individual weights or thresholds that inﬂuence the results of, but do not otherwise
interfere with, the algorithm’s “main” calculations.

This work proposes that exposing a few such points of variation in a given robotic algorithm will allow the modular treatment of a wide array of platform-speciﬁc capabilities. A
corresponding design methodology is proposed for separating these platform-speciﬁc “supplemental eﬀects” from a reusable, platform-independent “core algorithm”. This methodology is evaluated through case studies of two distinct software systems, the ﬁrst drawn from the realm of autonomous urban driving, and the second from the domain of planetary exploration. The central contributions of this work are:

A nomenclature and corresponding guidelines for discriminating between platform-independent “primary” data and platform-speciﬁc “supplemental” data;

Quantiﬁed costs and beneﬁts for two technical solutions to isolating the corresponding core algorithms from their supplemental eﬀects;

A classification of typical segments of advanced robotic algorithms that can be ffected
by platform-speciﬁc data;

A set of principles for structuring such algorithms to simplify the accommodation of
future supplemental eﬀects.