Interest to cooperate :-)

Reinhard Budde <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Organization gmd.de
Message-ID <[email protected]>
Pls. see the attached ascii-file.

Yours,
Reinhard Budde
-- 
Dr. Reinhard Budde - http://ais.gmd.de/~budde/  
mail:[email protected]
GMD                - German National Research Center for Information
Technology
AiS                - Autonomous intelligent Systems
D-53754 St.Augustin  tel: +2241-14-2417,fax: +2241-14-2324
orocos (text/plain, 11.5 KB)
This text is an extraction from some project descriptions, project proposals,
heavily condensed. It is only to inform the OROCOS community that we here at
GMD, the German National Research Centre for Computer Science,
AiS, Institute for Autonomous Intelligient Systems
are interested in what's going on with OROCOS. Any comment (+ and/or -) is
welcome.

Contact: [email protected]

The text describes our view, how robot controller should be designed.

VerS --- Dependable Embedded Systems

VerS investigates the construction of embedded systems which are
dependable in that correct functionality and satisfaction of hard
real-time constraints are guaranteed.  Dependability is a necessary condition
for systems acting in possibly safety-critical environments.  Hard real-time
implies that a reaction will take place in an a priori specified interval of
time.  

VerS is based on the approach of synchronous object-oriented
programming.  Emphasis is on abstracting and extending engineering
techniques in cooperation with industry and research units aiming at a
robust system architecture, and on supporting the emerging technology by
formalisms and tools. 

In the future VerS will focus on dynamic modification of systems and on
distributed systems.

The researchers of team VerS are/have been engaged in two ESPRIT-projects
(SYRF and CRISYS).

1.1 Motivation

Embedded reactive systems are crucial components of controllers for robots,
plants, cars, up to household utensils.  To gain flexibility such devices are
built using micro-controllers with an increasing share of software. The
software consists out components (reactive objects) communicating with each
other and the environment by messages (signals). This is independant of
whether the system is centralized or distributed. Two paradigms are in use to
design such systems:

- event-triggered systems: the reaction of an object is effected by the
  signals from the environment and other objects. Occurence of a signal
  ("event") causes activity.

- time-triggered systems: the system itself decides at what points in time
  the objects have to react. The state of the signals (their value
  when the reaction is initiated) is given to the objects. An abstract time
  generated inside the system itself causes activity.

Industry, customers and the public depend on a reliable functionality of
embedded systems. In this context time-triggered systems are preferable.
Though they require a lot of pre-planning at design-time and are less
flexible than event-triggered systems, they offer especially in
high-load scenarios predictable service and are more robust and testable. 

1.2 The Synchronous Approach

A viable abstraction of the concrete notion of time in time-triggered systems
is achieved by synchronous languages. They have been specifically designed by
mixed teams from Control Theory and Computer Science to deal with discrete time
models, based on a precise mathematical model.

Synchronous modeling reflects the basic idea of digital hardware design
and of many engineering formalisms: All processes proceed in discrete
steps controlled by a clock.  Triggered by the tick of a clock, a system
starts to react and the reaction is finished in time before the next
tick occurs (perfect synchronization hypothesis).  This idea is unusual
in the software domain, although real-time systems (single-loop programs
e.g.) are designed according to this assumption. 

We combine the model of a clocked process and the construction of
object-oriented systems: The components of an application are objects.
At the tick of the clock, all signals provided by the
environment are made available to all objects.  The reaction causes the
execution of operations of the objects; their internal state may change and
signals may be emitted. The activities (and communication) of of all objects
must be (provable) finished before the next tick occurs. 

Advantages of this hypothesis are: understandable and highly abstract
design; deterministic and reproducible behavior of the program. 
Concerning system validation, the synchronous approach has many
advantages.  Verification on finite-state models (model-checking,
automata abstraction) is quite successful, because generated models are
smaller as the standard models generated by finite automata.  Moreover,
synchronous languages offer an original way for specifying critical
properties by means of synchronous observers.  These properties may be
proven at compile-time or, complimentarily, tested at run-time. 

We forecast that the synchronous model will gain a similar prominence in
controller design as the object-oriented model nowadays has in SW-engineering
community.

1.3 State Of The Art

... Petri nets ... message sequence charts ... annotated FSM ... Statecharts
... Esterel ... Lustre/Scade ... timed automata ... OMITTED

2. Results

Our past and current research adresses [Literatur:sync,dsgn]

- a small ''semantic engine'' for highly compact generation of models and code.

- integration of object-oriented and synchronous design.

- integration of design styles based on continous state information
  (e.g. difference equations) with discrete state information (e.g. finite
  state machines).

The team VerS has been the first group in the synchronous community to
have a smooth integration of the different synchronous formalisms based
on a precise mathematical model.  It is the first group which supports
this integration by a programming environment, too. 

We generate target code for small micro-controllers (or directly
hardware formats) which is highly efficient with regard to time as well
as space constraints, even for object-oriented programs.

2.1 sE

