No subject


Tue Mar 2 09:14:18 PST 2010


>The ROS TCP transport achieves high throughput when the maximum queue
length (q) is set to infinity, but at the

>expense of message latency. Various settings of q provide an adjustable
tradeoff between throughput and latency.

On Thu, Sep 9, 2010 at 12:06 PM, Ken Conley <kwc at willowgarage.com> wrote:

> Hi Konrad,
>
> If you read this paper from the authors of LCM, you will find that the
> performance of ROS, LCM, and IPC are generally comparable (note: the
> article tests LCM's UDP implementation against ROS' TCP
> implementation):
>
> http://lcm.googlecode.com/files/2010-huang-olson-moore-lcm-iros.pdf
>
> Comparing any middleware to "raw TCP" is generally difficult to come
> to conclusions, especially without including exact information on how
> your test was conducted. With any middleware, there is the overhead of
> (un)marshaling the data into individual messages.  The size and
> composition of these messages is a significant factor in any
> performance numbers that result.
>
> - Ken
>
> On Thu, Sep 9, 2010 at 11:48 AM, Konrad Banachowicz <konradb3 at gmail.com>
> wrote:
> > Dear all,
> > I recently done some testing on ROS communication performence.
> > There are the reesults :
> >                           throughput [MB/s]     time [s]           data
> [MB]
> > ROS                 7.25906                      4.827058      35.0399
> > raw TCP          56.8430                      8.387205      476.75466
> > POSIX MQ      124.36626                  3.834136      476.837158
> >
> > That shows grate overhead of ROS communication.
> > I looked on code, I found that the communication code is very complicated
> > and contains many locks and queues. It's also integrate interprocess and
> > intraprocess communication. This with all callback stuff make whole
> > communication overcomplicated.
> >
> > I think this show serious problem with design of whole network stack in
> ROS.
> >
> > I will do some more testing.
> >
> > Pozdrawiam
> > Konrad Banachowicz
> >
> > _______________________________________________
> > ros-users mailing list
> > ros-users at code.ros.org
> > https://code.ros.org/mailman/listinfo/ros-users
> >
> >
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>

--00504502c5f69b8f0a048fdcede1
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Ken,</div>
<div>=A0</div>
<div>The paper you pointed to was using Box Turtle and found that performan=
ce of ROS wss pretty good compared to (what appears to be very optimised) L=
CM.</div>
<div>Do you think C-turtle got any improvements in this area?</div>
<div><font size=3D"2" face=3D"NimbusRomNo9L-Regu"><font size=3D"2" face=3D"=
NimbusRomNo9L-Regu">
<p align=3D"left">From paper:</p>
<p align=3D"left">&gt;The ROS TCP transport achieves high throughput when t=
he maximum queue length (</p></font></font><font size=3D"2" face=3D"CMMI10"=
><font size=3D"2" face=3D"CMMI10">q</font></font><font size=3D"2" face=3D"N=
imbusRomNo9L-Regu"><font size=3D"2" face=3D"NimbusRomNo9L-Regu">) is set to=
 infinity, but at the
<p align=3D"left">&gt;expense of message latency. Various settings of </p><=
/font></font><font size=3D"2" face=3D"CMMI10"><font size=3D"2" face=3D"CMMI=
10">q </font></font><font size=3D"2" face=3D"NimbusRomNo9L-Regu"><font size=
=3D"2" face=3D"NimbusRomNo9L-Regu">provide an adjustable tradeoff between t=
hroughput and latency. </font></font><br>
<br></div>
<div class=3D"gmail_quote">On Thu, Sep 9, 2010 at 12:06 PM, Ken Conley <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:kwc at willowgarage.com">kwc at willowgarage.=
com</a>&gt;</span> wrote:<br>
<blockquote style=3D"BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex=
; PADDING-LEFT: 1ex" class=3D"gmail_quote">Hi Konrad,<br><br>If you read th=
is paper from the authors of LCM, you will find that the<br>performance of =
ROS, LCM, and IPC are generally comparable (note: the<br>
article tests LCM&#39;s UDP implementation against ROS&#39; TCP<br>implemen=
tation):<br><br><a href=3D"http://lcm.googlecode.com/files/2010-huang-olson=
-moore-lcm-iros.pdf" target=3D"_blank">http://lcm.googlecode.com/files/2010=
-huang-olson-moore-lcm-iros.pdf</a><br>
<br>Comparing any middleware to &quot;raw TCP&quot; is generally difficult =
to come<br>to conclusions, especially without including exact information o=
n how<br>your test was conducted. With any middleware, there is the overhea=
d of<br>
(un)marshaling the data into individual messages. =A0The size and<br>compos=
ition of these messages is a significant factor in any<br>performance numbe=
rs that result.<br><br>- Ken<br>
<div>
<div></div>
<div class=3D"h5"><br>On Thu, Sep 9, 2010 at 11:48 AM, Konrad Banachowicz &=
lt;<a href=3D"mailto:konradb3 at gmail.com">konradb3 at gmail.com</a>&gt; wrote:<=
br>&gt; Dear all,<br>&gt; I recently done some testing on ROS communication=
 performence.<br>
&gt; There are the reesults :<br>&gt; =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 throughput [MB/s]=A0=A0=A0=A0 time =
[s]=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 data [MB]<br>&gt; ROS=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 7.25906=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0 4.827058=A0=A0=A0=A0=A0 35.0399<br>&gt; raw TCP=
=A0=A0=A0=A0=A0=A0=A0=A0=A0 56.8430=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0 8.387205=A0=A0=A0=A0=A0 476.75466<br>
&gt; POSIX MQ=A0=A0=A0=A0=A0 124.36626=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0 3.834136=A0=A0=A0=A0=A0 476.837158<br>&gt;<br>&gt; That sho=
ws grate overhead of ROS communication.<br>&gt; I looked on code, I found t=
hat the communication code is very complicated<br>&gt; and contains many lo=
cks and queues. It&#39;s also integrate interprocess and<br>
&gt; intraprocess communication. This with all callback stuff make whole<br=
>&gt; communication overcomplicated.<br>&gt;<br>&gt; I think this show seri=
ous problem with design of whole network stack in ROS.<br>&gt;<br>&gt; I wi=
ll do some more testing.<br>
&gt;<br>&gt; Pozdrawiam<br>&gt; Konrad Banachowicz<br>&gt;<br></div></div>&=
gt; _______________________________________________<br>&gt; ros-users maili=
ng list<br>&gt; <a href=3D"mailto:ros-users at code.ros.org">ros-users at code.ro=
s.org</a><br>
&gt; <a href=3D"https://code.ros.org/mailman/listinfo/ros-users" target=3D"=
_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>&gt;<br>&gt;=
<br>_______________________________________________<br>ros-users mailing li=
st<br>
<a href=3D"mailto:ros-users at code.ros.org">ros-users at code.ros.org</a><br><a =
href=3D"https://code.ros.org/mailman/listinfo/ros-users" target=3D"_blank">=
https://code.ros.org/mailman/listinfo/ros-users</a><br></blockquote></div><=
br>

--00504502c5f69b8f0a048fdcede1--


More information about the ros-users mailing list