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

Peter Soetens <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Organization KU Leuven
Message-ID <[email protected]>
On Tuesday 04 December 2001 11:58, Daniel Simon wrote:
>
> The periodic infinite loop computes the control, but also the observer
> functions used to trigger exceptions (joint limits, sensor failure..) and

We would outsource the observer functions to another component.  The sensor 
detects failure, signals this to the Exception Handler Component, which then 
takes appropriate action (putting the servoloop in a safe mode).  The cool 
part would be that actually the servoloop defines what to do with sensor 
failure etc, but that the Exception Handler executes the action.  This 
results in the possibility of different exception handling for different 
servoloops / components in general.

> synchronisation events (e.g. to synchronise the motion of several robots
> sharing a same workspece). All these functions are predefined, and the

Synchronisation is in Orocos an Event.  Exceptions are also kinds of events, 
but with '' higher priority'' than normal and maybe they will be processed 
within another component (Exception Handler vs Event Handler).  
However, synchronisation should be done in the trajectory generator, which 
generates the setpoints for the servoloop.  The trajectory generator 
registers/listens for a ''synchronize'' event and changes trajectory 
setpoints accordingly. (The event can even contain the new end position)

The modularity allows us to differentiate responsabilities.

> ....
>
> Smooth control tasks switching is another difficult problem. From the
> control side, hot switching with a well controlled transient needs that
> some regularity condition between successive controls holds (e.g. the task
> functions must have the same size). In some cases it may be necessary to
> run a transient task to glue the two main ones.

Do you mean that the following happens :
1. oldcontrol runs + drives
2. newcontrol listens passively on input for a few cycles
3. oldcontrol output + newcontrol output is gradually mixed from 100 % old + 
0% new to 0% old + 100 % new.
4. oldcontrol switches out

What do you mean with " the task functions must have the same size'' ?

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