Hi Linus (and others who responded),
Well I don't remember mentioning MAGIC 2010, but you are correct, the project is MAGIC 2010. Good investigatory work! :) Right now, the use of B.A.T.M.A.N, OLSR, and Babel are possibilities but no decision has been made regarding their eventual use.
The reason I was looking into these technologies is because of the "seamlessness" of their operation and the fact they enable multi-hop routing for IPv4 in ad-hoc network setups. The hidden node problem could be a show stopper as some of the data we are transferring such as streaming video and manual control of UGVs require relatively stable and continuous channels of communication. Furthermore, message passing may not necessarily be done with the use of a middleware. Realtime unreliable data such as GPS and telemetry information may simply be pushed onto the network in UDP packets. I would prefer to use a nice middleware that performs well in MANET environments and I am still evaluating the possibility of this. If you have any recommendations that would be good!
Further on the topic of using BSS. We do expect wifi dead-spots and we must absolutely try to minimize these. So the multi-hop nature of something like B.A.T.M.A.N (i was hoping) would help in that regard.
I can't guarantee that we will use B.A.T.M.A.N but I will try to evaluate it in the field eventually.
Thanks!
Michael
On 15/03/2010, at 4:41 AM, Linus Lüssing wrote:
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