"Da, you've got to settle an argument for us. The vendor blames the floor, the flooring contractor blames the robot. Who's right?"

I get that call a few dozen times a year. After a decade and a half in systems integration, here's my verdict up front: eight or nine times out of ten, an AMR drifting into racking is not an algorithm problem. It's a floor problem or a reflection problem. The algorithm is the scapegoat; the environment is the culprit.

How an AMR actually "sees the road"

Think of AMR navigation as a driver plus roadside landmarks. The LiDAR is the eyes, sweeping tens of thousands of points per second and matching the shape of the surroundings against a map. Wheel odometry is "counting steps" — estimating distance traveled from wheel rotations. Reflectors or QR codes are the road signs, giving absolute position fixes that correct drift.

It's like driving in fog: when your eyes (LiDAR) can't see clearly, you estimate distance by time (odometry); every time you spot a road sign (reflector), you recalibrate. All three are needed, and each one fails in its own special way:

  • Odometry dies on slippery floors: the wheels spin, the robot doesn't move, the step count is wrong, and position drifts.
  • LiDAR dies on mirrors: light bouncing off polished stainless steel or glass returns phantom points that don't match the map, and localization jumps.
  • Reflectors die when blocked: a forklift parks a pallet in front of your "road sign," calibration stops happening, and error accumulates.

Two cases from my own service log

Case 1: The slippery floor — Dongguan, November 2024. A 3PL warehouse handling 3C electronics, 20 AMRs, six smooth months. Then in November the robots started "drawing dragons" — S-curves down straight aisles, ending with a kiss on the rack uprights. The vendor checked logs remotely, declared the algorithm healthy, and recommended adding reflectors. They added them. Nothing changed.

My first move on site wasn't to look at the robots — it was to crouch down and touch the floor. Epoxy coating, November humidity, an invisible film of moisture. The poor man's test: spin a robot in place ten full turns and compare odometry's count against reality. It was off by nearly half a turn. The wheels were slipping, so every "step" was miscounted.

The fix: anti-slip treatment on the floor (recoat plus grit). Problem gone. The reflectors they'd bought cost tens of thousands of yuan and were pure waste. The floor should have been suspect number one from day one.

Case 2: The mirrored guardrail — California, March 2025. An e-commerce fulfillment center where AMRs crashed at one specific aisle entrance, every single time, nowhere else. Logs showed localization confidence falling off a cliff at that spot; the robot "believed" it was 30 cm off course, swerved hard to correct, and hit the rack for real.

On site: a brand-new row of mirror-finish stainless steel guardrails at that entrance. LiDAR hitting a mirror returns points that don't exist on the map — like a mirror appearing in the fog; the eyes just glitch. Worse, the phantom points change on every pass, so no filter can reliably catch them.

The fix: matte film on the guardrails — a few hundred dollars. Incidents went to zero. I tell this story in every training session I give: the robot never crashes "at that spot." It crashes at that spot's optical environment.

An AMR driving down a warehouse aisle, its LiDAR scanning the racks on both sides

The checklist: find the real culprit in three steps

Don't touch a single parameter before working this list. Nine times out of ten, the answer shows up here:

Step Check How Classic symptom
1. Floor Flatness, slip, expansion joints Touch it; run a 2-meter straightedge over the joints; spin-test ten turns against odometry S-curves on straight runs; worse in humid season; multiple robots failing at once
2. Reflections Mirrors, glass, blocked reflectors Walk the route with a flashlight and look for mirror reflections; check reflectors aren't hidden behind pallets Crashes at one fixed spot; confidence cliff in the logs
3. Localization Stale map, shifted reflectors Compare the site against mapping-day photos; check reflector mounting screws Started after a layout change; error growing slowly over weeks

One decision rule on top: a single robot acting up — check that unit's tire wear and whether its LiDAR cover is dirty. That's an individual case. Many robots failing at once — it's the environment, always. Don't burn days tuning single-robot parameters.

The selection line — and the maintenance trap

Time for some straight talk. Plenty of AMR-rack collisions are seeded on selection day:

First, rough old concrete — dusting surface, wide expansion joints — paired with pure laser navigation and no QR or reflector backup. That's asking a nearsighted driver to drive without glasses. If there's no budget to fix the floor, add assisted localization. No excuses.

Second, aisles full of mirrors and glass that nobody checked during the site survey. The pilot ran in an empty test zone; production turned out to be a hall of mirrors. Of course it behaves differently.

Third, the pseudo-requirement hall of fame: "we want full unmanned operation with forklifts and AMRs sharing the aisles." Mixed traffic is doable — but mixed traffic plus slippery floors plus heavy reflections stacks three failure modes at once, and no algorithm will save you. Zone the traffic first, mix later.

Here's the contrarian take: most teams' first instinct is to "just slow it down." Lower speed does reduce impact force, but it masks the truth about drift — the robot is still drifting, just slower and gentler. You can't fix a localization problem with a speed limit. Find the source of the drift instead.

The dividing line in one sentence: if fixing the environment (floor plus reflections) costs less than one year of crash repairs plus downtime, fix the environment before upgrading the algorithm.

And the maintenance trap: AMR localization isn't set-and-forget — it's kept alive by maintenance. Three non-negotiable weekly checks: wipe the LiDAR covers (dust shortens effective range), check reflectors for forklift knocks (five degrees of tilt becomes tens of centimeters of error at distance), and scan for new potholes and oil stains. Put the checklist on the charging-area wall; whoever's on shift signs it. Track localization losses per thousand kilometers every week — when it trends upward, the environment is degrading. Don't wait for the crash.

Is the money worth it? One number decides. One AMR-rack collision — repair, downtime, damaged goods — runs from thousands to tens of thousands, depending on how hard the hit is. A proper environment audit plus anti-slip treatment plus reflection fixes for a warehouse of a few thousand square meters will very likely cost less than two crashes. So the worth-it line is a single number: what "drifting into racks" has cost you in the past year. Add it up, get the quote for the environmental fix, and pick the smaller number. Nine times out of ten, the answer is: fix the floor first.

By Da Liu, Automation Engineer