**3. 'T-Node' Map Representation**

A T-node representation of the map has been proposed in our previous work [12]. We briefly explain the T-node map and how obstacles are represented in it. Later, we describe how path planning is done on the node map. It is assumed that each robot is also assigned a unique robot-id (Rid) and the robots are on the same network to exchange messages with each other.

A node is defined as a point of turn in a path of the map. The paths are represented as a network of these nodes in the map. Figure 4a shows the node representation of the environment shown in Figure 1. Notice that, the nodes n1, n2, ··· , n12 are the points of turns in the map. The terminal nodes are shown in red color in Figure 4a. Nodes are connected to each other through edges. Figure 4b shows the T-node map with an obstacle placed between the nodes n9 and n3. The distance between

the nodes n9n3 is *L* and the distance of the obstacle from node n3 is *x*, which can easily be estimated using an on-board distance sensor.

**Figure 4.** T-node representation of the environment shown in Figure 1. (**a**) T-node map without obstacle. (**b**) T-node map with obstacle between nodes n9n3.

A table stores T-node map's information viz. traversable/blocked edges (paths) and any changes at the edges. All the robots have access to this table. In the context of Figure 4b, the corresponding information is shown in Table 2. The table contains a set of four information about each path: (1) binary information of whether a new obstacle is found on an edge, (2) a binary information if the path is blocked and cannot be traversed, (3) details of the obstacle if the path is changed and (4) the timestamp (Ts) when the information was updated. The details of the information will vary according to the type of the sensor used. For example, in case of Lidar, the obstacle information will contain: the obstacle coordinates from the node (dx, dy), dimensions of the obstacle like width (wobs) and height (hobs) and the positional uncertainty associated in estimating the obstacle (*σx*, *σy*). The uncertainty information comes from the SLAM module used in the robot. As shown in T-node map of Figure 4b, only one of the edges *n*3*n*<sup>9</sup> is obstructed. This information is reflected in Table 2. It is possible that a new obstacle is found on a path, however the path could be still be traversed. A blocked path cannot be traversed by the robot.


**Table 2.** T-node map information corresponding to Figure 4b.

Each robot has a copy of this table which has small memory requirement as the meta-data for only the changed paths are required. Moreover, information is communicated to other robots only when some path information is changed. A T-node representation makes it easier for a robot to share information with other robots. The local maps maintained by the two robots might differ by some rotation, translation or scale. As an example, Figure 5a shows the section of the map of Figure 4b with obstacles. Figure 5b shows a scaled version, Figure 5c a rotated version and Figure 5d a scaled and rotated version of Figure 5a. However, the nodes on the paths remains the same and information that there is an obstacle on one of the edges is still conveyed clearly from Table 2 which maintains the details of the obstacles. In addition, with a T-node representation a global map is not required. Even for a large number of nodes, only those edges which are changed is communicated to the robots. The small data size ensures fast and reliable communication with small communication bandwidth.

**Figure 5.** Scale and rotation effects on the T-node map. In all cases, meaningful information can still be shared between robots. (**a**) Original section n9n3 of Figure 4b. (**b**) Figure 5a scaled down. (**c**) Figure 5a rotated by angle *θ*1. (**d**) Figure 5a scaled up and rotated by angle *θ*2.

The T-node map can be generated by maneuvering the robot in the environment and setting points of turns (where the robot turns by around 90 degrees) as nodes. Automatic generation of T-node map is also possible if a map is available. For example, if there is a grid-map with obstacles (black), open (white) and unknown (grey) areas, the first step is to generate a binary image of the grid-map which is done by turning all unknown cells to blocked (black) value. This is shown in Figure 6a. Noise is removed by successively applying morphological erode and dilate operations [32,33]. The next step is to apply skeletonization algorithm [34,35]. Many skeletonization and thinning algorithms generate unnecessary tentacles which needs to be removed using pruning algorithm [36]. Result of showing skeletonization on binary map of Figure 6a is shown in Figure 6b. Line segments are then detected using techniques like SVD and Hough Transform [1]. The end-points of segments which are within a small threshold distance (*δ*) can be clustered [37] using k-means [38,39], fuzzy c-means [40] or density based clustering methods [41] into a single node as shown in Figure 6c,d. A graph '*N*' of these nodes {*n*1, *n*2, ··· , *nm*} form the T-node map of the environment. The pseudo-code is given in Algorithm 1.


It should be noted that a 'node' is merely a point of turn in the navigational graph. It does not include any feature information (e.g., corners, line, color, etc.) of the map. Hence, map-merger on T-Node map is not possible. However, traditional methods [42,43] can be used to first merge feature-rich maps and thereby T-node map. Moreover, since the characteristics of the navigational paths are different for unmanned ground vehicles (UGVs) and unmanned aerial vehicles (UAVs), this work does not consider the case of heterogeneous robots. Only ground robots are considered and the proposed method will work well for both differential drive robots and skid-steer drive robots.

**Figure 6.** T-node map generation. (**a**) Binary grid-map. (**b**) Skeleton map. (**c**) Clustering within *δ* distance. (**d**) Clustered node *n*.
