[ros-users] ROS communication performance .

Bill Morris morris at ee.ccny.cuny.edu
Fri Sep 10 03:38:30 UTC 2010


On Thu, 2010-09-09 at 19:13 -0700, Josh Faust wrote: 
>          * roscpp: much better *intra*process latency performance
>          * nodelets: basically our alternative to shared memory that
>         takes
>         advantage of the improved roscpp intraprocess performance
>          * rospy: much better serialization performance (thanks to
>         James Bowman)
>         
> 
> 
> roscpp's marshalling performance has improved slightly as well.  It
> will improve significantly for deserialization once we can break
> backwards compatibility and remove the Message base class.

Speaking of serialization, let me add $0.02.

At the CCNY Robotics lab we have been using ROS for about a year and in
my experience the only practical bottle neck that we have found, that is
attributable directly to ROS, is in the serialization and
deserialization of image data. 

A while back, I did some basic profiling of the image pipeline and it
looked like a large percentage of time was being spent de/serializing
the data. For some reason packaging up 640x480x15fps uncompressed color
images into messages and sending them over a wifi connection doesn't
work that well when you are running on an Atom Processor.

Improvements here might be useful, though the effort is probably better
spent converting the image pipeline to use nodelets or waiting for
another rev of Moore's Law.

On several occasions we have worried that ROS would be slow but our
experience has shown that the best approach is to skip worrying about
the performance of ROS and just get the code working. Once the code is
working it is a lot easier to optimize and we have almost always found
that the slowest part is our code or the WiFi connection.




More information about the ros-users mailing list