Inspiration

A hairline crack. A tank that's started to stain. A pallet pushed in front of an exit. Problems in a facility start small and quiet, and most facilities only look for them every few weeks, when a certified inspection team walks the floor. Everything that happens in between goes unseen.

We're two UW students, one in CS and one in aerospace, who have spent this fall researching autonomous indoor inspection and talking to the people who would use them: construction project managers, facility operators, and site leads. The same theme kept coming up. Inspections are manual, expensive, and infrequent. On construction sites, the question isn't only "is something broken?" but also "was this installed the way the spec says?"

So we asked: what if a facility got inspected every single night, automatically? This weekend we built an autonomous drone that is the core of that loop.

What it does

Noxen gives a facility a night shift that never gets tired.

  1. Learns what "normal" looks like. A LiDAR + camera unit (standing in for our Overseer drone) scans the space once to build a baseline.
  2. Scans every night and finds what changed. Each new scan is aligned to the baseline and compared in 3D and in color. Noxen detects objects that were added, removed, moved, or that changed appearance.
  3. Triages instead of crying wolf. A vision-language model classifies every change. A relocated pallet is routine and stays quiet. A tank that changed color is flagged as possible corrosion, with a severity and a one-sentence rationale.
  4. Sends the Scout. For each flagged issue, Scout, our autonomous drone, flies to the exact spot. It locates itself inside the LiDAR map using only its camera (no LiDAR, no GPS on board) and avoids obstacles that weren't there when the map was made, including a person stepping into its path.
  5. Puts an engineer in control, not on a ladder. The morning report pins every flagged issue on a map of the facility with before/after views and the Scout's close-up footage. The engineer marks each one as confirmed or a false alarm, and that feedback is logged so Noxen learns what matters in that facility.
  6. Pings you where you already are. Noxen texts the alert ("Possible corrosion on Tank 2, NW corner. Reply LOOK to send the Scout.") and a reply dispatches the drone.
  7. Keeps flying. A hot-swap battery mechanism lets the Scout land, swap a drained pack, and take off again without being powered down.

Why this is Cook Smarter: Noxen turns inspection from a periodic manual walk-through into an automated nightly operation. The system makes the first call on which changes deserve a human's time, so engineers spend their hours on decisions, not on walking.

How we built it

Scan → detect → classify → alert → dispatch.

  • Nightly scan: A Unitree L2 LiDAR and a camera capture the facility in 3D and in color. Our ROS 2 pipeline handles capture.
  • Change detection: Each night's scan is aligned to the baseline with Open3D, and Noxen compares the two. It finds what was added, removed, or moved, and catches color changes like rust or stains that shape alone would miss. It also knows that something hidden isn't missing, and that a pallet that moved is one event, not two alarms.
  • Triage with Perceptron: Perceptron's vision-language model looks at each before/after pair and decides whether it's routine or worth flagging, with a severity and a one-line reason.
  • Scout, our autonomous drone: The Scout finds its position on the LiDAR map using only its camera, by matching what it sees to landmarks we tied to the map during scanning. It avoids new obstacles using camera depth estimation (Depth Anything V2), scaled to real distances by the map, with a YOLO-based safety check as a backup.
  • Engineer dashboard: A FastAPI + React app pins every issue on a map of the facility, with before/after images, Scout footage, and one-click feedback that teaches Noxen what matters in that facility.
  • Alerts with Photon: A Photon messaging agent texts the engineer when something's flagged, and replying sends the Scout.
  • Hardware: We designed and built a battery hot-swap mechanism, and the Scout airframe.
  • Demo: Change detection runs on real LiDAR scans of a room captured at different times. The Scout flies live at our table.

Challenges we ran into

  • Real changes vs. sensor noise. The L2 has ~2 cm of range noise, so two scans of an unchanged room never match exactly. We tuned every threshold from a measured noise test instead of guessing, so Noxen catches small real changes without flagging noise.
  • Not crying wolf. The hardest part of change detection is deciding what not to flag. "No change produces zero events" became a required test. Telling occluded apart from removed took ray casting, and telling moved apart from new + missing took cluster matching.
  • Matching a photo to a point cloud. A camera image and a LiDAR map don't share features, so you can't match them directly. Anchoring visual landmarks into the LiDAR frame during mapping solved it.
  • Depth from one camera. Monocular depth models get relative depth right but the scale wrong. Using the prior LiDAR map as a metric reference turned "closer/farther" into real meters the planner could use.
  • Rethinking avoidance mid-design. We first put obstacle avoidance on a fixed sensor, then moved it onto the Scout's own camera, because that's how the real product has to work.

Accomplishments that we're proud of

  • A complete loop, scan → detect → classify → alert → dispatch → report, built in one weekend by a team of two, spanning software and hardware.
  • Noxen tells a moved object apart from a new one, and a routine change apart from a real one. That's the difference between a useful report and a wall of false alarms.
  • The Scout navigates with just a camera inside a map that a LiDAR built once, which is what lets the inspection drones stay small and cheap.

What we learned

  • Most of change detection is deciding what to ignore. Reliability came from the boring parts: registration gates, visibility checks, and the zero-false-alarm test.
  • Build the expensive map once. Once one sensor has mapped the space, every drone after it only needs a camera.
  • Keep perception independent of the robot stack. Because the pipeline is plain Python running on recorded scans, we could develop and test it without the hardware connected.
  • Design the demo for where it will be judged.

What's next for Noxen

  • Put the LiDAR in the air. Putting LiDAR in the air allows the entire facility to get scanned nightly, not just one room. Our Overseer drone will do exactly this, and run our own software on a Raspberry Pi.
  • The full system. A transportable dock that houses the Overseer and Scout and swaps their batteries automatically, so inspections run every night with no one on site.
  • A facility that learns. Every confirmation and false alarm trains Noxen on that facility, building an inspection history that survives team turnover and shows operators where their weak points are.
  • Paid pilots. We have had customer calls with construction company directors and are working toward a paid pilot of the full system this fall. We start with construction sites, where Noxen can flag work that doesn't match the spec, then move to facilities and data centers, sold as a per-system monthly subscription.

Built With

Share this project:

Updates

Submission history