project // claudeDronestage // pre-prototypestack // ros2 · gazebo · esp32

No GPS.
Just a 3D map,
built mid-flight.

An autonomous mapping drone for GPS-denied environments — warehouses, tunnels, collapsed structures, anywhere a satellite signal can't reach. Built on ROS2, ArduPilot SITL, and a layered ToF sensor rig.

// signal_topology.pngClaudeDrone signal visualization
lat 38.5982 N · lon 8.7891 W
carrasqueira / pt
§ 01about01 / 08

A flying scanner for places GPS can't see.

claudeDrone is an autonomous quadrotor that builds a multi-layer 3D map of its surroundings in real time, without relying on satellite positioning. Our target environments are the ones GPS gives up on — warehouse interiors, parking decks, mines, and post-disaster structures where every other navigation system fails first.

The platform combines a layered TF-Luna ToF sensor array, an ESP32 sensor bridge, and a ROS2 / Gazebo simulation pipeline running against ArduPilot SITL. The "Stop-Scan" behavior lets the drone hold position, rotate, and integrate a clean point cloud before continuing along the path.

Long-term: the same SLAM techniques developed for space rover navigation, ported back into industrial inspection and search-and-rescue work on Earth.

↻ click to advance

project codenameclaudeDrone
parent orgAeroSearch Solutions
primary domainGPS-denied SLAM
target trl04 → 06
simulationoperational
hardwarein assembly
based insetúbal · pt
licenseMIT (planned)
dev infrastructureclaude_team · ai-assisted
§ 02tech stack

The components that make it fly.

Open-source, simulation-first, hardware-honest. Everything below either runs today in our Gazebo bench or sits on the workbench waiting for a solder iron.

middleware
ROS 2 Jazzy
Node graph, message passing between flight controller, sensor bridge, and SLAM stack.
simulation
Gazebo Harmonic
Custom indoor world, sensor plugins, ROS2 ↔ Gazebo bridge for sim-to-real continuity.
flight stack
ArduPilot SITL
Software-in-the-loop autopilot, MAVLink command channel, mission planner integration.
sensor mcu + range sensors
ESP32-S3+TF-Luna×2+ToF×6
Reads the ToF array, timestamps frames, streams structured packets to the companion computer.
Layered time-of-flight modules sweeping at offset angles to build a 3D occupancy grid.
behavior
Stop-Scan loop
Hover-and-rotate primitive that captures a clean point cloud before continuing the path.
software control
AI model
PPO policy trained on the greatest hits of coverage-planning research — picks the next vantage point while the drone is still mid-sweep.
§ 03architecture

System topology — ESP32 at the center of the bus.

Real-time MCU brokers every sensor and actuator. Companion compute (Pi Zero 2W) is a thin WiFi bridge — flight-critical loops never leave the ESP32. The flight controller runs ArduCopter and stays low-level; mission logic sits one tier up.

ClaudeDrone system architecture: ESP32 MCU as the bus hub, with TF-Luna lidars on UART, VL53L0X array via I²C mux, PCA9685 PWM driver, optical flow over SPI, and a flight controller over SBUS.
// schema v1source: obsidian / drone_schema.md
  • mcuESP32-S3real-time bus hub
  • lidar2× TF-Lunascanning + altimeter, UART
  • tof_array6× VL53L0X360° proximity, I²C mux
  • flowPMW3901optical flow, SPI
  • pwmPCA9685 + SG90lidar tilt servo
  • fcMicoAir 405 Mini Ardupilotlow-level stabilization, SBUS
  • bridgeRPi Zero 2WWiFi telemetry bridge — provisional for the testbench, beefier hardware on the way
§ 04roadmap

ClaudeDrone Roadmap (track view)

A hand-curated snapshot of what we're shipping this release. Vault holds the originals (obsidian-files/planning/roadmap-tracks.md); the landing version is reviewed before each release and lives in content/roadmap.json.

