Making Networked Robots Connectivity-Aware Van Tuan Le†‡§ , Noury Bouraqadi† , Serge Stinckwich‡ , Victor Moraru§ , and Arnaud Doniec† * † Ecole ´
des Mines de Douai, Dpt IA, Douai, France {le, bouraqadi, doniec}@ensm-douai.fr ‡ Universit´e de Caen, GREYC, CNRS UMR 6072, Caen, France
[email protected] § MSI-IFI, Hanoi, Vietnam
[email protected]
Abstract— Maintaining the network connectivity in mobile Multi-Robot Systems (MRSs) is a key issue in many robotic applications. In our view, the solution to this problem consists of two main steps: (i) making robots aware of the network connectivity; and (ii), making use of this knowledge to plan robots tasks without compromising connectivity. In this paper, we view the ad-hoc network connectivity as an abstraction that is independent from application issues. We propose a new distributed algorithm executing on individual robots to build the connectivity-awareness. The correctness and theoretical analysis of the proposed algorithm are given. We also show how our solution allows checking network bi-connectivity more efficiently than existing work and can be used, for example, during distributed control motion. Index Terms— Mobile Ad Hoc Network, Multi-Robot Systems, Distributed Robot Motion Control, Dynamic Graph, Connectivity Maintenance.
I. INTRODUCTION The use of MRSs is promising in applications such as rescue operations after natural disasters. In such situations, a group of autonomous robots has to collaboratively perform a mission whose success depends on communication between individuals. Many studies have led to the conclusion that even the exchange of a small amount of information improves MRS performance for some tasks [1], [2]. In this paper, we are interested in communication between robots in a team relying on Mobile Ad Hoc Network (MANET) technologies [3]. Thanks to the underlying networking services, robots are able to detect some neighbourhood-related events (e.g. the appearance or disappearance of a neighbour), as well as to exchange messages with each others. Though useful, this information is not enough to enable robots to plan their motion while preserving their network connectivity during the mission. Among various aspects of MANET, research on routing protocols (which deals with the concern of how to route the data between a source and a destination in a MANET efficiently) has been one of the most active research domain for years. A routing protocol is responsible for finding a route provided that such a route does exist. However, it does not make robots aware of the global connectivity. *The authors would like to thank Nicolas Bred`eche at LRI/CNRS, and Franois Semp´e at MSI/IFI for their precious discussions. Our robot simulation framework is written in smalltalk. This work is supported in part by the European Smalltalk User Group (www.esug.org).
In our vision, solution for this problem should be separated in two main steps: (i) making robots acquire sufficient knowledge of the network connectivity; and (ii), exploiting this knowledge in order to best maintain the network connectivity while performing other tasks. We further argue that the first step can be viewed as an application-independent abstraction. That is, the awareness of the network connectivity should be provided to robots as a basic networking service like routing in MANETs for example. With respect to the first step, we present our proposed solution for making autonomous robots aware of the network connectivity in the following. The rest of the paper is organized as follow. In Section II, we present some definitions about graph theory in the context of MRS. Section III introduces a new distributed algorithm in order to enable each robot to build and maintain an awareness of the network connectivity. Based on this awareness, robots are individually able to perform actions that help them achieve the mission’s goal without breaking the network connectivity. In Sections IV and V, we use our algorithm for checking biconnectivity and for distributed motion control. Section VI presents related works. Section VII concludes the paper. II. PRELIMINARIES AND DEFINITIONS We model a system of networked robots by an undirected graph G = (V, E), where V is the set of robots in the network, E = V × V . There is an edge e = {Ri , Rj } ∈ E if and only if Ri and Rj can mutually receive each other’s transmission, i.e. the link between them is bidirectional. In this case, we say Ri and Rj are neighbours, and the edge is also referred as a communication link between the two 1 robots. The number P of neighbours of a robot Ri is denoted di by di , and d¯ = ni is the average number of neighbours, where n is the number of robots (n =| V |). These notions are used throughout in the paper. Note that the graph can change in time as nodes are moving. Definition 1 (Communication path): In the graph G, a loop-free sequence of nodes taking part in the process of relaying data from Ri to Rj or symmetrically from Rj to Ri is called a communication path p(Ri , Rj ) (or simply a path hereafter). 1 For
the graph G, d is also called the degree of a vertex.
By definition, any e ∈ E is also a path. We denote Rk ∈ p or Rk 6∈ p to specify that the path p includes some node Rk or not, respectively. Definition 2 (Connected graph): A graph G is said to be connected iff for any Ri , Rj ∈ V , there exists a path p(Ri , Rj ). Definition 3 (Internally disjoint paths): Two different paths p1 (R1 , R2 ) and p2 (R1 , R2 ) are internally disjoint if they have no vertices in common except R1 and R2 .
TABLE I E XAMPLE OF C ONNECTIVITY TABLE FOR SOME ROBOTS OF F IGURE 1, R1 IS THE REFERENCE ROBOT. (a) Robot 3 Access Robots Access Paths R2 (R2 , R1 ) (b) Robot 7 Access Robots Access Paths R3 (R3 , R2 , R1 ) R4 (R4 , R2 , R1 )
R3 R1
R6
Rx
Robot
R2 R7
R5
Communication links
R4
Fig. 1.
A Networked Robotics System
Our basic idea in maintaining the network connectivity in MRSs is the following: taking a “fixed” robot as the reference node, each robot Ri in the MRS, while performing its task, has to keep in touch with at least one neighboring robot Rj from which a communication path to the reference robot can be established. Concretely, in the system shown in Figure 1, R5 has to maintain the connection with R1 , and R6 has to stay in touch with R5 . Similarly, R2 is responsible for maintaining the communication link with R1 . R3 and R4 should move around in such a way that the links between them and R2 will not be broken. For R7 , there are two different paths to R1 , it needs to maintain at least one link with either R3 or R4 . So R7 has more choice to move while taking the connectivity into account. If the robots are all successful, then the connectivity of the whole system will be ensured. With the new vision, the Definition 2 is totally equivalent restated as follow. Definition 4 (Referentially Connected Graph): The graph G is referentially connected iff given a reference node Rr ∈ V , for any other node Ri ∈ V , there exists a path p(Ri , Rr ). Definition 5 (Access Robot and Access Path): Given reference robot Rr , and two different robots Ri and Rj ∈ V (i 6= j), Rj is called an access robot for Ri iff there exist an edge {Ri , Rj } ∈ E (i.e. Ri and Rj are neighbours) and there exists a path p(Rj , Rr ) such that Ri 6∈ p. We call p an access path. With this new definition, the maintenance of connectivity can be interpreted for individuals in the network as follow: given a reference robot, for preserving the network connectivity, robots need to maintain the communication links with one of their access robots while performing their tasks. III. BUILDING AND MAINTAINING CONNECTIVITY AWARENESS A connectivity-awareness for a given robot is materialized as a Connectivity Table containing a set of access paths. These paths represent a partial view of the network connectivity. For example, the Connectivity Table of the robot
R7 in the network in Figure 1 might looks like the Table I. The Table has two access paths corresponding to two access robots R3 and R4 . Based on this knowledge, robots know which neighbours they should depend on for maintaining the connectivity with the whole network. This section presents our algorithm to build the connectivity Table, and to maintain its consistence in presence of the mobility. We assume that at the beginning of a mission, robots are close to each other and form a network; therefore, they can communicate and rely on MANET routing protocol for message transmission. We also assume that a message sent by a node is received correctly within a finite period of time (a Step) by all its neighbours, and that every node knows its ID, and IDs of all its neighbours. The main concerns in making robots network connectivity-aware now turn out to be the problems of selecting the reference robot, and building the Connectivity Tables. A. Selecting the Reference Node and Building the Connectivity Tables The choice of the reference node can be applicationdependent and might involve multiple criteria such as the energy level, the number of neighbours, hardware requirements, etc. In some situation the choice might be easier than others, such as for leader-follower systems, the leader is a good candidate for becoming the reference. Or when the robot team needs to maintain the connectivity with a base station, then the base station will be naturally chosen to be the reference node. Another option to generalize the approach is to employ a market-like bidding mechanism to select the node that will be the reference. Once chosen, the reference robot will broadcast to all its one-hop neighbours a New-Access-Path Message, which encodes the sender’s ID, and the new access path. In the case of the reference node, the access path is empty. Upon receiving the New-Access-Path message, a robot extracts the access path encoded in the message’s content (line 2 in algorithm 1). Thanks to this information, the robot is able to check whether this message has already been received by itself or not. This check step ensures that the path is loop-free. If the message has already been processed, it is simply ignored (line 3). Otherwise, the robot will modify the access path by inserting the sender’s ID in the head of the path (lines 4–5), and add the newly updated path to the Table (line 6). Finally, the robot broadcasts an updated New-Access-Path message
Algorithm 1: newAccessPathMessageReceived Input: The New-Access-Path Message DM Output: The Connectivity Table T of the robot is updated 1 begin 2
p ← DM.accessPath();
3
if this.id() 6∈ p then
4 5 6 7
8 9 10 11 12 13
s ← DM.getSender(); p.addFirst(s.id()); T.add(p); if T.isInternallyDisjointWith(p) then DM.setSender(this); DM.setNewPath(p); this.oneHopBroadcast(DM); end end end
to its neighbors (lines 8–10) if the access path contained in the message is disjoint to all the paths stored in its own table. This filtering technique is applied in order to reduce the number of messages sent in highly dense network, for instance, when the graph is complete, the message complexity can be of O(n!) [4]. For small, and sparse network, the filtering might not be used for having a more complete knowledge on network connectivity. Executing the algorithm on each robot, the message issued by the reference node incrementally spreads out in the network. As long as nodes are reachable from the reference node, they will receive the message and build up their own Connectivity Table. Take the robot network of Figure 1 at Step 1, when R1 declares oneself as the reference robot, it broadcasts a New-Access-Path message containing an empty access path. R2 and R5 will receive the message and look into the path. Since they have not received this message before and their Connectivity Tables are still empty, R2 and R5 add the path into their Table, then modify the path by adding R1 .id into the path’s head. Finally, they forward the modified path to their neighbours. At Step 3, R6 receives the message from R5 . At the same Step, R3 and R4 receive the message sent by R2 . They all add the path to their Table, modify and forward the newly updated message. Note that R1 also receives messages from R2 and R5 , but it ignores them because R1 .id is already in the path. At Step 4, R6 continues to forward the message, but R5 ignores it because R5 .id is already in the path. Similarly, messages sent by R3 and R4 reach R7 and R2 , but only R7 proceeds to add two paths into its Table. At the last Step, there is only R7 attemptes to forward a message. Consider the message that reaches R7 after passing through R2 and R4 . After updating this message, R7 will broadcast it. So R4 and R3 will receive this updated version. R4 will ignore
it because R4 .id is already in the path. R3 will also ignore it because the message path is not internally disjoint with other paths in R3 ’s connectivity Table (see Table 1). The process finishes after 4 steps. After that, there is no message exchanged in the network. Now we prove the time and the message complexity of the network initialization procedure, and its correctness. For the sake of simplicity, we consider the case where the network topology does not change during the initialization2 . Theorem 1: The process of initializing the network is loop-free, and will terminate within l steps, where l is the length, in terms of hop-count, of the longest access path in the network. Proof: A loop occurs when a message that has been treated by a robot R gets back to R, and it still proceeds with it. However, line 3 of algorithm 1 ensures that loops are filtered out. The process of network initialization starts with the reference robot and spreads out in the network step by step. After k steps, nodes that are k-hops away from the reference node are able to build up paths composed of k − 1 intermediate nodes. As there is no loop in its execution, the procedure will terminate within l steps, where l is the length, in terms of hop-count, of the longest access path. Theorem 2: The memory complexity for saving a Con¯ and the message complexity of nectivity Table is O(2nd), ¯ the algorithm is O(2nd) where d¯ is the average number of neighbors. Proof: We first consider the worst case when the graph is complete, i.e. all the robots in the network are all neighbors of each others; thus, every robot has n − 1 neighboring robots. For any robot Ri , the number of messages stored in its Connectivity Table is equal to the number of loop-free paths sent by all its neighbors. Note that robot retransmits only internally disjoint (c.f. Definition 3 in II). To count the number of access paths sent, we classify them according to the length. Let denote Cl is the number of the paths having length l. All the paths of length 1 and 2 are by definition internally disjoint. They will all be sent out, hence, C1 = 1, and C2 = n − 2. For counting Ck , 3 ≤ k ≤ n − 1, we notice that since they are all internally disjoint with each other, a neighboring robot of the sending robot can not appears more than once in all the P paths whose the length is greater than n−1 or equal to 3. Thus, k=3 Ck ≤ n − 2, where n − 2 is the number of neighbors excluding the reference robot. Totally, a robot forwards 1+(n−2)+(n−2) = 2n−3 possible access paths in the worst case. The space complexity for saving the Connectivity Table in each robot is O(2n2 ). Then we count the number of messages traveling in the network during the initialization procedure also for the worst case. Because each robot, except that the reference robot sends out only one message, forwards (2n − 3) New-Access-Path message, the total number of message in the network is (2n − 3)(n − 1) + 1. So the message complexity in the whole network is O(2n2 ). 2 All
the presented results can be covered without this assumption.
Note however that the worst case almost never happens in practice. In general for the networks with referentially ¯