How works FRIRTNetComponent?

Greetings.
I have some questions about how an OROCOS component can use the RTNet
protocol.

As far as I understand FRI is a library makes communication from a remote
computer to the KRC possible through the use UDP protocol, typically on a
IP network on a on a 802.3 network.

My understanding is that the FRIComponent and the FRIRTNetComponent wraps
that functionality in a OROCOS rt-component . Right? I think that the
different between both components is that the RTNet component communicates
with the KRC through a RTNet (but I'm not sure yet) Is that true?

If so, there are several things that I do not understand. How the KRC can
participate in a RTNet? Does the KRC use a MAC layer with a TDMA
discipline? Is compatible 802.3 with an RTNet?

Thanks in advance.
Regards.

How works FRIRTNetComponent?

Hi Pablo,

On Tue, Dec 24, 2013 at 12:22 PM, Pablo Iñigo Blasco <pibgeus [..] ...> wrote:
>
> Greetings.
> I have some questions about how an OROCOS component can use the RTNet protocol.
>
> As far as I understand FRI is a library makes communication from a remote computer to the KRC possible through the use UDP protocol, typically on a IP network on a on a 802.3 network.

It's not just any KRC, it's only the Kuka LWR fast research interface
(=FRI) over Ethernet.

>
> My understanding is that the FRIComponent and the FRIRTNetComponent wraps that functionality in a OROCOS rt-component . Right? I think that the different between both components is that the RTNet component communicates with the KRC through a RTNet (but I'm not sure yet) Is that true?

FRIRTNetComponent goes over raw RTNet sockets (so using rtnet linux
drivers for Ethernet), but without any of the extra's like TDMA etc.

>
> If so, there are several things that I do not understand. How the KRC can participate in a RTNet? Does the KRC use a MAC layer with a TDMA discipline? Is compatible 802.3 with an RTNet?

Yes, raw RTNet is compatible with 802.3. You can't really see on the
wire that it came from an rtnet socket, it's just an ethernet frame
sent by a real-time linux driver, containing an UDP packet. We avoid
collisions and timing issues by using a dedicated link from PC to
Kuka.

Peter

How works FRIRTNetComponent?

Thank you very much Peter.
I have some more questions that are very important for improve my
understanding of the use of OROCOS, KUKAs and real time communications.

I am using a KR60 L3 HA so I understand that I can't use FRI. However, I
see that you have also developed an RSIComponent (
http://svn.mech.kuleuven.be/repos/orocos/orocos-apps/public_release/Kuka...).
I see in the code that it is based on standard POSIX sockets, so here is
my question: Can this component communicate with the KUKA at real time?
It is possible to use the RTNet driver with such POSIX socket interface? I
think it is possible according the RTnet documentation (
http://www.rts.uni-hannover.de/rtnet/lxr/source/examples/xenomai/posix/r...)
but I have not sure if RSIComponent can work in this way.

If RSIComponent does not use the RTNet driver, can the hard-RT constraints
be guaranteed for the comunications? Is it possible to guarantee the RT
constraints using a 802.3 full duplex dedicated conection? Does it have any
sense to implement the RSIComponent using RTNet sockets API?

Concerning the issue of using a dedicated link it is nice to know that a
full duplex conection and a RT driver are enough to guarantee the real-time
constraints in the communications. However, If I were using a network hub,
the TDMA policy would be necessary, right? Would in that case the KRC able
to handle the communications? I assume that the KRC ethernet driver is real
time, but I understand that it is not able to handle the TDMA.

Thanks in advance.
Regards.

On Thu, Dec 26, 2013 at 10:43 AM, Peter Soetens <peter [..] ...>wrote:

> Hi Pablo,
>
> On Tue, Dec 24, 2013 at 12:22 PM, Pablo Iñigo Blasco <pibgeus [..] ...>
> wrote:
> >
> > Greetings.
> > I have some questions about how an OROCOS component can use the RTNet
> protocol.
> >
> > As far as I understand FRI is a library makes communication from a
> remote computer to the KRC possible through the use UDP protocol, typically
> on a IP network on a on a 802.3 network.
>
> It's not just any KRC, it's only the Kuka LWR fast research interface
> (=FRI) over Ethernet.
>
> >
> > My understanding is that the FRIComponent and the FRIRTNetComponent
> wraps that functionality in a OROCOS rt-component . Right? I think that the
> different between both components is that the RTNet component communicates
> with the KRC through a RTNet (but I'm not sure yet) Is that true?
>
> FRIRTNetComponent goes over raw RTNet sockets (so using rtnet linux
> drivers for Ethernet), but without any of the extra's like TDMA etc.
>
> >
> > If so, there are several things that I do not understand. How the KRC
> can participate in a RTNet? Does the KRC use a MAC layer with a TDMA
> discipline? Is compatible 802.3 with an RTNet?
>
> Yes, raw RTNet is compatible with 802.3. You can't really see on the
> wire that it came from an rtnet socket, it's just an ethernet frame
> sent by a real-time linux driver, containing an UDP packet. We avoid
> collisions and timing issues by using a dedicated link from PC to
> Kuka.
>
> Peter
>