A drone that flies a lap of the high-bay racking at night sounds like the last piece of warehouse automation. What it actually delivers is a set of observations, each tied to a position, a time and a flight — and whether that becomes inventory truth depends entirely on the model behind it. The flight log is the evidence; the stock figure is a conclusion drawn from it, and the two should never be confused when a discrepancy is argued about a month later.
What a drone can and cannot see
It is an upper-level instrument, not a replacement for a ground robot.
- It flies a fixed altitude band above the top beam and looks down at labels and tags on the upper levels.
- It cannot pick, count loose items inside a tote, or read a tag on the far side of a pallet.
- It sees the top face of cartons, which is often exactly where nobody ever placed a label.
- In narrow aisles the rotor wash moves shrink wrap and dust, and read rates move with them.
- Treat it as an upper-level tool and keep ground coverage for the lower two metres.
Flight is a mission, not a photo pass
A flight that is not recorded is not evidence.
- Define the mission: zone, rack rows, altitude band, speed, gimbal angle and planned waypoints.
- Record the map version and the coordinate frame the waypoints refer to.
- Bind every capture to a timestamp, a pose and the mission identifier.
- Log aborted legs and re-flights, because coverage gaps look exactly like missing stock.
- Keep the raw flight log even after the summaries have been imported.
The high-bay geometry problem
Height turns a simple read into a trigonometry exercise.
- At eight metres the read cone is wide; one pass covers several levels or none, depending on angle.
- Beams, wire mesh guards and pallet overhang all block line of sight to the label.
- Tags on the top beam are readable; tags on the pallet face usually are not.
- A skewed flight path pushes reads into the neighbouring bay and creates phantom variances.
- Resolve height ambiguity by combining the pose with the bay identifier read at floor level.
Read quality follows flight pattern
Most drone RFID failures are flight pattern failures.
- Fly at a consistent offset from the rack face; distance variation changes read rate more than tag type does.
- Slow down at corners, where the antenna sweeps past labels at a grazing angle.
- Fly each aisle in both directions when the first pass lands below the coverage target.
- Keep rotor wash away from loose film and packaging so two passes are comparable.
- Record signal strength per read, so weak observations can be separated from confident ones.
Safety and regulatory envelope
Indoor flight avoids airspace law, not workplace safety law.
- A written risk assessment is still required, and it should name the aisles, times and people involved.
- Define exclusion zones around staff, forklift lanes and charging areas.
- Set a battery reserve that guarantees a controlled landing rather than a best effort.
- Put the geofence in the flight controller, not only in the mission planning software.
- Log every manual override; overrides are the clearest signal that the mission design is unsafe.
From captures to a variance document
The ERP should never receive a raw drone read.
- Land captures in a staging table with mission, pose, timestamp, tag and signal strength.
- Build expected quantities from Odoo quants at mission start, then compare location by location.
- Classify each difference: real shortage, misplacement, unreadable tag, blocked shelf, stale map.
- Attach a confidence value to every line so reviewers can sort by reliability.
- Publish the comparison before proposing stock moves, and keep the snapshot it was based on.
The sync model: missions, poses, snapshots
The integration is a data model question disguised as an API question.
- Model mission, leg, waypoint and capture as separate records with stable keys.
- Version maps and reference the version inside every capture.
- Store the expected snapshot used for comparison, together with its generation time.
- Allow late arrival; a re-uploaded mission must be idempotent and produce no duplicate tasks.
- Expose variance documents to Odoo as tasks with owners, never as silent adjustments.
Reading tags at height, on metal and in cold
The upper rack is an unfriendly radio environment.
- Metal racking reflects and cancels signal, and tag orientation matters more than tag generation.
- Freezer zones fog lenses and shift antenna impedance; test at temperature, not on the bench.
- On-metal tags cost more, and a mixed estate reads unevenly for reasons that are hard to see.
- Label condition degrades with forklift contact; unreadable tags cluster at the impact points.
- Track read rate per bay over weeks, so a failing tag surfaces before it becomes a variance.
Where drones beat ground robots, and where they do not
Choose the platform by the geometry, not by the demonstration.
- Drones win above four metres, in aisles too narrow for a mast, and where the floor is inaccessible.
- Ground robots win on endurance, payload and reading at eye level under stable lighting.
- Drones are weaker in draughts from open doors, in dust, and where ceiling height is limited.
- A mixed fleet should still feed one variance model, not two parallel reporting pipelines.
- Compare cost per thousand locations observed, not cost per unit.
Pilot design, acceptance and metrics
A pilot has one job: to show whether coverage improves on today's process.
- Start with one high-bay zone and a single category with clean tag data.
- Run in report-only mode for four to six weeks before proposing any adjustment.
- Measure coverage, agreement rate, false positives and time to close a variance.
- Watch the share of variances traced to map or tag problems; it should fall month by month.
- Define in advance what result would justify stopping, and honour that definition.






