[ros-users] [Orocos-users] Joint controller manager

Herman Bruyninckx Herman.Bruyninckx at mech.kuleuven.be
Tue Jan 29 12:09:18 UTC 2013


On Tue, 29 Jan 2013, Adolfo Rodríguez Tsouroukdissian wrote:

> 
> 
> On Tue, Jan 29, 2013 at 12:11 PM, Herman Bruyninckx
> <Herman.Bruyninckx at mech.kuleuven.be> wrote:
>       On Tue, 29 Jan 2013, Adolfo Rodríguez Tsouroukdissian wrote:
>
>                         The solution proposed in [1] (see original post for
>             link) uses
>                         a plugin mechanism for
>                         implementing controllers, which enforces
>             single-threaded
>                         execution and passing data by
>                         pointers. It just does not allow the use case of
>             clients
>                         running with different update
>                         policies (lower frequency, non-periodic
>             triggering). How would
>                         you go about this?.
>
>             Add a timer input port to your component, and let the
>             _scheduling_ be done
>             by the function you attach to that port.
>
>             Ah, yes, you got me there. A timer that triggers callbacks
>             allows to keep a
>             plugin-based approach with all controllers serialized in a
>             single thread, yet also
>             allows to have different duty cycles. Thanks for sticking my
>             head out of the component
>             mindset here.
> 
> 
> If that is the result of my "ranting", I am very happy!
> 
> 
> It did not seem a rant, at least not this time ;-)
> 
>  
>       Because I have
>       learned that a real roboticist _has_ to work within several "paradigms",
>       and the component-based paradigm is only one of them :-) What I just
>       brought to your attention is from the "operating system paradigm", which
>       you are very probably familiar with; that paradigm "conforms to" the more
>       generic one of "shared resource management".
> 
> 
> Indeed.
>  
>       I am interested in learning
>       whether there is het another "meta"-level on top of that :-)
> Good, keep us posted! We happen to be doing the same thing in house the
> last week(s)... More difficult than I thought at the beginning to get it
> "right" _and_ "reusable" in more contexts than just this one of controller
> management.
> 
> So, are you also implementing something similar?.

yes! Azamat is taking the lead in this effort, and he showed me some
prototype. It is not yet clear when something workable can be released.

> Are there any additional valuable lessons that can be shared?.
I don't know what you call 'valuable' but the main reason that started
Azamat's work is to get a computational support for "tree-structured
algorithms with multiple sweeps", such as:
- Model-Predictive Control
- Bayesian networks, Markov random fiels, Factor graphs
- control diagrams
- tree-structured dynamical systems
The common thing behind all these use cases are the things I mentioned:
separating the schedule from the model and the execution; generate code
from a domain-independent 'template implementation' with domain-dependent
plug-in functions; (immutable) data management; deployment onto various
software "containers".

>       More of this will be discussed at the "MDE for robotics" workshop at the
>       upcoming European Robotics Forum in Lyon, on March 20th.
> 
> Noted!.
>
>             Adolfo

Herman


More information about the ros-users mailing list