One of the defining features of the field of robotics is its breadth and
heterogeneity. Unfortunately, despite the availability of several robotics
middleware services, robotics software still fails to smoothly handle at least
two kinds of variability: algorithmic variability and lower-level variability.
The consequence is that implementations of algorithms are hard to understand
and impacted by changes to lower-level details such as the choice or
configuration of sensors or actuators. Moreover, when several algorithms or
algorithmic variants are available it is difficult to compare and combine them.
In order to alleviate these problems we propose a top-down approach to
express and implement robotics algorithms and families of algorithms so that
they are both less dependent on lower-level details and easier to understand
and combine. This approach goes top-down from the algorithms and shields them
from lower-level details by introducing very high level abstractions atop the
intermediate abstractions of robotics middleware. This approach is illustrated
on 7 variants of the Bug family that were implemented using both laser and
infra-red sensors.Comment: 6 pages, 5 figures, Presented at DSLRob 2013 (arXiv:cs/1312.5952