tion depending on the current conditions. To tackle
this problem the position control system of the robot
was fitted with a self-tuning controller that is able to
identify model based control parameters prior to data
acquisition.
The main part of the controller was implemented
using a software programmable logic controller
(PLC). The input to the controller is the current lat-
eral position relative to the pipe axis. An iterative
algorithm using data from various sensors, mainly
three banks of laser distance sensors, determines the
position. The PC-based implementation of this algo-
rithm has an unknown worst-case execution time
(WCET). The actual execution time is depending on
the internal state of the software as well as on the
current input data. Further delay stems from the
transmission of data over the Ethernet network be-
tween PLC and PC as well as from the scheduling
scheme of the calculation task. While the actual con-
troller is robust against certain latency and jitter of
the arrival of position data, we must consider cases
when position data does not arrive in time. This may
happen due to unusual long execution time of the
position determination algorithm or due to transient
overload of the communication channel.
Another challenge is the second part of the self-
tuning controller, which performs the identification
of the system’s behavior and which derives an ade-
quate control parameter set. The algorithm used here
is very sensitive to jitter of the interarrival times of
position measurements and to missing samples.
An architectural approach for solving both prob-
lems is described in section 3. In section 4, the ac-
tual controller is presented in more detail. Section 5
briefly discusses the dynamic quality of service ap-
proach used to avoid failure in case of transient
overload.
2 RELATED WORK
Realizing time critical applications using complex
distributed systems is a challenging task. On one
hand, considerable work has been done to introduce
time constraints or timely predictable behavior. On
the other hand, a number of approaches have been
published to relax time constraints of certain appli-
cations by introducing fault tolerance mechanisms.
In the field of communication middleware, the
Object Management Group (OMG) has released
extensions to the known CORBA-specification to
extend it with real-time features (Wolfe et al., 1997).
The primary focus here is on the introduction of
priorities when executing method calls, which re-
quires appropriate system software support. Soft-
ware libraries implementing this standard were also
made available (Schmidt et al., 1998).
To relax time constraints, approaches that try to
balance quality of service and required computation
time were considered. This includes the classical
“anytime” (Dean, Boddy, 1988) or “flexible”
(Hendler, 1989) algorithms, where quality of service
can be dynamically traded against shorter computa-
tion times. This scheme can be used to ensure the
timeliness of computations. The authors of (Nett et
al., 1998) have also dealt with meeting task dead-
lines. They use a dynamic task scheduling scheme
with detection and handling of timing faults. Faults
are handled via a task-pair strategy with invocation
of an alternative exception task in case of a timing
fault.
3 DATA ACQUISITION AND
PROCESSING
3.1 Modeling Data Flow using Services
We developed a service oriented CORBA-based
software architecture focusing on data flow and dis-
tributed processing. In our system, an application is
constructed by combining software modules that
provide functionality to other modules via a generic
interface. The modules may be arbitrarily distributed
over a number of computers in a network. The inter-
face of the services is data centric. It allows services
to offer data via named buffers to other services or
clients. Each buffer represents a time series of spe-
cific data objects (see Fig. 2). A service can repre-
sent a data source (e.g. a sensor), a processing mod-
ule or a data consumer (e.g. an actuator, a database,
or a GUI). Services that represent sensors or sensor
systems may provide data that represents a single
measurement, a time series of measurements, a vec-
tor, an image, or any other types of data that are
generated by the sensor system. Other services may
not provide sensor data but processing results.
By connecting the services via the pub-
lish/subscribe paradigm the data flow of the applica-
tion is modeled. In this communication model, the
services play different roles. The module providing
data is called the service provider. The data con-
sumer is called the service client. Please note that in
our system a client does not subscribe to specific
data elements but to notifications on when such ele-
ments become available.
A DISTRIBUTED FAULT TOLERANT POSITION CONTROL SYSTEM FOR A BOAT-LIKE INSPECTION ROBOT
29