The team has developed the Java dialect sE.  sE integrates synchronous
and object-oriented modeling, thus enabling proofs of system assertions
by model-checking as well as a robust and flexible design of complex
systems.  In sE

- a system is defined by classes, which encapsulate both real-time
  behavior and data.

- real-time behavior of a class is defined as synchronous behaviour.
  As notation we use well known formalisms similar to Esterel, Lustre
  and Statecharts. The styles are smootly integrated.

- data of a class consists of methods and fields as usual, which may
  be used by the synchronous part exclusively.

- the application is a tree-like structure of objects of these classes,
  rooted in one instance of a configuration class, which is responsible
  for initialization.

- Synchronous Automata (SyA, see 2.2) are used as intermediate language.

- based on SyAs, re-targetable C-code is produced. For this C-code
  timing constraints are checked and then target hardware selected.

Note, that validation, including model-checking, is done on the same
intermediate language as code generation, i.e. no separate model has to be
constructed for validation. This increases substantially the designer's
belief, that the application fulfills proven assertions.

The synchronous model enables us to apply hardware evaluation techniques to
the real-time behavior of the whole application.  From an operating
system point of view the generated target-code can be considered as a
compiler-generated static scheduler for the functions and procedures of the
abstract data types, where the activation conditions are boolean
formulas made from signal and state information.

2.2 Synchronous Automata SyA

Synchronous Automata (SyA) are used to capture the reactive behavior.  A
SyA defines the reaction to some input signals producing output signals.
A reaction may depend on previous reactions.  This memory is encoded by
a finite set of registers. 

We present a SyA by statements of the form "o <- e" and "r <- e". 
The signal "o" is present, resp.  the register "r" is active, if the
boolean expression "e" evaluates to true.  The expression "e" contains
signals as well as registers. 

The reaction function "P!" is a set of equations, which defines
the instantaneous reaction of the synchronous program: whether output
signals are present or absent in a reaction.  The synchronous compiler
defines the sequence for evaluating the assignments "o <- e".
This step is called causality analysis. 

The next state function "P>" is a set of equations, which
defines the value of the registers for the next reaction, i.e.  the state
for the next reaction.  This evaluation terminates a reaction.  The
assignments "r <- e" may be executed in parallel.  As an
example consider the reactive definition:

loop
   await next i; emit s;
end;

"i" is input signal, "s" is output signal. The
await-statement introduces a register "r", because it has to be
remembered, whether the program waits for "i" to be present in an
input event.  Thus one equation for the register "r" defines the next
state function, and one equations for the output signal "s"
defines the reaction function. 

The program is compiled into the SyA with

P! :  s <- i&r
P> :  r <- alpha or (r & !i) or (r & i)

The next state function "P>" consists out of three parts: (1) "alpha",
the system initialization state, is true when the loop is entered, (2)
"(r & !i" if the program stays waiting when "i" is not present, (3) "r &
i" if the program got "i" in an instant, the wait terminated and the
loop is re-executed.  The next state function is later optimized to
"r <- alpha or r". 

It works as follows: Initially all the registers are set
to false, "alpha" is set to true since "alpha" is the initial state.
At the initial reaction no signal will be emitted. The next state is
{ r } ("alpha" does not belong to any follower state by definition).
Then signal "s" will be emitted in any reaction  the
input signal "i" is present. { r } is its own successor state.       

A reactive SyA computes a unique reaction in a finite amount of time. Because
of synchronous communication, outputs are immediately available to calculate
more outputs and this process has to terminate for the automaton to be
reactive. This is captured by the existence of a fixed-point for the function
"P!". Programs with a unique fixed-point are called causally correct.
This is checked by sE and excludes anomalies like programs in which
emission of a signal triggers a program component, that cancels the component,
that made the emission.

A SyA only contains boolean expressions.  Advantages are, that equations
(1) can be processed by BDD systems (e.g. model checking), and (2) they
can be linked, comparable to the linking of modules based on external
names.  Equations of the reaction function with the same left-hand-side
are or-ed, all others are merged.  The causality check has to be redone.
Thus we can successfully circumvent the state explosion problem which
burdens the building of cross products in other FSM formalisms. 

But the distinctive advantage is that a SyA can be expressed in virtually any
hardware or software description language. sE has back-end drivers for Verilog,
BLIF, DC and C. Using the first alternative the scheduler can be burned into an
FPGA thus ensuring very fast response times.  The last alternative maps the
SyA to C code which in turn can be compiled for the microcontroller present
in almost all embedded systems anyhow.

3. Future Work

Our main research will be to extend the technology into two directions:

- dynamic creation and deletion of reactive objects
- distributed controller.

4. Literature

{sync}  A.Poign\'e, M.Morley, O.Maffeis, L.Holenderski, R.Budde,
        The Synchronous approach to Designing Reactive Systems, 
        Formal Methods in System design, Vol 12, No.2, 1998

{dsgn}  R.Budde, P.Ploeger, K.H. Sylla,
        A Synchronous Object-Oriented Design Flow for Embedded
        Applications
        FDL '99, Kluwer, 1999
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.