0
$\begingroup$

Rosanswers logo

OK, so this may be an open-ended question which may not fit the format, but I'll ask anyway. I will be working on a distributed sensor project and currently am researching messaging protocols. What do people think about using ROS mainly for its no-frills messaging support? There will be dozens of sensor nodes each broadcasting maybe hundreds of data messages after each data bit is processed, so scalability is important. I'm looking at the various *MQ implementations (ActiveMQ, OpenMQ, RabbitMQ, ZeroMQ) as well, but so far ROS is looking very attractive due to ease-of-use and the number of debug tools available. Can anyone who's used both ROS and some version of *MQ comment? What about authentication, does ROS have any?

Edit: details. No real-time requirements, but order is important (header timestamps will take care of that). The sensors will be producing a fair amount of data (say, 50 sensors @30Hz, probably ~300-500KB/s each), but most of this data will be taken care of by intermediary nodes. Each intermediary node (there could be 5-10 of these) will then talk to a central database server which will aggregate the data. Each of the 50 sensors, when processed by the intermediary node, will generate probably around 50 small data points for each reading, these could be an array of values. So, say, 50 publishers @ 30Hz, around 1500 messages each second each consisting of 50 data points. I am not expecting any overhead with dynamic subscriptions.


Originally posted by autonomy on ROS Answers with karma: 435 on 2013-12-13

Post score: 0


Original comments

Comment by dornhege on 2013-12-13:
There is no authentication. Can you give more precise information on your data requirements: How many msgs/second and how many bytes/second? Do you need any real-time guarantees or will you put a time stamp in a just push data out?

Comment by autonomy on 2013-12-13:
Edited the original. Curious about ROS scalability & CPU load as the # of messages increases...

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

ROS and *MQ are hard to compare. If you just want transport *MQ will do that just fine. If you can take advantage of the greater tools provided in the ROS ecosystem that is probably a good reason to choose it.

Your limiting factor will likely be the network. You need to make sure that your network can process the amount of data. Either solution can easily fill any network relatively efficiently.


Originally posted by tfoote with karma: 58457 on 2013-12-17

This answer was ACCEPTED on the original site

Post score: 3

$\endgroup$
0
$\begingroup$

Rosanswers logo

You're correct that ROS is very easy to use and provides a lot of debugging tools, so why not develop the system using ROS and structure your API well so that you could later replace it with *MQ later if you need to? I assume the actual message passing is only incidental to your system, and it could be easier to develop using ROS as opposed to other message passing systems.


Originally posted by Tim Sweet with karma: 267 on 2013-12-18

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.