Real-time communication between inter-host Orocos components

Hi all,

Corba doesn't allow for a complete real-time communication between inter-host Orocos components. However this seems like a big practical question, and as Orocos is transparent w.r.t the communication middleware, what do people usually use?

Thanks

Flavian Hautbois

Real-time communication between inter-host Orocos components

On 06/18/2013 02:15 PM, f [dot] hautbois [..] ... wrote:
> Hi all,
>
> Corba doesn't allow for a complete real-time communication between inter-host
> Orocos components. However this seems like a big practical question, and as
> Orocos is transparent w.r.t the communication middleware, what do people
> usually use?

We(at KTH, Stockholm) usually use one of the following three alternatives

1. 'Most realtime': CAN bus
2. 'A little less realtime': A publish/subscribe component that uses DDS
3. 'Even less realtime': A publisher/subscribe component that uses ØMQ

Orocos is, in theory, independent of the underlying transport mechanism
and this is evident from the existence of CORBA and mqueue transports
exist. There exists even a YARP transport. In practice, making a new
transport seems to require more-than-trivial understanding of orocos
internals ;-)

Regards,
Sagar

Real-time communication between inter-host Orocos components

>We(at KTH, Stockholm) usually use one of the following three alternatives

>1. 'Most realtime': CAN bus

>2. 'A little less realtime': A publish/subscribe component that uses DDS

>3. 'Even less realtime': A publisher/subscribe component that uses ØMQ

>Orocos is, in theory, independent of the underlying transport mechanism

>and this is evident from the existence of CORBA and mqueue transports

>exist. There exists even a YARP transport. In practice, making a new

>transport seems to require more-than-trivial understanding of orocos >internals ;-)

>Regards,

>Sagar

How did you integrate CAN in your process? From what I read, YARP does not provide real-time communication abilities...

Flavian

PS : sorry for the poor layout of this message but I didn't receive the emails on this topic, so I had to reply using the website's gui

Real-time communication between inter-host Orocos components

On Jun 18, 2013, at 08:15 , f [dot] hautbois [..] ... wrote:

> Hi all,
>
> Corba doesn't allow for a complete real-time communication between inter-host
> Orocos components. However this seems like a big practical question, and as
> Orocos is transparent w.r.t the communication middleware, what do people
> usually use?
>
> Thanks
>
> Flavian Hautbois

We don't do real-time comm's between our hosts. We use Ethercat to some devices, and UDP for some others (not quite real time, but good enough with sufficient attention paid to configuration details).
S

Real-time communication between inter-host Orocos components

2013/6/18 S Roderick <kiwi [dot] net [..] ...>

> On Jun 18, 2013, at 08:15 , f [dot] hautbois [..] ... wrote:
>
> > Hi all,
> >
> > Corba doesn't allow for a complete real-time communication between
> inter-host
> > Orocos components. However this seems like a big practical question, and
> as
> > Orocos is transparent w.r.t the communication middleware, what do people
> > usually use?
> >
> > Thanks
> >
> > Flavian Hautbois
>
> We don't do real-time comm's between our hosts. We use Ethercat to some
> devices, and UDP for some others (not quite real time, but good enough with
> sufficient attention paid to configuration details).
> S
>
>
But it _would_ be possible to switch Corba for RT-Corba or POSIX RT? (for
example)
If so, is there any documentation on how to do that? (I'm using Orocos as a
ROS Fuerte node on Xenomai)

Real-time communication between inter-host Orocos components

On 06/18/2013 02:42 PM, Flavian Hautbois wrote:
>
>
>
> 2013/6/18 S Roderick <kiwi [dot] net [..] ... <mailto:kiwi [dot] net [..] ...>>
>
> On Jun 18, 2013, at 08:15 , f [dot] hautbois [..] ...
> <mailto:f [dot] hautbois [..] ...> wrote:
>
> > Hi all,
> >
> > Corba doesn't allow for a complete real-time communication
> between inter-host
> > Orocos components. However this seems like a big practical
> question, and as
> > Orocos is transparent w.r.t the communication middleware, what do
> people
> > usually use?
> >
> > Thanks
> >
> > Flavian Hautbois
>
> We don't do real-time comm's between our hosts. We use Ethercat to
> some devices, and UDP for some others (not quite real time, but good
> enough with sufficient attention paid to configuration details).
> S
>
>
> But it _would_ be possible to switch Corba for RT-Corba or POSIX RT?
> (for example)

This should be possible.

> If so, is there any documentation on how to do that? (I'm using Orocos
> as a ROS Fuerte node on Xenomai)

