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