Work Autonomous systems
Operation Sentinel
An autonomy stack that flies a PX4 aircraft through a mission, stops for what is really there, and answers to an operator. Built and proven in simulation.
Prototype PX4/Gazebo software-in-the-loop · no physical flight
The corrected stack flies the mission it once froze on
A follow camera in Gazebo tracks the x500 as our autonomy stack flies Run 2's sealed mission: a 25 m box at 10 m, between buildings, walls and poles. Recorded on 31 October 2026 from the corrected code, in real PX4 software-in-the-loop. Simulation, not flight evidence.
- 0:01Takeoff and climb to cruise
- 0:07Turn at the first waypoint
- 0:15Passes the exact spot where the original code held the aircraft still for 8.8 minutes, within 0.15 m
- 0:22Turn at the second waypoint, about 9.5 m from the wall
- 0:29Back over home, and touchdown
Three spans of one recording, joined by short dissolves; nothing else added. 100.4 m flown.
Four parts are ours. The aircraft, the autopilot and the world are not.
Autonomy bridge
Turns a mission into offboard velocity commands over MAVSDK, and refuses to navigate until PX4 has actually accepted offboard control.
Mission logic
Waypoints, an A* grid and an avoidance field built from the world's real geometry, with a hard stop at the lidar.
Telemetry pipeline
Position, attitude, commands, the full 72-ray scan, battery and mission state, about five times a second, sealed with the run.
Operator console
Dispatches the mission, shows it live, and reports its link to the backend as measured rather than assumed.
Upstream, and credited: PX4 Autopilot flies the aircraft, Gazebo simulates the world, and MAVSDK carries the commands.
One mission, end to end
- IdeaFly a mission with no cloud dependency in flight, and eventually without GPS.
- ObserveA 72-ray lidar scan and the PX4 estimator.
- Model180 obstacles read from the world file the run flew in.
- EngineerWaypoints become offboard velocity commands, steered by the grid and the avoidance field.
- ProtectA lidar hard stop, a heading guard, and an abort if offboard control cannot be engaged.
- Human reviewAn operator dispatches the mission and watches it run.
- ActPX4 flies the x500 in Gazebo.
- ProveThe run is sealed: a manifest with a SHA-256 for every file, the mission, the bridge log, the telemetry and the world.
7 sealed runs. The first two failed.
Every run flew the console's training mission: a 25 m box at 10 m. Two timed out after 631 s. After two fixes, 5 of 5 completed, in 126–216 s. Each run number opens its sealed record on GitHub.
| Run | Flown | Bridge code | Outcome | Duration |
|---|---|---|---|---|
| 1 | 28 Sep, 19:47 | 906a465 original bridge | Timed out | 631 s |
| 2 | 28 Sep, 20:37 | 6a40f0f offboard fix | Timed out | 631 s |
| 3 | 28 Sep, 20:59 | bcf9e52 geometry fix | Completed | 126 s |
| 4 | 29 Sep, 08:20 | 3ba2677 stack on plain Linux | Completed | 126 s |
| 5 | 29 Sep, 08:40 | 3ba2677 stack on plain Linux | Completed | 216 s |
| 6 | 30 Sep, 07:17 | 3ba2677 stack on plain Linux | Completed | 126 s |
| 7 | 30 Sep, 07:42 | 3ba2677 stack on plain Linux | Completed | 126 s |
The drone stopped for a wall that was not there.
Run 1 never left its hover. The bridge asked PX4 for offboard control in a gap between setpoints, PX4 refused, and the bridge carried on as if it were navigating. It now sends a setpoint before every request, retries, and aborts the mission if control cannot be engaged.
Run 2 flew the north leg, turned east, and stopped 1.6 m from an obstacle. It held there for 8.8 minutes.
The simulated lidar modelled every box as a disc half as wide as its longest side. Wall_1, 1 m thick and 38 m long, became a 19 m disc reaching into the flight path. The real wall was 20.7 m away, beyond the sensor's range.
The fix intersects each ray with each obstacle in that obstacle's own frame, rotation included. It agreed with brute-force ray marching on 3,000 random shapes before it flew. Every run since has completed.
Before the missions: 87 perception runs
GPS-denied flight is configured, not yet shown.
The estimator carries the parameters for flying without satellites. The sealed runs fly with simulated GPS and a compass. Flying the same mission with GPS fusion off is the next proof, not a result.
EKF2_GPS_CTRLGPS fusion disabledEKF2_AID_MASKoptical-flow aidingEKF2_HGT_MODErange sensor for height
What this page does not show
- Any physical aircraft. None has been flown.
- A field test, a range or an endurance figure.
- More than one aircraft at a time.
- Height in the lidar model: the scan is flat.
- Flight evidence in the film's opening or its layered space; both are explanatory renderings, and its operator surface is a recorded replay.
Sources and credits
Source and every sealed run:
github.com/lesnargitonga/LesnarAI.
Airframe model: PX4 Gazebo x500_base, BSD 3-Clause, Copyright © 2022 Rudis
Laboratories, author Benjamin Perseghetti, derived from the NXP HoverGames development kit.
PX4, Gazebo and MAVSDK are the work of their own maintainers.
Building autonomy, simulation or telemetry?
We can start from your mission, your aircraft model or your logs.
Start a conversation All work