LiDAR mapping a rail siding with a sub-250g drone
What a featherweight platform can — and cannot — resolve, with honest notes on where the point cloud fell apart.
Sub-250g drones dodge most of the regulatory weight of their bigger cousins, which makes them attractive for quick, low-stakes survey work. The trade is obvious the moment you load one with a sensor: there is almost no payload budget, and what you do carry has to be light, low-power, and vibration-tolerant. This is a field note on flying a featherweight platform over a disused rail siding to see how far a solid-state LiDAR could be pushed.
The setup
All data here is from public test flights over an abandoned siding — no operational or customer site is involved. The platform was an off-the-shelf sub-250g airframe with a lightweight solid-state LiDAR and an onboard IMU. We flew a simple lawnmower pattern at two altitudes and logged raw returns plus pose.
- Altitude A: ~12 m AGL, slow transit
- Altitude B: ~25 m AGL, nominal transit
- Registration: pose-graph from IMU + scan matching, no GCPs
What resolved well
At the lower altitude the rail geometry came through cleanly. Rail head spacing was recoverable to within a couple of centimetres, and tie spacing showed up as a clear periodic signal in the cross-section — enough to flag missing or shifted ties without any manual measurement.
Where it fell apart
Two honest failure modes:
- Wind-induced pose noise. The airframe is light enough that gusts translate directly into pose jitter. Above ~15 km/h wind the scan-matching residuals climbed and the cloud smeared along-track. No amount of post-filtering fully recovered it.
- Low-return surfaces. Ballast was fine; the rusted rail web and wet timber returned far fewer points than expected, leaving gaps exactly where you want detail.
Takeaway
A sub-250g platform is a genuinely useful reconnaissance tool for linear infrastructure — fast to deploy, cheap to fly, good enough to triage. It is not a replacement for a survey-grade capture when you need guaranteed coverage on low-return surfaces. Know which job you are doing before you launch.
Clean-room write-up — public / synthetic data only.