[Fwd: Mini meeting Toulouse 22-23 april / Execution Engine]

Christian Schlegel <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Organization FAW Ulm
Message-ID <[email protected]>
Christian Schlegel wrote:

> Anthony Mallet wrote:
>
> Hi,
>
> Unfortunately I don't have time to come to Toulouse (even that will be
> a very interesting meeting !)
>
> The two figures are very good since they make the topics we are
> talking about much clearer. I would however rename the corba_comp.pdf
> to something else avoiding CORBA because that structure does not
> depend on CORBA. We further have to clarify the different levels of
> task execution. Let me try to give some hints which might be useful
> for further discussions.
>
>
> The communication patterns form a framework since they assist the
> component developer and the component user in building and using
> distributed components in such a way that the semantic of the
> interface is predefined by the patterns. However, the communication
> patterns do not help the component developer in structuring the
> internals of a component. However, communication is related to the
> internal component structure since the communication patterns provide
> blocking calls which must be interruptable independently of what the
> component developer is doing inside his component. The minimal
> structure needed in a component to ensure that kind of interrupting
> component activities is given by the SmartSoft configuration class.
> The configuration class provides a thread level activity control and
> leaves it to the user what he is doing inside his threads as long as
> he uses the configuration class to lock / unlock states in critical
> blocks. Setting a state normally allows a pending user thread to pick
> up its activity since a user thread normally acquires a state,
> performs some activity and releases that state again. If the user
> thread is looping, it repeats its activity as long as he can acquire
> the desired state. Methods to set states, to abort locked states and
> pending communication calls etc. are all provided in the configuration
> class.
>
> Therefore, the configuration class is related to communication, but is
> also one approach to structure the internals of a component in such a
> way, that the external behavior with respect to reactivity etc. is
> achieved. The configuration class and its use cases provide more or
> less one approach for the internal architecture of a component.
>
> This now is exactly the place where Genom provides another approach.
> As far as I understand, the user does not put its calculations and
> activities into several interruptable threads (as in SmartSoft) but
> splits calculations / activities into codels. The execution engine of
> Genom now organizes the different codels in such a way that various
> criterions like interruptability etc. etc. are ensured. I can imagine
> that the Genom approach is better suited for components where one has
> to meet realtime constraints since the Genom execution engine gives
> you probably much more control on the way how codels are interleaved.
> The SmartSoft approach is not as fine grained and seems to be easier
> applicable if you have more time intensive calculations (even cyclic
> calculations) which you do not want to split into several codels.
>
> The difference between the SmartSoft and the Genom view therefore is
> the level of assistance and comfort (and therefore of course the level
> of constraints) to structure the activities within a component. Both
> approaches have the same goal, namely ensuring specific demands on the
> behavior of a component. Even though both approaches are very similar
> they follow a different programming paradigm influencing the way a
> component developer has to think on the internal activities of his
> component.
>
>
> Completely independent of that level is the task execution level. Of
> course, one can use finite state automatons to control complex task
> sequences, it is often not very convenient do this since exception
> handling etc. is very troublesome if you have to expand every possible
> state sequence into the automaton. Therefore task nets (which are
> interpreted and can therefore be expanded depending on the current
> knowledge about the environment etc.) are much more suitable at this
> level. There are many tasks where one can use both and one can not
> really state that one approach is easier to handle than the other.
>
>
> Looking at a robotic architecture you can always find a component
> which is responsible for managing limited ressources. Of course,
> ressources can be managed without a central component as long as the
> top level coordination mechanisms delegates some decisions to lower
> level components. Then however, the top level coordination mechanism
> has set up this kind of distributed coordination and makes sure that
> this is compatible with the other activities. If a robotic system has
> to perform several tasks, you have e.g. a task agenda where every
> activity is put on, where it is enabled and disabled etc. This is
> exactly the level where declarative task net descriptions are very
> suitable. Task net execution then uses component configurations,
> events etc. to synchronize task nets with execution progress and task
> nets do not deal with the internal activities of a component like path
> planning but setup the context in which the path planner operates. The
> path planner can contain a Genom execution engine or a SmartSoft
> configuration class.
>
> The interesting thing now is which approach is suited best for what
> requirements and how can both approaches coexist since there is a
> relationship between the components internal state engine reaching a
> specific state as fast as possible even if it is pending in a blocking
> query e.g.
>
>
> Perhaps I could clarify at least some points ....
>
>
> Christian
>
>
>
>
>> Herman Bruyninckx wrote :
>> | Terminology is indeed _so_ important :-)
>>
>> Yes. While reading the last few emails from Christian, I had the
>> strong
>> feeling that we really want to achieve the same thing.
>
> Yes, I think so as well !!
>
>>
>>
>> I think we have to decouple the terms of "functional" robotics
>> components
>> and "object oriented" components.
>>
>> I guess we also have to define what a "task" is: something /on top/
>> of "functional components", which can also have exec engines and so
>> on.
>>
>> | Do you have concrete
>> | suggestions as to how to define the terminology in this context?
>>
>> I think we can discuss about that during the mini-meeting.
>> (suggestions from people that do not come are still very welcomed,
>> of
>> course :)
>>
>> I attach two small pdf figures that compare a CORBA component to a
>> GenoM component. Maybe this will help us converge toward a
>> terminology.
>>
>> Basically, I think the only (but important!) thing that GenoM does
>> (in
>> addition to the CORBA spec of components) is to structure the
>> internals
>> of a component (exec engine/codels/comm) and define two class of
>> component developer instead of only one.
>>
>> As for CORBA, you might understand GenoM more as a specification
>> than as
>> an instanciated and fixed programming model. Of course, as for
>> CORBA, one
>> will be able to implement several 'GenoM' (I would rather say
>> several
>> modules : comm, exec engine, ...) provided they match the spec.
>>
>>
>> ------------------------------------------------------------------------
>>
>>                         Name: corba-comp.pdf
>>    corba-comp.pdf       Type: Portable Document Format
>> (application/pdf)
>>                     Encoding: base64
>>                  Description: CORBA
>>
>>                         Name: genom-comp.pdf
>>    genom-comp.pdf       Type: Portable Document Format
>> (application/pdf)
>>                     Encoding: base64
>>                  Description: GENOM
>
> --
>
> ---------------------------------------------------------------------
> Christian Schlegel
> FAW Ulm (Research Institute for Applied Knowledge Processing)
> PO Box 2060
> D-89010 Ulm
> Germany
>
> Tel. : ++49 (731) 501 8949
> Fax  : ++49 (731) 501 999
> email: [email protected]
> WWW  : http://www.faw.uni-ulm.de/
> ---------------------------------------------------------------------
>
>

--

---------------------------------------------------------------------
Christian Schlegel
FAW Ulm (Research Institute for Applied Knowledge Processing)
PO Box 2060
D-89010 Ulm
Germany

Tel. : ++49 (731) 501 8949
Fax  : ++49 (731) 501 999
email: [email protected]
WWW  : http://www.faw.uni-ulm.de/
---------------------------------------------------------------------
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.