Validated hardware stack, designed for agronomy missions.
Every component on AgroExplorer One is field-chosen for reliability and integration depth. The Holybro X650 airframe carries a Jetson Orin NX 16 GB companion computer running AEOS alongside OAK-D Pro vision, Unicore UM982 RTK GPS, dual TFMini Plus LiDARs, and a three-path communication system with a Tailscale WireGuard overlay.
| Airframe | Holybro X650 · 650 mm |
| Battery | 6S 16 Ah LiPo |
| Flight time | 25–35 min |
| All-up weight | 4.5 kg |
| Max payload | 2.5 kg |
| Motors | 4× MN4014 KV330 · 15" |
| Flight controller | Pixhawk 6X · ArduCopter V4.7 |
| Compute | Jetson Orin NX 16 GB · 100 TOPS |
| RTK GPS accuracy | 1–2 cm |
| Camera | OAK-D Pro · 72° HFOV · 4K RGB |
| Onboard storage | 501 GB NVMe |
| Comm links | WiFi · 4G · LoRa |
AgroExplorer One — All Angles
Custom 3D-designed airframe with guarded rotor pods, aerodynamic central body, and integrated sensor bay for OAK-D Pro, GPS mast, and compute enclosure.
Airframe & Flight Control
ArduCopter V4.7 on Pixhawk 6X runs the inner control loops; AEOS on the Jetson sends high-level MAVLink setpoints via MAVProxy.
| Role | Component | Interface / Notes |
|---|---|---|
| Airframe | Holybro X650 quad | 650 mm wheelbase · 6S 16 Ah LiPo |
| Flight Controller | Pixhawk 6X (Holybro baseboard) | ArduCopter V4.7 · UART /dev/ttyTHS0 @ 921600 baud |
| Propulsion | 4× MN4014 KV330 motors | 15" props · PWM via FC |
| Optical Flow | HereFlow | CAN bus · EKF input · GPS-denied position assist |
Companion Compute
The NVIDIA Jetson Orin NX 16 GB runs the entire AEOS stack: behavior-tree engine, OAK-D perception pipeline, MQTT uplink, link manager, and Athena AI assistant — all as systemd services on L4T.
| Subsystem | Detail |
|---|---|
| OS | L4T R35.4.1 (JetPack 5.x) on NVMe SSD |
| AEOS Engine | Python behavior-tree (py_trees) · ~189 blackboard keys |
| Navigator | 25 Hz · MAVLink setpoints · A-Star voxel path planning |
| Perception | OAK-D child process (spawn) · 60 s watchdog + USB-VPU recovery |
| MQTT Uplink | Adaptive QoS by link state · HMAC-signed telemetry frames |
| Link Manager | WiFi ↔ 4G failover · 5 s probe · 15 s hysteresis |
| LoRa Bridge | Heltec CP210x auto-detected · heal-command receiver |
| depthai | v3.1.0 · forced USB 2.0 (Tegra xHCI workaround) |
Positioning & Sensing
Multi-layer positioning: RTK GPS at 1 cm accuracy (NTRIP-corrected via free government networks) fused with HereFlow optical flow and downward LiDAR for GPS-denied resilience.
Unicore UM982
Dual-antenna RTK receiver on UART GPS1 at 230 400 baud. NTRIP client injects ReNEP (Portugal) RTCM corrections for 1 cm fixed-solution accuracy — no base station required. Free EU NTRIP networks (ERGNSS, RGP, 06-GPS) extend the same precision across member states. RTK status (none → float → fixed) telemetered live.
2× TFMini Plus
Forward: 0.15–12 m at 10 Hz on TELEM1 — obstacle ranging, cross-validation against OAK-D depth, discrepancy > 2 m flags sensor fault.
Downward: 0.1–12 m at 10 Hz on TELEM3 — terrain AGL, ground-plane voxel marking, altitude safety.
OAK-D Pro + HereFlow
OAK-D Pro delivers RGB 4K + stereo depth (72° HFOV, 0.3–10 m) + YOLOv6-nano on the Movidius Myriad X. HereFlow on CAN feeds optical flow velocity to the Pixhawk EKF for GPS-denied hover stability.
Live Telemetry Visibility
The ground station streams a complete picture of drone state over MQTT: GPS fix quality, EKF health, sensor readings, vibration, CPU load, and comms drop rate — all in real time. Shown below from an active 4G session at 47.8 m AGL with 3D RTK fix on 13 satellites.
Communications Stack
Three independent radio paths plus a WireGuard VPN overlay so the ground station always sees the drone at a single fixed IP, regardless of which physical link is active.
Realtek RTL8822CE · M.2 PCIe · powersave forced off
Probe interval 5 s · 3 failures (15 s) before failover · 2 successes (10 s) to restoreD-Link DWM-222W · CDC-Ether on eth0 · 192.168.125.100
Marvell 1286:4e31 · auto data-path verified at boot · USB-hub reset escalationHeltec V3 SX1262 · CP210x USB serial · 115 200 baud
Position beacons · heal commands: restart_tailscaled, switch_route, reset_modem, reboot_jetson
| Topic | Rate | Content |
|---|---|---|
| aeos/<id>/telemetry | 5–10 Hz | Position, attitude, battery, mode (HMAC-signed) |
| aeos/<id>/snapshots | adaptive | JPEG frame · camera_id · timestamp |
| aeos/<id>/depth_map | ~5 Hz | Compressed depth tile from OAK-D |
| aeos/<id>/detections | event | YOLO results with 3D world positions |
| aeos/<id>/mission_state | on change | Executor state + waypoint progress |
| aeos/<id>/links | 1 Hz | Composite link score + per-interface status |
| aeos/<id>/lora_status | 1 Hz | LoRa-only state (retained) |
| aeos/<id>/presence | LWT | online: true/false on connect/disconnect |
Drone Process Architecture
AEOS runs as a set of supervised systemd services on the Jetson. Each service has a defined role and lifecycle; the engine depends on MAVProxy being healthy before it starts.
| Service | Type | Purpose |
|---|---|---|
| mavproxy.service | Long-running | Bridges /dev/ttyTHS0 to UDP 14551 / TCP 5760 |
| aeos-engine.service | Long-running | Main engine: behavior-tree + all subsystems |
| aeos-link-manager.service | Long-running | Probes WiFi/4G, manages default route, heals Tailscale |
| aeos-cellular.service | Long-running | Polls modem web UI, publishes cellular_status to MQTT |
| aeos-links.service | Long-running | Composite link-score publisher (1 Hz) |
| aeos-dongle-reset.service | One-shot | Verifies modem data path; escalates to parent-hub reset on failure |
| aeos-usb-hub-power.service | One-shot | Writes 'on' to usb2/2-1 power/control (Tegra xHCI workaround) |
| tailscaled | Long-running | WireGuard tunnel to Headscale controller |
Edge computing: every decision happens onboard.
AEOS splits work into two concurrent loops running on the Jetson Orin NX. The fast loop never waits for AI — safety and navigation are always running at full speed.
Fast Loop — 20–30 Hz · Navigation & Safety
Stereo depth + rangefinders + GPS/IMU/optical flow → obstacle grid → path adjustment → MAVLink setpoints to Pixhawk. Pure geometry — no ML involved. If the slow loop lags, the drone still avoids obstacles.
Slow Loop — 2–5 Hz · Intelligence & Awareness
RGB frames → neural inference (TensorRT/Myriad X) → scene classification → mission commands (advisory). ML runs here. If it misses a frame, the mission continues — it never blocks the flight control loop.
Failsafe Watchdog — independent
Monitors battery, GPS health, geofence, and heartbeat continuously. Overrides all other loops. Triggers return-to-launch or emergency stop if any critical condition is met — regardless of what AEOS is doing.
Ground infrastructure that turns flight data into intelligence.
Three dedicated servers handle coordination, heavy post-processing, and AI — so the drone stays lean and the analysis never compromises flight performance.
HPE ProLiant DL380 Gen10
2× Xeon Gold 6138 · 64 GB RAM · API server, MQTT broker (mTLS port 8883), database, web portal, and Headscale WireGuard controller. Entry point for all external connections from the drone and operators.
Dell PowerEdge R640
2× Xeon Gold 6138 · 128 GB RAM · 7.2 TB HDD RAID. Runs OpenDroneMap for orthomosaic generation, PPK post-processing, NDVI computation, 3D mesh reconstruction, and MinIO bulk data storage.
GPU Server
32 GB VRAM · ROCm. Hosts Athena AI assistant (Qwen2.5-7B + Whisper + Piper TTS), crop analysis inference, object segmentation, and ML model training. Runs alongside flight operations without competing for drone resources.
Multispectral sensing at a fraction of the cost.
AEOS uses a phased sensor strategy — each phase adds a band and unlocks new agricultural indices, with the current phase already delivering RGB orthomosaics, 3D canopy structure, and real-time AI.
| Phase | Sensor Addition | What It Unlocks | Status |
|---|---|---|---|
| Phase 1 | ELP 16MP RGB (down) + OAK-D Pro | RGB orthomosaic · visible disease · plant counting · 3D canopy structure · real-time AI detections | Active |
| Phase 2 | ELP 16MP NIR (modified, 850nm longpass) | NDVI · GNDVI · SAVI · early disease detection · irrigation mapping | In progress |
| Phase 3 | Reflectance calibration panel | Calibrated NDVI comparable across flights, dates, and lighting conditions · variable-rate prescriptions | Planned |
| Phase 4 | ELP 16MP Red Edge (720nm bandpass) | NDRE index · precise chlorophyll estimation · early nutrient deficiency mapping | Planned |
| Phase 5 | Thermal camera (FLIR Lepton 3.5) | Canopy temperature · accurate hydric stress · transpiration analysis · night operations | Future |
| System | Cost | Bands | NDVI | 3D Structure | Real-time AI |
|---|---|---|---|---|---|
| AEOS Phase 1+2 | ~€110 | R, G, B, NIR | Yes | Yes (OAK-D) | Yes (Myriad X) |
| MAPIR Survey3W RGN | ~€400 | R, G, NIR | Yes | No | No |
| DJI Mavic 3 Multispectral | ~€4,500 | R, G, RE, NIR | Yes | No | No |
| MicaSense RedEdge-P | ~€8,000 | B, G, R, RE, NIR | Yes (radiometric) | No | No |
Device & Service Inventory
The ground station's Test Harness panel gives a live view of every hardware device and system service on the drone. Toggle individual peripherals, inspect service health, control the Jetson NVP power model, and run automated test suites — without SSHing into the vehicle.