In my day job I do hands-on hardware and flight-software development on a sub-scale quad-rotor testbed for an eVTOL research effort — architected so the components, sensors and autonomy software transfer up to a full-scale aircraft. I select the avionics, wire the hardware, author the firmware configuration, and write the autonomy software that runs on top of it.
The flight stack pairs a Pixhawk-class autopilot with an NVIDIA Jetson Orin companion computer over MAVLink, with an external compass, downward lidar, downward optical flow and a forward camera. The Jetson doubles as a full on-aircraft development environment — the toolchain and AI-assisted development run directly on the companion computer.
The flagship feature is a layered avoidance architecture — a velocity-governed "safety pillow" so the vehicle can't be flown into an obstacle at any speed. Each layer stands on its own, and the higher-level logic lives on the companion computer so the autopilot remains an unmodified, certified-style safety core.
Obstacle sensors wired directly into the autopilot, driving its native proximity / avoidance subsystem. Deterministic, and functional even if the companion computer drops offline.
A depth-camera computer-vision pipeline builds a local 3D obstacle map on the Jetson and streams it to the autopilot as standard MAVLink obstacle messages at real-time rates.
A braking envelope grounded in stopping-distance physics shapes velocity setpoints so the aircraft always has room to stop — logging every intervention for post-flight review.
I performed the sensor-suite gap analysis against the braking-envelope math and specified the hardware to close it — 360° scanning lidar, a forward depth camera and an upward rangefinder — after running trade studies on flight controllers and firmware stacks (ArduPilot vs PX4) with transferability to the full-scale build as the deciding criterion.
The autopilot below finds its own way to the landing pad —
no pre-planned path, just goal-seeking guidance steering around the obstacles in its way — while the
velocity governor clamps speed with v_max = √(2·a·(d−margin)) against the nearest
hazard and the remaining distance to the pad. Every flight the field is re-randomized, and it plots a new
route. Same physics as Layer 3 on the real aircraft.
I'm always happy to talk autonomy, avionics and the ML that powers them.
This page describes generic architecture and commodity hardware only — program specifics stay private.