## 2 Related Works
### Packet Routing  
Greedy perimeter stateless routing (GPSR) is a well-known routing algorithm proposed by [PERSON] et al. (2000) [16]. Nodes determine their neighbors' positions by receiving periodic beacons. To reduce beaconing costs, GPSR piggybacks the local node's position in data packets it forwards, and each node receives a copy of all packets for nodes within the radio range. GPSR uses the GGF algorithm to send packets to the destination nodes, and if it fails, a perimeter forwarding algorithm is used to exploit the faces of a planar graph of the network topology. To avoid crossing links, GPSR removes edges that are not part of the relative neighborhood graph (RNG) or Gabriel graph (GG), which are two planar graphs known in the literature [17; 18]. Using the planar graph, GPSR traverses the edges of a face using the right-hand rule until it reaches a node closer to the destination. An improved GPSR algorithm is proposed in [19]. It uses surplus energy to send a signal to a distant node instead of transmitting a message. The method involves using an aggregate node located at the remote base station to route messages through proper nodes. The network operation involves selecting headset users for groups and transmitting data from the users to the base station. The cluster head node needs to be radioactive, and associate nodes remain in sleep mode. The GPSR system outperforms earlier techniques in terms of routing path lengths. The face traversal technique (FACE-2) proposed by [PERSON] et al. [20] creates a planar graph based on the network topology and uses face routing to find a path between source and destination nodes. Essentially, the algorithm creates a line segment from the source to the destination, finds a face with the source node on its boundary that intersects this line segment, and traverses this face until reaching an edge that intersects the line segment. When reaching this edge, one of the nodes of the edge becomes the new source node and the process repeats until it reaches the destination node. [PERSON] et al. [21] proposed a combined protocol, named OLSR-L, which integrates optimized link state routing (OLSR) [22] and OLSR-based localization (ROULA) [23], which perform routing and localization simultaneously. When running localization and routing separately, it was observed that the communication overhead doubled. To address this, the overlapping functionalities of OLSR and ROULA were integrated to reduce the communication overhead. OLSR, proposed by [PERSON] et al. [22], is a proactive routing protocol that uses the concept of multi-point relay (MPR) nodes, which forward broadcast messages during the flooding process. To select MPR nodes, the OLSR algorithm floods each node's 1-hop node list to their 1-hop nodes and selects MPR nodes when the node has the same 2-hop node list. Then, the selected MPR nodes act as relay nodes to form the routing table. ROULA, proposed by [PERSON] et al. [23], is a range-free and anchor-free localization protocol where nodes search for other nodes arranged into regular triangles to satisfy the requirement of independency from anchors. To choose the farthest 2-hop node, which is a candidate to be a vertex of a regular triangle, ROULA uses MPR nodes. Each node then floods the network with packets carrying a farthest 2-hop node list. Based on this information, nodes calculate relative local coordinates by matching regular triangles. Therefore, OLSR-L performs localization and routing simultaneously, with OLSR periodically holding and updating 1-hop neighbor information to provide ROULA's required neighbor node information. Furthermore, ROULA uses OLSR's MPR node to accurately estimate node distance. [PERSON] et al. [24] proposed a solution for simultaneous routing and localization in multi-hop wireless networks. The solution involves clustering and routing steps where nodes are collected into clusters using the CBRP algorithm [25]. During this step, kernel nodes send their position to neighbors for localization.