Fly the mission
Fly the mission
The Fly tab is the live ops dashboard. Click Run mission, watch every subsystem come online, monitor the camera feed and live telemetry, then save a recording when you're done. Stop, reboot, and shutdown buttons live in the same row.
Pre-flight checklist
Before clicking Run mission, confirm:
The drone is connected (SSH dot green in the footer).
You've pushed your latest mission via the Plan tab.
All hardware checks have passed.
The drone is physically positioned at or near your mission start point.
The flight controller is armed and in the correct mode for autonomous flight.
The action row
The top of the Fly tab has three primary buttons:
Run mission
Click Run mission. The button enters a brief "Starting…" state while the backend sends the run_pfa command to the drone. Within a couple of seconds, you'll see:
The button flips to red Stop mission.
The footer status bar shows "mission running".
The Subsystems tile grid starts turning green as pfa-edge processes spawn one by one.
Full startup takes 20–30 seconds. The mission begins flying autonomously once every required subsystem is up.
The subsystems grid
The right column shows a 9-tile grid for every on-drone subsystem. Each tile shows a status pill, the subsystem name, and a detail line.
The map
The center column is a live satellite map showing the drone's position over time. Three layers:
GPS path — raw GPS positions from the flight controller, plotted as a thin line.
Box-derived path — the EKF-fused position, plotted as a thicker, brighter line. This is the position the drone "thinks" it's at, after the EKF has fused GPS, IMU, VO, and VPS.
Drone marker — current position. A glowing teal dot.
Click the Locate me button (top-right of the map) to center the map on your laptop's GPS position. Click the Cache badge to switch between cached tile regions and live Esri tiles.
The camera feed
The middle column has a Camera Feed card showing the latest frame from the drone, refreshed at ~5 Hz. Detector bounding boxes are drawn on top of the frame — every detection the on-drone model produces appears as a labeled box in real time.
The telemetry strip
Below the camera feed is a six-cell telemetry strip:
The event timeline
Below the subsystem grid is the Event Timeline — a tail of the drone's structured log, filtered to high-signal lines. Three tag colors:
sys — subsystem state changes (e.g. EKF seeded, EKF waiting for GPS fix).
det — detection events (lat/lon of each detected target).
err — errors (uncommon, but worth watching for).
Click Last 5 / Last 20 / Clear to control how many entries are shown. Auto-scrolls as new events arrive.
Stop mission
Click Stop mission. The backend sends Ctrl-C to the drone-side run_pfa. If the process doesn't exit cleanly within ~1 second, a pkill fallback is issued.
When the stop completes:
The button reverts to Run mission.
Every subsystem tile flips back to idle.
The local recording is frozen and the Save mission button becomes prominent.
Save mission
After Stop, the recording is held in memory. To persist it for later review, click Save mission in the top action row.
The save writes the recording (GPS path, fused-segment overlay) and every detection image to the local missions/ directory under a timestamped ID like mission_20260504_143152. Detection images are stored as JPEG sidecars (not inline base64) so the resulting JSON is small.
Once saved, the button changes to "Open in Review" — clicking switches you to the Review tab with that mission selected.
Shutdown and reboot
Both buttons in the action row are two-click confirm. The first click "arms" the button (it turns warning-colored). A second click within 4 seconds fires the action.
Reboot sends a reboot command to the Jetson. The SSH session drops as the OS restarts. The drone comes back up after ~60 seconds; reconnect via the Drone Connection card.
Shutdown powers off the Jetson. The drone won't come back without manual re-power. Use after every mission day or when packing up.
What happens if Wi-Fi drops
If the laptop loses connectivity to the drone mid-flight:
The drone keeps flying. run_pfa doesn't depend on Copilot for anything during a mission.
The Copilot app shows a red banner: "Drone connection lost. Reconnect via the conn chip…" and freezes the live cards.
The footer SSH dot turns grey.
When connectivity returns, click Connect on the Drone Connection card again. The backend opens a fresh SSH session, detects any orphan run_pfa processes, and kills them automatically so the next Run starts clean.