Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PERCH

Precision confined-area landing-site assessment for drone delivery. Cognis Digital LLC · US-only.

PERCH gets supplies to people who cannot otherwise be reached — a cut-off squad on a rooftop, a unit in a courtyard, survivors in a building with a blown-out roof. It fuses structural/topographic data (a digital surface model) with real-time object detections (a YOLO-class detector) to choose the safest touchdown point on a rooftop, in a courtyard, or down into an opening — never on or beside a person — and plans a clean confined vertical approach with a continuous wave-off check.

Delivery / rescue landing-site selection only. No weapon, targeting, or engagement content. The overriding rule is that the vehicle never lands on a person.

How it works

  1. DSM (dsm) — read the surface: per-cell slope (Horn's method), footprint roughness, and a rooftop mask (elevated structures) with their unsafe edge cells.
  2. Perception fusion (detect) — take detections from a real-time detector and stamp them onto the grid as keep-outs with class-specific safety buffers; a detected person is an absolute keep-out (5 m).
  3. Landing-site scoring (landingsite) — rank every candidate cell by clearance, flatness, and centrality; hard-exclude anything unsafe (person nearby, footprint won't fit, too steep/rough, roof edge, or too little clearance).
  4. Confined approach (approach) — verify the vertical corridor is open and the opening is wide enough for the rotor circle; re-run a wave-off check each moment (a person stepping onto the pad aborts the landing).
  5. Mission + safety (mission, safety) — pick the site, plan the approach, and gate the descent on the person rule, clearance, footprint, corridor, and roof edge.

Quick start (CLI)

python -m perch assess --scenario scene.json

scene.json (a DSM grid + real-time detections):

{
  "cell_size_m": 1.0,
  "grid": [[0,0,0,0],[0,3,3,0],[0,3,3,0],[0,0,0,0]],
  "detections": [{"hazard":"person","cx":1,"cy":1,"w":1,"h":1}],
  "mode": "rooftop"
}

Library

from perch import DSM, HazardMap, Detection, HazardClass, DeliveryMission, LandingMode, preflight

dsm = DSM(elevation_grid, cell_size_m=1.0)
hz  = HazardMap(dsm.rows, dsm.cols, dsm.cell_size_m)
hz.add(Detection(HazardClass.PERSON, cx=7, cy=7, w=1, h=1))   # from the detector

m = DeliveryMission("resupply", dsm, hz, LandingMode.ROOFTOP).solve()
print(m.summary(), preflight(m).cleared)   # best pad + approach, gated on the person rule

Tests

python -m pytest -q      # 457 tests

Part of the Cognis unmanned logistics program

The precision-delivery brain that lets DROPWING (air resupply) put a bundle on a rooftop or into a courtyard; complements MULEWAY (ground), DEEPDRIFT (undersea), TIDERUNNER (surface), tasked by QUARTERMASTER.

About

Precision confined-area landing-site assessment for drone delivery to rooftops/courtyards/basements (US). Fuses DSM + real-time detections; never lands on a person. Delivery/rescue, not weapons.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages