We chose batman-adv because it's the most widely adopted and supported implementation of a wireless ad hoc mesh network :)
Freifunk is running deployments with several thousand nodes.[1] Since that was the scale we were aiming for, this is what we chose. We also considered 802.11s for a long time, but the hardware support is quite poor, especially on a device where people would try something like this: Raspberry Pis.
You are right that mDNS is a popular choice, and we even have it in our codebase to be able to debug on macOS.
However, mDNS is a flooding/multicast protocol, and although batman-adv optimizes those, it puts unnecessary strain on a mesh network. That’s why we didn't go with it.
It also gave us the opportunity to try out this other, in our view, more elegant approach to discovery.
Since IBSS is not really useful outside of Linux popular device support, like smartphones, it fell out of the picture pretty quickly (sadly). However, you can connect bridges to our mesh network (again exposing a batman-adv feature), which would give you the ability to connect phones (and of course, printers) to your robots.
[1]: http://grafana.freifunk-muensterland.de/goto/lAqihJDHg?orgId...