ROS as a messaging layer
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.
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?
Edited the original. Curious about ROS scalability & CPU load as the # of messages increases...