We are currently looking into different network protocols and systems for the communication between our exploration robots. An ad hoc communication package built by Guenter Cwioro and Torsten Andre is being used by our exploration package. This post explains some background on ad hoc networks and their functionally:
A wireless ad hoc network or WANET is a decentralized type of wireless network. The network is called “ad hoc” from the latin meaning “for this”; “ad hoc” in english signifies a solution designed for a specific problem or task. WANETs don't rely on pre existing infrastructure; instead each node forwards data to other nodes, dynamically switching which nodes route data on basis of network connectivity.
The decentralization of WANET makes them suitable for a variety of applications where central nodes can't be relied on. In our case, it makes swarm robotics possible as each robot needs to communicate with each other, and the amount of robotics isn’t defined.
The benefits of using WANETs include:
No expensive infrastructure must be installed
Use of unlicensed frequency spectrum
Quick distribution of information around sender
Possibility of Flooding data
No high speed multimedia exchange protocol
However some aspects need to be considered, such as:
All network entities may be mobile which requires a very dynamic topology
Network functions must have high degree of adaptability
No central entities which cause operation in completely distributed manner
Adhoc_communication package
The package allows the exchange of data over several roscores by wrapping and transmitting the data to the destination and publishing the data on a predefined topic at the destination host. The routing is accomplished by using the hostname of the robots.
Package summary: http://wiki.ros.org/adhoc_communication
Source git: https://github.com/aau-ros/aau_multi_robot.git
The adhoc_communication node implements three types of routing:
Unicast Routing, one to one communication which transmits data from one robot to the other.
Multicast Routing, one to many communication which transmits from one robot to many robots. Each robot already has a multicast that can be subscribed to other robots
Broadcast Routing will be received and published by all robots (Flooding)
The adhoc_communication node, although built to send a majority of ROS messages isn’t fully integrated. Instead messages can be serialized at the sender and then deserialized at the receiving robots.
------------------------------------------------------------------------------------------------