I don't think there is any documentation on how to write a new
transport. However, you could take a look at the source code at

https://gitorious.org/orocos-communication

where the yarp-transport code is (supposed to be) relatively
straightforward and could be used for understanding how to write a new
transport. ( The dds-transport in that repo is supposed to be my effort,
which is currently stalled mostly due to lack of documentation and
insufficient time on my part to figure it out from the code of existing
transports.)

/Sagar

Real-time communication between inter-host Orocos components

2013/6/18 Sagar Behere <sagar [dot] behere [..] ...>

> On 06/18/2013 02:42 PM, Flavian Hautbois wrote:
> >
> >
> >
> > 2013/6/18 S Roderick <kiwi [dot] net [..] ... <mailto:kiwi [dot] net [..] ...>>
> >
> > On Jun 18, 2013, at 08:15 , f [dot] hautbois [..] ...
> > <mailto:f [dot] hautbois [..] ...> wrote:
> >
> > > Hi all,
> > >
> > > Corba doesn't allow for a complete real-time communication
> > between inter-host
> > > Orocos components. However this seems like a big practical
> > question, and as
> > > Orocos is transparent w.r.t the communication middleware, what do
> > people
> > > usually use?
> > >
> > > Thanks
> > >
> > > Flavian Hautbois
> >
> > We don't do real-time comm's between our hosts. We use Ethercat to
> > some devices, and UDP for some others (not quite real time, but good
> > enough with sufficient attention paid to configuration details).
> > S
> >
> >
> > But it _would_ be possible to switch Corba for RT-Corba or POSIX RT?
> > (for example)
>
> This should be possible.
>
> > If so, is there any documentation on how to do that? (I'm using Orocos
> > as a ROS Fuerte node on Xenomai)
>
> I don't think there is any documentation on how to write a new
> transport. However, you could take a look at the source code at
>
> https://gitorious.org/orocos-communication
>
> where the yarp-transport code is (supposed to be) relatively
> straightforward and could be used for understanding how to write a new
> transport. ( The dds-transport in that repo is supposed to be my effort,
> which is currently stalled mostly due to lack of documentation and
> insufficient time on my part to figure it out from the code of existing
> transports.)
>

The YARP transport is indeed very simple to read.
The main files are the ChannelElement, that creates communication elements
(ports for Yarp), and the archive, that (de)serializes Orocos types for
this transport.
Other files are really straight forward!

The archive inherits the boost::archive, and then relies on the
serialization of data types.
You should have a look at the Boost Serialization library:
http://www.boost.org/doc/libs/1_53_0/libs/serialization/doc/index.html

Do not hesitate to ask any question in this ml if you want to start writing
your transport!

The orocos-communication gitorious project can even host your sources :)

Charles

>
> /Sagar
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>

Real-time communication between inter-host Orocos components

2013/6/18 Sagar Behere <sagar [dot] behere [..] ...>

> On 06/18/2013 02:42 PM, Flavian Hautbois wrote:
> >
> >
> >
> > 2013/6/18 S Roderick <kiwi [dot] net [..] ... <mailto:kiwi [dot] net [..] ...>>
> >
> > On Jun 18, 2013, at 08:15 , f [dot] hautbois [..] ...
> > <mailto:f [dot] hautbois [..] ...> wrote:
> >
> > > Hi all,
> > >
> > > Corba doesn't allow for a complete real-time communication
> > between inter-host
> > > Orocos components. However this seems like a big practical
> > question, and as
> > > Orocos is transparent w.r.t the communication middleware, what do
> > people
> > > usually use?
> > >
> > > Thanks
> > >
> > > Flavian Hautbois
> >
> > We don't do real-time comm's between our hosts. We use Ethercat to
> > some devices, and UDP for some others (not quite real time, but good
> > enough with sufficient attention paid to configuration details).
> > S
> >
> >
> > But it _would_ be possible to switch Corba for RT-Corba or POSIX RT?
> > (for example)
>
> This should be possible.
>

If you go that way, any help on a "add your transport" documentation would
certainly be welcomed.

>
> > If so, is there any documentation on how to do that? (I'm using Orocos
> > as a ROS Fuerte node on Xenomai)
>
> I don't think there is any documentation on how to write a new
> transport. However, you could take a look at the source code at
>
> https://gitorious.org/orocos-communication
>
> where the yarp-transport code is (supposed to be) relatively
> straightforward and could be used for understanding how to write a new
> transport. ( The dds-transport in that repo is supposed to be my effort,
> which is currently stalled mostly due to lack of documentation and
> insufficient time on my part to figure it out from the code of existing
> transports.)
>
> /Sagar
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>