Scroll to top
||||||||||||||||||||||||||| |||||||||||||||||||||||||||
AI & Communication

The Search State Machine

7 April 2026

With a trustworthy link and a detector that looks at the ground eight times a second, this milestone was the brain that sits on top: the logic that plans the search, decides when a detection is real, and works out where on Earth the object is. The search area arrives as four surveyed GPS corners, and the planner covers it with a lawnmower (boustrophedon) sweep — swath width from the camera's field of view at 150 feet, adjacent lanes overlapped by 30% — uploaded as an ordinary ArduPilot AUTO mission that ends in an RTL item, so even if the companion computer dies mid-sweep the mission itself lands safely.

The tuning decision that mattered most was yaw. By default ArduCopter turns the nose into each new lane, which bleeds ground speed at every turn and swings the camera through 180° twice per lane pair. We set WP_YAW_BEHAVIOR=0 so the copter holds a fixed heading and translates on roll and pitch instead — lane turns become pure reversals, the sweep keeps its 8 m/s speed, and every detection's pixel-to-ground math sees a near-constant orientation. We watched the heading trace stay flat through six lane turns in simulation before trusting it on the airframe.

A single YOLO hit is an opinion, not a fact — sun glint or one aliased frame can produce a confident false positive, and chasing a phantom target burns minutes of the mission window. So SEARCH feeds every frame's result, hits and misses alike, into a debouncer that needs 3 hits within the last 5 frames (at ≥ 0.5 confidence) before declaring the object confirmed — under a second at our detection rate, while a lone spurious hit dies quietly. In parallel, each detection is georeferenced: the pixel becomes a ray, the ray is rotated by the aircraft's attitude at the frame's timestamp, and its intersection with the ground gives a latitude/longitude sample. The one number that makes this work is time — the camera and the pose buffer share one monotonic clock, because 100 ms of mismatch drags every sample 0.8 m along-track, a bias no amount of averaging can remove.

Figures & Diagrams

Quick Links

Contact Us

Sunday – Thursday 9:00 AM – 5:00 PM
Aerospace Engineering Laboratory (AE Lab), Building 75, First Floor, KFUPM
ascentkfupm@gmail.com

About KFUPM ASCENT

KFUPM ASCENT is the official Unmanned Aircraft Systems team of King Fahd University of Petroleum & Minerals, representing the university in the SUAS competition through autonomous aerial systems, computer vision, and advanced aerospace engineering.