Altair — Autonomous Indoor Mapping Drone
One-line brief: a quadcopter that maps a building with a laser, works out where it needs to fly, then photographs every surface — entirely on its own, GPS denied, indoors.
First hover and first controlled landing: done (Oct 2025, on video). Position hold indoors: proven to ~3 cm. Now tuning.
What’s on it
| System | Hardware |
|---|---|
| Frame | Tarot X550-class quad, 550 mm diagonal, sacrificial motor mounts (break-away by design — proven in two crashes, zero damage beyond props) |
| Motors | 4× Sunnysky X3108S 900 kV, AfroESC 30 A, 11″ props, 4S LiPo |
| Flight controller | Pixhawk 6C Mini, custom-built PX4 1.17 (patched firmware: dual rangefinder support) |
| Positioning | RPLIDAR A1M8 (360° laser) + SLAM (Cartographer) — no GPS used or needed indoors; 2× TFmini-S laser rangefinders (floor + forward) feed altitude and subject-distance |
| Computer | Raspberry Pi 4 running ROS 2 — the whole autonomy stack in the air |
| Camera | Arducam IMX477 (12 MP) on a fixed forward mount, co-aligned with the forward laser |
| Ground control | Custom console on a field laptop: live map, mission control, link selection (433 MHz long-range serial for flight, high-bandwidth 2.4 GHz link for tuning) |
How it’s controlled
- Human: standard RC transmitter. Stabilized and Altitude modes for flying, Position mode for hands-off hold (the SLAM position estimate flies it). A hardware kill switch and a 1.5 m ceiling enforced by the flight controller itself — in every mode.
- Autonomous: waypoints on the SLAM map through Nav2. The aircraft holds position, flies station-to-station, lands itself.
- Safety philosophy: every failsafe is tested over the air before it flies — a receiver that “holds last command” on signal loss is banned (that crashed the previous drone); defined safe values or nothing.
How the photo dataset happens
- Map first. Fly the building interior; the laser SLAM builds a 2D floor map in real time — walls, doorways, rooms — accurate to centimetres.
- Plan on the map. Software converts the map into a capture flight: three height tiers, diagonal “raked” lanes (never straight at a wall — oblique angles are what photogrammetry needs), corner and doorway stations, loop closure.
- Capture. The drone flies the plan at ≤1.2 m/s: 2 frames/sec on the move, dwell bursts at each station. Every frame is tagged with the aircraft’s exact position from the SLAM — the dataset is self-locating.
- Strict data law: camera images carry no focal-length metadata (it poisons the 3D reconstruction — measured lesson); true camera geometry lives in a per-session file instead. Frame count must equal position-row count, enforced at write time.
- Multi-sortie: buildings bigger than one battery = land, swap, resume from the exact station where it stopped, map and plan intact.
- The images + positions feed an existing photogrammetry pipeline that turns them into a full 3D model of the building.
Where it stands
Flying, holding position, landing under control. Currently: control tuning (autotune), then the first full capture missions — target environment: buildings up to 66 m × 25 m, multi-floor, GPS-denied.
On video: first hover · first controlled landing
Build log
Entries will follow as the build progresses — modifications, bench tests, and the first capture missions.