Hi Michael,
My name is Michael. I am currently working on a large robotics project and I am thinking of using B.A.T.M.A.N to facilitate a MANET to communicate between a number of bots and a base station. I was hoping to get a bit of information regarding the suitability of B.A.T.M.A.N for such an application. Any information would be helpful (general or specific). Here are some of the details of our project.
Your project sounds very exciting! I had a little look at the MAGIC 2010 website and what it says about the tasks that have to be done and what kind of time span and how much mobility we're talking about here and what the specific tasks are on the MAGIC 2010 website. However, I/we have little experience with such challenges and setups. Most people use batman to create wireless networks within buildings / houses / cities. Could you tell us a bit more about why you want to run mesh on the robots itself and not using the common infrastucture mode on the base station for example (as I assume this has been used in robotic challenges before)? Have other people tried mesh on bots before and what were/are the problems you expect?
So far, I haven't heard of anyone using B.A.T.M.A.N. in a robotics scenario before, though I've always been interested in seeing B.A.T.M.A.N. in a swarm-robotics scenario one day :).
We have various types of data to be communicated on our network including, GPS, basic telemetry, control message, imagery, UAV feeds, point cloud info etc. Some data such as GPS and telemetry is realtime and need not be reliable (we are considering simply UDP broadcasting this data). Other data such as imagery and control messages will require stable links and need to be relatively reliable. We are not yet sure if we will be deploying any specific middleware technology although I am partial to pub/sub middleware. Are there any such middleware that can complement B.A.T.M.A.N?
14 mobile bots should be perfectly fine for batman to handle. Like most routing protocols, batman does not interact with other software components directly. It will try to be as invisible as possible and allows all standard network operations to behave as expected. Nothing special or fancy required here.
On the other hand it is important to realize that batman comes in 2 flavors: * The batman daemon operating on layer 3 (like most other routing protocols do). * The batman-adv kernel module building a layer 2 network across the wifi nodes.
The later comes with some handy features you might want to look at. Unlike the layer 3 routing protocols it does not only decide about the routing of the traffic but handles the traffic forwarding itself. Therefore, it can be optimized for your traffic needs. For example, broadcasting UDP messages over wifi is not as easy as it sounds (broadcasted packets are getting lost more often than unicast packets here). batman-adv already has a feature built-in to send broadcasts up to 3 times along each hop to increase the probability of getting the data transmitted.
I was hoping to know what type of issues I might run into using B.A.T.M.A.N adv in such a scenario. For instance, what kind of throughput might I expect in the described environment? Link stability issues? General suitability? How would B.A.T.M.A.N compare to OLSR or Babel? I am really interested in anything that anyone has to offer.
Usually in mesh networks the rule so far was, that you can expect about half of the bandwidth with each additional hop starting with ~25MBit/s payload throughput in 802.11a/g networks for direct neighbours. In 802.11n you can expect a maximum capacity of ~100MBit/s in ideal conditions with a wifi card capable of 3x3:3or 4x4:4 settings as far as I know. For QoS there seems to be the 802.11e standard especially for wifi networks, but I have no experiences with that one. I can't say that much for the protocol comparision as I haven't been using/testing current implementations of OLSR or BABEL lately and I'm also only aware of two comparison papers. I think it comes down to try what works best for you and what your requirements are.
When you start your tests you might want to reduce the originator interval to 50ms (the minimum value) to make sure the routing entries are updated quite often. Batman's default settings are optimized for less traffic but slower updates. Buildings tend to move much less. ;-)
Hope I could answer most of your questions so far. More questions always welcome :).
Cheers, Linus