Obstacle-Aware Charging Pad Deployment in Large-Scale WRSNs: An Outside-to-Inside Onion-Peeling-like Strategy
Abstract
1. Introduction
2. Related Works
3. Onion-Peeling-like Strategy for Obstacle-Aware Charging Pad Deployment
3.1. Optimization Problem: Ensuring Coverage and Connectivity with Considering Obstacles
- (1)
- The number of deployed charging pads m is minimized to reduce infrastructure costs.
- (2)
- Every sensor node is accessible via at least one feasible drone path originating from the BS.
- (3)
- Every sensor node or pad cannot be deployed in one of given obstacles which are convex polygons in shape.
- (4)
- Network constraints Dcharge and Dpad are satisfied to ensure full connectivity and coverage with considering obstacles.
- (1)
- Obstacle-avoiding Path Existence (Implicit Check): For any two distinct pads pi and pj (where i ≠ j), there must exist at least one obstacle-free flight path connecting them. This is not enforced by a separate constraint but is inherently guaranteed by Constraints (11) and (12). If no such path exists due to obstacles, zij in Constraint (11) returns 0, which automatically violates Constraint (12).
- (2)
- Range Constraint (Explicit Check): The distance of any two consecutive pads pi and pj in the shortest feasible flight path must be less than or equal to Dpad, the UAV’s maximum flight range between recharges. This is formally stated as:
3.1.1. Network Architecture
- (1)
- The network includes a single BS and one drone.
- (2)
- All sensor nodes are stationary, identical in function, and equipped with the same battery capacity.
- (3)
- The BS has complete knowledge of sensor node locations and obstacle boundaries.
- (4)
- When a node requires recharging, the BS dispatches the drone.
- (5)
- Both the BS and charging pads are stationary and have unlimited energy supplies.
- (6)
- All drone flight paths must avoid obstacles.
3.1.2. Drone Energy Consumption Model
3.2. Proposed Outside-to-Inside Onion-Peeling Like Strategy
- (1)
- Limiting the search space for path-planning calculations.
- (2)
- Phased handling of obstacles, where they are ignored during initial pad placement and are only enforced during the subsequent optimization stage.
- (1)
- Initial pad deployment: OLMC first generates a preliminary layout that guarantees full sensor coverage while ignoring obstacles. This phase focuses solely on minimizing the number of pads based on geometric coverage. During the pad configuration process, OLMC invokes AdjPadPos to perform regional optimization of pad positions, and finally calls ConnectPads to ensure connectedness between the configured pads.
- (2)
- Obstacle-aware optimization: In the second stage, ReLitePad first removes pads that are placed on obstacles from the configuration and then invokes ReCover to supplement appropriate pads, ensuring that the pad configuration complies with obstacle constraints while maintaining connectedness and coverage. Next, it identifies all closely spaced pads and attempts to remove them before calling ReCover again to search for a better configuration. During ReCover, OLMC is invoked once more to re-optimize the configuration for the remaining uncovered sensors and valid pad locations.
Algorithm 1: OIOP_Strategy (Outside-to-Inside Onion-Peeling) |
Purpose: an onion-peeling like strategy for the deployment of charging pads with considering obstacles. Input: S: Set of sensors. BS: Base station. OBstacles: cell array of convex polygons (each N × 2) defining obstacles. Output: pads (set): Final set of optimally deployed charging pads. Process: |
1: //PHASE 1: INITIAL DEPLOYMENT (Obstacles Ignored for Speed) ToCover ← S // All sensors need coverage initially. 2: DPads← ∅ // No pads deployed yet 3: pads ← OLMC(ToCover, DPads) // Deploy pads for full coverage, ignoring 4: // obstacles 5: //PHASE 2: OBSTACLE-AWARE OPTIMIZATION 6: pads ← ReLitePad(pads, S, OBstacles) 7: // ReLitePad internally performs: 8: // a. Remove any pads placed on obstacles. 9: // b. Re-deploy pads (using OLMC) to cover any sensors left uncovered. 10: // c. Identify and remove redundant pad groups, re-deploying only if it // reduces total pad count. // d. Ensure final pad set is fully connected (using ConnectPads). return pads |
3.3. Main Algorithm (OLMC)
Algorithm 2: OLMC (Onion-peeling Like Max Covering) |
Purpose: Deploy charging pads in an outside-in, onion-layer fashion, prioritizing coverage of the outermost sensors first, while ensuring full coverage and connectivity under obstacles constraints. Input: Obstacle (boolean): Whether to consider obstacles. ToCover (set): Target sensors that must be covered. DPads (set): Pre-deployed charging pads (may be empty). Output: pads (set): Final set of optimally deployed charging pads. Process: |
1: Sort all sensors in ToCover in descending order by Euclidean distance from the
base station (BS). 2: Pads ← DPads 3: while ToCover is not empty do 4: target ← first sensor in ToCover //farthest uncovered sensor 5: [pos, NewCovered] ← AdjPadPos(NoFlyZone, ToCover [1]); 6: Add a new pad at position pos to pads 7: Remove NewCovered sensors from ToCover 8: end while 9: pads ← ConnectPads(pads); //Ensure connectivity among all pads 10: return pads |
3.3.1. Flight Distance Calculation in Obstacle-Aware Environments
Algorithm 3: dist (Calculate fly distance between two points) |
Purpose: Return the shortest flight distance between two planar points p1 = (x1, y1) and p2 = (x2, y2) that respects every convex obstacle in the map. Input: p1, p2: start and goal coordinates. OBstacles: cell array of convex polygons (each N × 2) defining obstacles. free_points: cell array of OBstacles vertices that are reachable by the UAV. freeG: undirected weighted graph that already links mutually-visible vertices. Output: d; scalar flight distance (Inf if no route exists). Process: |
1: if is_collision_free (p1, p2, OBstacles) 2: return the Euclidean distance between p1 and p2; 3: end 4: V ← {p1, p2} ∪ free_points. 5: Build an auxiliary graph G identical to freeG, then add p1 and p2 as two new nodes. 6: For every v∈V 7: if segment (p1, v) is collision-free, add edge (p1, v) with weight‖v–p1‖into G. 8: if segment (p2, v) is collision-free, add edge (p2, v) with weight‖v–p2‖into G. Run Dijkstra’s algorithm on G from node p1 to node p2. Let d be the obtained path length; if the search fails, set d ← Inf. 9: Return d. 10: |
3.3.2. Pad Position Adjustment
Algorithm 4: AdjPadPos (Adjust pad positions) |
Purpose: Find the best grid position to place a new charging pad for sensor sid, maximizing uncovered-sensor coverage while respecting obstacles and map bounds. Input: sid: ID of the target sensor to cover, pos: Initial candidate positions (usually the sensor’s locations). Output: bestpos: Optimal pad position [x, y], bestNW: List of sensor IDs newly covered by bestpos. Process: |
1: cx, cy ← pos; bestPos ← pos; bestNW ← ∅ 2: GWidth ← Dcharge; step ← 100 3: PB ← {k ∈ B | dist(k,sid) ≤ Dpad} // LimitB 4: bbox ← boundingBox(PB ∪ {pos}) 5: obstacles ← clipObstacles(bbox) 6: for i, j in grid(cx±GWidth, step) 7: p ← [cx+i, cy+j] 8: if outside(p) or inObs(p) or dist(p,pos) > Dcharge then continue 9: NW ← {k ∈ PB | dist(p,S[k]) ≤ Dcharge} 10: if |NW| > |bestNW| then bestPos←p; bestNW←NW 11: return (bestPos, bestNW) |
Algorithm 5: clipObs (Remove redundant obstacles) |
Purpose: Remove all obstacles that lie completely outside the given bounding box, returning only those (or parts of those) that could affect the current local search. Input: bbox: structure {xmin, xmax, ymin, ymax} defining the rectangular region of interest. Output: clippedObs: cell array of convex polygons that intersect or lie inside bbox. Process: |
1: clippedObs ← ∅ 2: foreach polygon P in obstacles 3: P ← convex polygon vertices // N × 2 matrix 4: if any vertex of P lies inside bbox 5: clippedObs{end+1} ← P 6: else if bbox intersects any edge of P 7: clippedObs{end+1} ← P 8: return clippedObs |
3.3.3. Connectivity Enforcement
Algorithm 6: ConnectPads (Connecting Pads) | |
Purpose: Ensure all pads form a connected network (spanning tree) from the base station (pad 1). If any two pads exceed the maximum link distance Dpad, insert additional relay pads or move existing pads to bridge the gap while preserving coverage. Input: p: array of pad positions.pos = [x, y]., Output: pads: updated array of connected pads (original + added/relocated). Process: | |
1: pads ← {p1} // start with base station 2: remain ← p\{p1} // pads to connect 3: while remain ≠ ∅ 4: (i, j) ← 5: if dist(i, j) ≤ Dpad 6: pads ← pads ∪ {j}; remain ← remain \ {j} 7: else 8: // Try to move i or j closer 9: moved ← moveCloser(i, j, Dpad) 10: if moved 11: continue 12: else 13: // Insert relay pad on straight line 14: relay ← midpoint(i, j, Dpad) 15: pads ← pads ∪ {relay} 16: end 17: end return pads |
3.3.4. Post-Processing: Redundant Pad Removal
- (1)
- Redundant-Group Detection: It identifies candidate groups of redundant pads by constructing a graph where an edge exists between any two pads within distance Dpad of each other.
- (2)
- Selective Removal & OLMC-Based Recovery: For each candidate group, ReLitePad tentatively removes the pads and then runs the ReCover subroutine (Algorithm 8) to re-establish coverage for any affected sensors using the OLMC algorithm. If this results in a layout with fewer pads, the change is accepted.
Algorithm 7: ReLitePad (Redundant-pad Removal and Lightweight Re-deployment) |
Purpose: Redundant-pad Removal and Re-deployment Optimization for Obstacle-Aware WRSNs. Global: Dcharge: UAV one-hop charging radius. Dpad: max inter-pad connection distance. Obstacles: convex obstacle polygons (empty if ObstacleMode = false). Input: P: {p1, …, pm} is the current charging-pad set (each p = (x, y)). S: sensor set (here index 1 is the base-station). Output: P′: subset of P plus possibly new pads such that every sensor s ∈ S is within Dcharge of ≥1 pad, and the induced communication graph (edges ≤ Dpad) is connected. Process: |
1: originNumPad ← |P| 2: for each p ∈ P do // filter invalid pads 3: if inObs(p) then 4: P ← P - {p} 5: end for 6: if |P| < originNumPad // removed some pads located in obstacles 7: P ← ReCover(∅, P) 8: repeat 9: changed ← false 10: BuildAdjacency(P) // conn[i] ← { j|dist(pi, pj) ≤ Dpad } 11: RP ← ∅ // candidate redundant groups 12: for i ← 2 .. |P|–1 do 13: for j ← i+1 .. |P| do 14: if dist(pi, pj) < Dcharge/2 then 15: RP ← RP ∪ { {i, j} ∪ conn[i] ∪ conn[j]} 16: foreach set R in RP do 17: P′ ← ReCover(R, P) 18: P′ ← ConnectPads(P′) 19: if |P′| < |P| then 20: P ← P′ 21: changed ← true 22: break RP-loop // restart scanning with a new layout 23: until changed = false 24: P′←P 25: return P′ |
Algorithm 8: ReCover (Recovering sensors) |
Purpose: Re-deploy charging pads after removing redundant or obstacle-overlapping pads while guaranteeing full sensor coverage and preparing for connectivity restoration. Global: S: sensor set (index 1 = BS) Dcharge: UAV one-hop charging radius Obstacles: convex obstacle polygons. Input: R: indices of pads to remove P: original set of pads Output: P′: updated pad set covering every sensor within Dcharge under obstacle constraints. Process: |
1: P′ ← ∅ // initialize new pad set 2: for each p ∈ P do // filter invalid pads 3: if p ∉ R then 4: P′ ← P′ ∪ {p} 5: end for 6: ToCover ← ∅ // sensors left uncovered 7: foreach s ∈ S do 8: covered ← false 9: foreach p ∈ P′ do 10: if dist(s, p) ≤ Dcharge then 11: covered ← true 12: break 13: end if 14: end for 15: if s is not covered then 16: ToCover ← ToCover ∪ {s} 17: end if 18: end for 19: if ToCover ≠ ∅ then // re-deploy pads for uncovered sensors 20: P′ ← OLMC(ToCover, P′) 21: end if 22: return P′ |
- (1)
- Obstacle-Aware Distance Queries
- (2)
- Bounding-Box & Clipping Optimizations
3.4. Practical Interpretation of Complexity Bounds
- (1)
- Spatial Pruning: The LimitB and clipObstacles optimizations restrict computations to small, local neighborhoods. This means variables like the number of obstacles (nₒbs) and obstacle vertices (m) behave as small constants, not scaling factors.
- (2)
- Favorable Scaling: The number of pads (p) is typically much smaller than the number of sensors (n). For example, with 500 sensors, p rarely exceeds 45—making p3 computationally trivial (~91 k operations).
4. Simulation Results
4.1. Performance Comparison of Pad Deployment in Environments with and Without Obstacles
4.2. Performance Impact of Main Mechanisms of the Proposed Strategy
- (1)
- No: the baseline Onion-like pad deployment method without any acceleration techniques,
- (2)
- LimitB: with LimitB acceleration only,
- (3)
- NoObsFirst: with the phased obstacle handling only,
- (4)
- All: combining both LimitB and NoObsFirst.
4.3. Effect of the Number of Obstacles on Algorithm Performance
- (1)
- PAD Usage Is Stable Across Sensor Counts:
- On the 4096 × 4096 map, increasing the number of sensors from 50 to 500 resulted in PAD usage remaining between 5 and 6.
- On the 16,384 × 16,384 map, increasing the number of sensors from 50 to 500 resulted in PAD usage staying between 24 and 45.
- (2)
- Obstacles Slightly Decrease PAD Usage:
- (3)
- Map Size Significantly Affects Execution Time:
- (4)
- Number of Sensors Positively Correlates with Execution Time:
- (5)
- Obstacle Count Increases Execution Time:
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
BS | Base Station |
CDC&DSC | Clustering-with-Double-Constraints and Disks-Shift-Combining |
Dijkstra | Dijkstra’s Shortest Path Algorithm |
HIL | Hardware-in-the-Loop |
IoT | Internet of Things |
MC | Max Covering (baseline algorithm) |
MSC | Max Sensor Coverage (baseline algorithm) |
OIOP | Outside-to-Inside Onion-Peeling |
OLMC | Onion-peeling Like Max Covering |
ReLitePad | Redundant-pad Removal and Lightweight Re-deployment |
SMC | Sink-outward Max Covering (baseline algorithm) |
SN | Sensor Node |
UAV | Unmanned Aerial Vehicle |
WCD | Wireless Charging Drone |
WCV | Wireless Charger Vehicle |
WPT | Wireless Power Transfer |
WRSN | Wireless Rechargeable Sensor Network |
WSN | Wireless Sensor Network |
References
- Akyildiz, I.F.; Su, W.; Sankarasubramaniam, Y.; Cayirci, E. A Survey on Sensor Networks. IEEE Commun. Mag. 2002, 40, 102–114. [Google Scholar] [CrossRef]
- Zhao, M.; Li, J.; Yang, Y. A framework of joint mobile energy replenishment and data gathering in wireless rechargeable sensor networks. IEEE Trans. Mob. Comput. 2014, 13, 2689–2705. [Google Scholar] [CrossRef]
- Lin, C.; Zhou, J.; Guo, C.; Song, H.; Wu, G.; Obaidat, M.S. TSCA: A Temporal-Spatial Real-Time Charging Scheduling Algorithm for On-Demand Architecture in Wireless Rechargeable Sensor Networks. IEEE Trans. Mob. Comput. 2017, 17, 211–224. [Google Scholar] [CrossRef]
- Rong, C.; Duan, X.; Chen, M.; Wang, Q.; Yan, L.; Wang, H.; Xia, C.; He, X.; Zeng, Y.; Liao, Z. Critical Review of Recent Development of Wireless Power Transfer Technology for Unmanned Aerial Vehicles. IEEE Access 2023, 11, 132982–133003. [Google Scholar] [CrossRef]
- Chen, J.; Yu, C.W.; Ouyang, W. Efficient Wireless Charging Pad Deployment in Wireless Rechargeable Sensor Networks. IEEE Access 2020, 8, 39056–39077. [Google Scholar] [CrossRef]
- Baek, J.; Han, S.I.; Han, Y. Optimal UAV Route in Wireless Charging Sensor Networks. IEEE Internet Things J. 2020, 7, 1327–1335. [Google Scholar] [CrossRef]
- Cheng, R.-H.; Yu, C.W.; Zhang, Z.-L. Optimizing Charging Pad Deployment by Applying a Quad-Tree Scheme. Algorithms 2024, 17, 264. [Google Scholar] [CrossRef]
- Zorbas, D.; Douligeris, C. Computing drone positions to wirelessly recharge IoT devices. In Proceedings of the IEEE INFOCOM Workshops: Wireless Sensor, Robot and UAV Networks, Honolulu, HI, USA, 16 April 2018; pp. 628–633. [Google Scholar]
- Lin, T.-L.; Chang, H.-Y.; Wang, Y.-H. A Novel Unmanned Aerial Vehicle Charging Scheme for Wireless Rechargeable Sensor Networks in an Urban Bus System. Electronics 2022, 11, 1464. [Google Scholar] [CrossRef]
- Chen, Y.; Gu, Y.; Li, P.; Lin, F. Minimizing the Number of Wireless Charging PAD for UAV-Based Wireless Rechargeable Sensor Networks. Int. J. Distrib. Sens. Netw. 2021, 17, 15501477211055958. [Google Scholar] [CrossRef]
- Cheng, R.-H.; Yu, C.-W. Efficient Charging Pad Deployment in Large-Scale WRSNs: A Sink-Outward Strategy. Electronics 2025, 14, 2159. [Google Scholar] [CrossRef]
- Shu, Y.; Yousefi, H.; Cheng, P.; Chen, J.; Gu, Y.; He, T.; Shin, K.G. Near-optimal velocity control for mobile charging in wireless rechargeable sensor networks. IEEE Trans. Mob. Comput. 2015, 15, 1699–1713. [Google Scholar] [CrossRef]
- Fu, L.; He, L.; Cheng, P.; Gu, Y.; Pan, J.; Chen, J. ESync: Energy Synchronized Mobile Charging in Rechargeable Wireless Sensor Networks. IEEE Trans. Veh. Technol. 2015, 65, 7415–7431. [Google Scholar] [CrossRef]
- Wang, C.; Li, J.; Yang, Y. Low-latency mobile data collection for wireless rechargeable sensor networks. In Proceedings of the IEEE International Conference on Communications (IEEE ICC), London, UK, 8–12 June 2015; pp. 6524–6529. [Google Scholar]
- Xie, L.; Shi, Y.; Hou, Y.T.; Lou, A. Wireless poser transfer and applications to sensor networks. IEEE Wirel. Commun. 2013, 20, 140–145. [Google Scholar]
- Xie, L.; Shi, Y.; Hou, Y.T.; Lou, W.; Sherali, H.D. On traveling path and related problems for a mobile station in a rechargeable sensor network. In Proceedings of the 14th ACM International Symposium on Mobile Ad Hoc Networking and Computing (Mobihoc), Bangalore, India, 29 July–1 August 2013; pp. 109–118. [Google Scholar]
- Guo, P.; Liu, X.; Tang, S.; Cao, J. Concurrently wireless charging sensor networks with efficient scheduling. IEEE Trans. Mob. Comput. 2017, 16, 2450–2463. [Google Scholar] [CrossRef]
- Wibotic. PowerPad. Available online: https://www.wibotic.com/products/powerpad/ (accessed on 1 March 2025).
- Skysense. Charging Pad Outdoor Specs. Available online: https://www.skycharge.de/drone-charging-pad (accessed on 1 March 2025).
- Getcorp. In-Flight Wireless Charging Outdoor Demonstration. Available online: http://getcorp.com/in-flight-wireless-charging-outdoor-demonstration/ (accessed on 1 March 2025).
- Long, T.; Ozger, M.; Cetinkaya, O.; Akan, O.B. Energy Neutral Internet of Drones. IEEE Commun. Mag. 2018, 56, 22–28. [Google Scholar] [CrossRef]
- Dijkstra, E.W. A note on two problems in connexion with graphs. Numer. Math. 1959, 1, 269–271. [Google Scholar] [CrossRef]
- Andrew, A.M. Another efficient algorithm for convex hulls in two dimensions. Inf. Process. Lett. 1979, 9, 216–219. [Google Scholar] [CrossRef]
Parameters | Values |
---|---|
Esensor | 200 Joules |
Edrone | 1000 Joules |
Pflight | 10 Joules/s |
Vflight | 35 m/s |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Cheng, R.-H.; Hsu, Y.-Y.; Yu, C.W. Obstacle-Aware Charging Pad Deployment in Large-Scale WRSNs: An Outside-to-Inside Onion-Peeling-like Strategy. Information 2025, 16, 835. https://doi.org/10.3390/info16100835
Cheng R-H, Hsu Y-Y, Yu CW. Obstacle-Aware Charging Pad Deployment in Large-Scale WRSNs: An Outside-to-Inside Onion-Peeling-like Strategy. Information. 2025; 16(10):835. https://doi.org/10.3390/info16100835
Chicago/Turabian StyleCheng, Rei-Heng, Yuan-Yu Hsu, and Chang Wu Yu. 2025. "Obstacle-Aware Charging Pad Deployment in Large-Scale WRSNs: An Outside-to-Inside Onion-Peeling-like Strategy" Information 16, no. 10: 835. https://doi.org/10.3390/info16100835
APA StyleCheng, R.-H., Hsu, Y.-Y., & Yu, C. W. (2025). Obstacle-Aware Charging Pad Deployment in Large-Scale WRSNs: An Outside-to-Inside Onion-Peeling-like Strategy. Information, 16(10), 835. https://doi.org/10.3390/info16100835