27// shipped
6// active
29// queued
6// blocked
40% complete·release may 11, 2026·src: obsidian-files/planning/roadmap-tracks.md
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Jan '27
today
trackSimulation3/9
ROS2 launch end-to-end
ArduPilot SITL bring-up + Cartographer/Nav2 integration★
Sensor fusion (IMU + sweep + depth)★
Indoor autonomous demo → 3-layer map★
// last shippedROS2 launch end-to-end (3 terminals or launch.sh)apr 01, 2026
trackHardware14/22
13 components acquired★
Drone assembly★
Bench-rig bring-up
First tethered hover★
First untethered indoor flight★
// last shipped13 components acquired (on the shelf, not yet built)apr 01, 2026
trackFirmware1/18 +3 more
Firmware repo bootstrap
Phase 4 — Hardware watchdog + failsafe
Phase 5 — Sim integration★
// last shippedBootstrap claudedrone-firmware repo (PlatformIO + structure)may 10, 2026
trackIntegration1/6 +4 blocked
ROS2 launch sim end-to-end
Hardware-in-the-loop (sim ← UDP from firmware)★
// last shippedROS2 launch sim end-to-end (single sim-stack)may 06, 2026
trackRL8/13 +5 more
PPO_DR_CNN baseline
ROTATE-ONLY-AUG — branch closed
RL line wrapped → V3 pivot★
Sprint A.1 · GT flight★
Real-hardware deploy (RL on Pi Zero 2W or ground server)★
// last shippedROTATE-ONLY-AUG — branch closed (augmentation symmetry matters)may 10, 2026
§ 06video

Watch the simulation fly.

A walkthrough of the Gazebo world, the Stop-Scan behavior, and what the sensor stream actually looks like.

// sim_walkthrough.mp4 · 01:14
// channel: self-hosted// 1080p · 30fps · h264// recorded: 2026-04-26
§ 07documentation

What it's made of, what it runs on.

Open documentation: the bill of materials for the prototype airframe and the development environment we run simulations on. Everything below is the real working setup.

Open documentation ↗
// bill_of_materialsbom.v0.1.csv · 11 items ↗
qtypartdescriptionstatus
1F450 frameQuadrotor airframe, glass-fiber arms, 450 mm wheelbase.on bench
1MicoAir 405 MiniFlight controller running ArduPilot Copter 4.5. Bluejay-compatible 4-in-1 ESC pad, DShot bidir.on bench
1Raspberry Pi 5 (8 GB)Companion compute for ROS2 nodes and SLAM stack.on bench
1ESP32-S3 DevKitSensor MCU, reads ToF array, streams over UART.on bench
4TF-Luna ToFTime-of-flight modules, 8 m range, layered at offset angles.on bench
4EMAX MT2213 motors935 kV brushless, with 30A SimonK ESCs.on bench
2LiPo 4S 5200 mAhFlight pack, ~12 min hover endurance.on bench
1RFD900x telemetry915 MHz long-range MAVLink link.ordered
1Holybro Sik V3Backup short-range telemetry, bench debugging.on bench
1USB-C power moduleBench supply for ESP32 / sensor calibration rig.on bench
1Custom sensor PCBIn design — KiCad project, breaks out 4× TF-Luna + IMU.in design
// dev_environmentenv.workstation.toml ↗
  • // machine-1 · laptop (orchestration)
  • osLubuntu 24.04 LTS · LXQt
  • cpuAMD Ryzen 5 3500U · 4c / 8t
  • ram17 GB
  • gpuAMD Radeon Vega · integrated
  • ip192.168.0.168
  • // machine-2 · desktop (simulation)
  • osKubuntu 24.04 LTS · KDE Plasma 5.27
  • cpuIntel Core i7-12700F · 12c / 20t
  • ram32 GB · 2×16 DDR5
  • gpuNVIDIA RTX 5070 · 12 GB GDDR7
  • ip192.168.0.231
  • // simulation stack
  • ros2Jazzy Jalisco
  • gazeboHarmonic 8.x
  • bridgeros_gz_bridge
  • autopilotArduPilot SITL 4.5 · MAVLink 2.0
  • slamCartographer 2D · RTAB-Map planned
  • // toolchain
  • langC++17 · Python 3.12 / 3.10 (rl-lab venv)
  • buildcolcon · ament_cmake
  • ideVS Code · PlatformIO
  • aiclaude_team · multi-agent dev infrastructure
// simulation stackros2 · gazebo · sitl ↗

ROS 2 Jazzy · Gazebo Harmonic · ArduPilot SITL — versions and bring-up notes.

