[openrtm-users 01465] Re: nameserver timer?

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2010年 11月 10日 (水) 08:36:36 JST


Hi Hugo,

OpenRTM provides complete control over the execution of components, so
what you want to do is possible. You need to use an externally triggered
execution context for each component that should run off the clock
signal. Have a look at the ExtTrigExecutionContext included in OpenRTM.
You need to use the tick() method (available locally or as a CORBA
interface from OpenRTM.idl) to notify the contexts of a tick. A very
good example of it in use can be seen in the OpenHRP3 simulator, which
uses it to provide a simulated clock running at a different rate to a
real clock. If  the CORBA interface doesn't meet your needs, you can
copy the ExtTrigExecutionContext source and add an alternative method of
broadcasting the tick (e.g. FIFOs or shared memory or a plain old TCP
signal).

By the way, this works across components running anywhere, whether or
not they are registered on the same name server. Registering on a name
server is just for finding running components; it does not place any
restrictions on how those components interact.

Geoff


On 10/11/10 00:24, Hugo Gravato Marques wrote:
> 
> Hello...
> 
> I'm a new OpenRTM user so apologise if this is too trivial a question...
> 
> I'm trying to build an application where I have several rtm components
> on the same nameserver but running on different computers. I would like
> to be able to transfer timed data between the components using a single
> clock signal... My question is whether openrtm provides any kind of
> clock signal that can be shared by all the components running in the
> same nameserver... If so, how do I get the clock signal?... If not I
> would like to ask you what would be the best way to do it within the
> openrtm framework...
> 
> thanks in advance...
> 
> cheers...
> hugo



openrtm-users メーリングリストの案内