Robotics and Autonomous Systems 39 (2002) 115–127
Programming with behavior-processes
Andreas Birk
a,∗
, Holger Kenn
a
, Luc Steels
b
a
International University Bremen, Campus Ring 1, 28759 Bremen, Germany
b
Vrije Universiteit Brussel, AI-Lab, Pleinlaan 2, 1050 Brussels, Belgium
Abstract
The so-called CubeOS is a special software environment for behavior-oriented robotics. It ranges from a dedicated nano-
kernel and hardware drivers for a broad set of sensors and actuators over operating system support for concurrent and real-time
programming to a special high-level language suited for novices in the field. As most special feature, the CubeOS framework
includes a novel scheduler, designed for the particular needs of behavior-oriented robotics. © 2002 Published by Elsevier
Science B.V.
Keywords: Real time; Scheduling; Control; Operating system; Behavior-oriented
1. Introduction
The field of robotics has undergone tremendous
changes since the mid-eighties on the commercial as
well as on the scientific side. The robotics market until
the mid-eighties was almost completely dominated by
robot-arms used in industrial manufacturing. Mean-
while, service robots [25], edutainment robots [1], and
various smaller niches [8] broadened and extended
the robotics market. On the scientific side, the novel
branch of the so-called behavior-oriented robotics
[4] emerged, following Brooks’ famous critique on
“classic” AI and robotics [16,17,19]. These two si-
multaneous shifts in focus, sometimes even dubbed
revolutions, came along with a series of fundamental
up to philosophical debates. Especially, the notion
of “behavior”, which runs as a red thread through
both shifts, is used within a wide range of interpre-
tations and definitions as pointed out for example in
[32].
∗
Corresponding author.
E-mail address: a.birk@iu-bremen.de (A. Birk).
As behavior-oriented robotics and its applications
become more and more mature, it is time to focus on
efficient implementations of its principles instead of
keeping on discussing what these principles are. Here,
we deal with a “behavior” from a software engineer-
ing viewpoint, namely as a software process with a
particular set of properties. The most important one is
that several behaviors can be “active” at the same time.
From a practical viewpoint, this means that behav-
iors must be executed in (pseudo-)parallel, i.e., there
must be support for concurrent programming. In ad-
dition, a software environment for behavior-oriented
robotics obviously deals with control. Hence, there
must be support for real-time processes, ensuring
guaranteed time-related qualities of service. Existing
behavior-oriented programming languages like the
subsumption architecture [17,18] or motor schemas
[2,3] came out of early scientific work in this field.
Accordingly, they did not incorporate any consider-
ations on efficiency or software engineering, forcing
the user to do a lot of hand-tailoring for each partic-
ular application. As a consequence, these languages
are not widely distributed. Instead, the complete
software environment for every behavior-oriented
0921-8890/02/$ – see front matter © 2002 Published by Elsevier Science B.V.
PII:S0921-8890(02)00198-7