// toolchainbuild · flash · deploy ↗

Build, flash, deploy: pnpm · colcon · PlatformIO · esptool · ros_gz_bridge.

§ 08costs  ·  honest ledger

Self-funded. Every euro is logged here.

One-time spend

itemcost
Workstation · RTX-class GPU PC // Kubuntu 24.04 sim rig€2000
RAM upgrade · 16 GB DDR5 €170
Soldering iron + tips // symbolic — bench tooling€50
Multimeter // symbolic€25
total€2514.38

Recurring (subscriptions)

itemsincerate€/molifetime
Claude · Pro subscription // agent runtime2026-03€100/mo€100€820
Home internet 2026-04€30/mo€30€210
Cloud server · VPS // landing + docs hosting2026-05€5/mo€5€30
Domain · .solutions 2025-04€24/yr€2€38
monthly burn (2026-10)€137€1098
one-time
€2514.38
monthly burn
€137
recurring · lifetime
€1098
total to date
€3612
§ 09activity  ·  agent hours / day

Hours-per-day for every agent in the claude_team.exe fleet. Aggregated from _workspace/timetracking.md markers; Aleks injected at 8h weekday / 10h weekend.

Jun 2026
$ claude_team --activity --month=2026-06   // hover to isolate one agent · check 2+ to overlay their sum
0h4.6h9.3h13.9h18.5h1714212830
7 agents · 30 days · 266.3h loggedpeak 16.0h / agent / day
§ 10team  ·  claude_team.exe
claude_team.exe · network8 nodes · 15 links
orchestrator$orchestrator> queue: 4 jobs> tick: 1.2s avg> uptime 10dsimulation-ros$simulation-ros> gz harmonic up> sitl: 5760 ok> uptime 16dresearch-innovator$research-innovator> arxiv +12 today> pr #41 drafted> uptime 28drl-trainer$rl-trainer> ep 4214 r=2.81> ckpt saved> uptime 4dlanding$landing> build #128 ok> lh: 98 / 100> uptime 25dseo-doc$seo-doc> indexing /docs> 17 cats · 2 pubs> uptime 25dobsidian-librarian$obsidian-librarian> vault: 942 notes> digest sent> uptime 28ddemand-research$demand-research> scrape · paused> pilots: 3 leads> uptime 19d

A staff of eight, running on one workstation.

claude_team.exe is the orchestrator script that boots all eight agents. Each one operates independently — they read shared state from Obsidian, write back dev-logs, and never block on each other. Total wage bill: one Claude subscription.

  • Always-on. Agents pick up work the moment a queue has items.
  • Audit trail. Every action lands in Obsidian as a dated note.
  • Composable. Add a new agent → drop a script + a folder.
  • Honest. If an agent fails, it logs the failure verbatim.
[ O ]
orchestratorrunning

Coordinator. Dispatches tasks to every other agent, watches their queues, retries failures.

[ SR ]
simulation-rosrunning

Boots Gazebo + ArduPilot SITL, runs scenarios, captures point clouds, archives runs.

[ RI ]
research-innovatorrunning

Crawls arXiv + GitHub, picks the most relevant papers, drafts optimal-solution code skeletons.

[ RT ]
rl-trainerrunning

Math agent. Defines reward functions, runs training loops on the RTX rig, ranks model checkpoints.

[ L ]
landingrunning

Maintains this site. Pulls content from Obsidian, regenerates roadmap.json, ships builds.

[ SD ]
seo-docrunning

Writes documentation, structures pages, optimizes titles + descriptions for search.

[ OL ]
obsidian-librarianrunning

Curates the Obsidian vault. Files dev-logs, tags notes, generates the weekly digest fed to seo-doc.

[ DR ]
demand-researchidle

Customer discovery. Scrapes job posts, maps potential pilots in warehouse / inspection verticals.

§ 11contact  ·  support
inbox · 1 newport 25 / open
 ┌─────────────────────────────┐
 ┝──── you've got mail ───────▮
 └─────────────────────────────┘
$ reply
support · self-fundedtx / inbound
 ╭──── support_the_build.sh ───╮
 │ components · sim · bench    │
 ╰─────────────────────────────╯