Re: FSM vs. Petri nets for component modelling...

Herman Bruyninckx <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Message-ID <Pine.LNX.4.33.0112051013050.32239-100000@pc25-213.mech.kuleuven.ac.be>
On Tue, 4 Dec 2001, Daniel Simon wrote:

Daniel, thanks a lot for your documents.  I'm now going to read them in
more detail, but I have lots of burning questions :-)

[...]
> 1. oldcontrol runs, listening for a begin switching signal;
> 2. newcontrol resumes and initializes, while oldcontrol still runs, maybe in
> degraded mode (e.g. servo-loops running and trajectory generator frozen);
> 3. when signal end-init received, oldcontrol output is disabled, newcontrol
> loop runs and sends its first output
> 4. oldcontrol executes its end code and suspends, while newcontrol runs  (and
> listening for events)

Some more implementation-oriented questions:
- do you make distinction between signals and events?
- what is a typical implementation of this material: single thread,
  multiple threads, distribution over network?
- any suggestions about implementation on top of a POSIX API?
- what is the determinacy of the Orccad transition implementation?
  (In the context of hard real-time, or ``critical real-time
   application'' as you describe it on your web page.)
- any ideas about how easy/necessary it is to decouple the _runtime execution_
  of the synchronization functionality from the specific language
  chosen to _specify_ the synchronization (i.c., Esterel)?
- any ideas about the `best' specification language? I mean: go for a
  specialised custom-made language, or use already existing(?) XML
  based functional specification languages?
- I guess each of the Orccad tasks has a default `fail safe' state, to
  which the system will move when an event occurs for which no
  `handler' has been foreseen?
- Any suggestions about an object-oriented (re)design of Orccad? That
  is, events are objects/messages exchanged between components.
- Have you found the need to distinguish between `events' (`signals')
  and `commands'? Could they be implemented in the same class tree?

Some general questions:
- are the Orccad ideas suitable for supporting _general_ hybrid
  control systems? Or `only' for one particular sub-class?
- what are the fundamental differences between FSM/Petri-nets and the
  new vogue UML? (I think there are none: UML moves from
  object-orientation to dynamic agents and synchronisation, (Coloured)
  Petri nets move from dynamic agents and synchronisation to object
  orientation :-) The advantage of Petri nets/FSMs is that lots of
  implementation examples and experiences exist.

> The output of the two control laws are never merged!
I guess that you require the user to provide an explicit transition
control algorithm if merging is desired for whatever reason?
(At least, that would be my suggestion :-) )
Have you had systems where merging would have been really helpful? Do
you think it is overkill?

> >Can you refer to one particular publication where these specific
> >topics are explained in detail?
>
> Try that one:
> http://www.inrialpes.fr/bip/people/simon/rtcsa99.ps.gz
>
Thanks! BTW, you have already offered to give a seminar or so on this
topic; maybe there happens to be a similar event (organised at your
lab or somewhere else) in the not so far future and which Orocos people
could attend? I for one am quite interested in such an event... :-)

The `official' partners of the EU-sponsored Orocos project are
preparing a first Deliverable for the project, in which the major
components and design issues will be explained. I think it would be a
good occasion to see whether and where the Orccad experiences
could/should be integrated in these design..


Herman
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.