Positioning

Fusing UWB and VIO: Sub-10cm Forklift Tracking on Sparse Anchors

A tightly coupled UWB plus visual-inertial pipeline holds forklift pose under 10 cm at task zones while cutting anchor count to a fraction of a TDoA grid.

Hayat Amin, President of IP, Position Imaging Hayat AminPresident of IP, Position Imaging 5 min read
The short answer

Fuse raw UWB two-way ranges with visual-inertial odometry in a tightly coupled error-state filter. VIO carries smooth 100 to 200 Hz pose between anchors, and each single-anchor range bounds its drift, so you need one anchor intermittently in view instead of three or four continuously. That means anchors at aisle ends, intersections, docks, and pick zones rather than a 15 to 20 meter grid, with sub-10cm accuracy held wherever ranging contact is fresh.

Key takeaways

  • Tightly coupled fusion turns a single raw UWB range into a useful constraint; loosely coupled fusion still needs 3 to 4 anchors in view to produce a fix.
  • VIO drifts 0.5 to 1 percent of distance traveled, so anchor spacing is a drift budget, not a coverage map: a 40 m gap accrues roughly 20 cm before the next range pulls it back.
  • Place anchors at aisle ends, intersections, docks, and pick zones; hold sub-10cm at task locations and accept 20 to 30 cm mid-aisle.
  • Sync UWB, camera, and IMU timestamps to well under a millisecond; at 3 m/s, 10 ms of skew is 3 cm of error.
  • Anchor survey error and lever-arm calibration cap system accuracy before the filter design does.
  • Building the fusion stack in-house runs 12 to 24 months; licensing granted positioning IP ships it in months with freedom to operate.

Why doesn't UWB alone hold sub-10cm on a moving forklift?

An 802.15.4z HRP UWB channel is 499.2 MHz wide, which resolves time of flight to roughly 10 to 30 cm line of sight. The problem is not the ranging, it is everything around it. A TDoA or multilateration fix needs three to four anchors with simultaneous line of sight, and a warehouse is built to block line of sight: 10 m steel racking, pallets of dense product, trucks in motion. A range measured through a loaded pallet arrives late and reads 30 cm to over 1 m long. Aisle geometry makes it worse, because the anchors visible from inside an aisle tend to sit along the aisle axis, so cross-aisle dilution of precision blows up exactly where placement accuracy matters. Then there is motion: at 10 Hz ranging and a forklift moving 3 m/s, consecutive fixes land 30 cm apart, and interpolation smears through every turn. The standard answer is anchor density, one every 15 to 20 m, each needing power, backhaul, and a scissor lift to mount. Density is a workaround, not a design.

What does visual-inertial odometry contribute, and where does it fail?

Visual-inertial odometry pairs a camera with a 100 to 200 Hz IMU and integrates both into a smooth 6-DoF pose. Pipelines in the ORB-SLAM3 and VINS-Fusion class drift around 0.5 to 1 percent of distance traveled in feature-rich scenes. That error profile is the opposite of UWB: over short windows VIO is centimeter-consistent and updates fast enough to track a turning forklift frame by frame. But it is a relative sensor. It does not know where the map origin is, and drift compounds silently: a 100 m run down an aisle accrues 0.5 to 1 m of error with no internal way to notice. Warehouses attack VIO's weak points directly:

  • Long runs of visually identical racking invite wrong loop closures.
  • Freezer sections run dark and fog lenses.
  • Mast vibration at full lift corrupts the IMU and blurs frames.

Bare VIO keeps reporting confident poses while sliding off truth, which is worse than failing loudly. Neither sensor alone survives a full shift at sub-10cm. VIO is smooth, but it lies slowly.

How does tightly coupled fusion let one anchor do the work of four?

The architecture choice that matters most is tight coupling. A loosely coupled design fuses finished UWB position fixes, which means you still need three to four anchors in view to produce a fix at all, so sparse anchors buy you nothing. A tightly coupled filter, an error-state EKF or a sliding-window factor graph, consumes each raw two-way range as a single scalar measurement. With VIO constraining the shape of the trajectory, a handful of ranges to one known anchor, taken over a few meters of motion, pins both position and heading. Range-only SLAM uses the same trick. Three details decide whether it works in practice:

  • Time sync. Hardware-timestamp UWB, camera, and IMU to well under a millisecond; at 3 m/s, 10 ms of skew is 3 cm of error.
  • Lever arms. Calibrate tag antenna, IMU, and camera offsets to about 1 cm, or that error lands directly in the output.
  • NLOS rejection. Gate each range by filter innovation and by first-path power versus total received power, and downweight late arrivals.

One honest range beats four noisy fixes.

How sparse can anchors actually get in a racked warehouse?

Standalone UWB TDoA deployments in racked warehouses typically land near one anchor per 400 to 800 square meters to keep three anchors in view everywhere. With fusion, the question changes from coverage to drift budget. At 0.5 percent VIO drift, a 40 m gap between ranging contacts accrues about 20 cm, and the next few ranges pull the estimate back. So you place anchors where two conditions meet: the forklift passes often, and accuracy pays. That means aisle ends, cross-aisle intersections, dock doors, and staging and pick zones, not a uniform grid. Inside that layout, hold sub-10cm where ranging contact is fresh, at the pick face and the dock, and accept 20 to 30 cm mid-aisle where nothing is being placed. Most forklift use cases, pallet put-away verification, dock door assignment, near-miss analysis, only need the tight number at task locations. The honest spec for your ops team is accuracy per zone, not one number for the whole building. Put anchors where accuracy earns money.

What breaks in production, and how do you harden it?

The filter is rarely what fails in production. The forks are. You care about pallet position, and the forks travel up to 10 m vertically on a mast that flexes under load, so either instrument the mast with an encoder or track the fork carriage visually and model the offset explicitly. Inventory changes the radio environment week to week: a rack full of canned goods blocks paths that were clean when it stood empty, so NLOS handling must be per-measurement, not a calibration map from install day. Cameras need maintenance reality: dust film, condensation at freezer doors, lens heaters where needed. And the quiet killer is anchor survey error. If anchors are placed into the map with 5 cm of error, no filter recovers it. Survey with a total station or run a SLAM-based auto-survey, then re-verify after any racking change. Your survey is your accuracy ceiling.

Should you build this fusion stack or license it?

A production-grade estimator of this kind is a 12 to 24 month project for a team spanning state estimation, UWB firmware timestamping, and calibration tooling, and those engineers are among the scarcest hires in robotics. The second cost is quieter: fusing RF ranging with inertial and optical tracking is dense patent territory, and discovering that after launch is expensive. Position Imaging licenses a portfolio of granted US patents in real-time positioning, radio-frequency ranging, computer vision, and machine learning, cited by Apple, Bosch, and other major firms, including US 11,774,249, US 12,079,006, US 12,066,561, and US 12,000,947. Licensing gets you two things at once: proven methods you do not have to reinvent, and freedom to operate in the exact fusion techniques this post describes. Teams that license spend their engineers on the product, not on rebuilding the Kalman filter, and ship tracking features in months instead of years. License the math and ship the forklift.

Patents referenced
US 11,774,249US 12,079,006US 12,066,561US 12,000,947

Frequently asked questions

How many UWB anchors do I need if I fuse with visual-inertial odometry?

Size it from your drift budget, not from coverage. At 0.5 to 1 percent VIO drift, a 40 m gap between ranging contacts costs roughly 20 to 40 cm, so place anchors at aisle ends, intersections, docks, and pick zones. Compared with the one anchor per 400 to 800 square meters a standalone TDoA grid needs, fused deployments commonly run a fraction of that count. Validate with a one-day drift test on your own trucks before finalizing the layout.

Can visual-inertial odometry alone deliver sub-10cm forklift tracking?

Only over short windows. VIO drifts about 0.5 to 1 percent of distance traveled, so a 100 m aisle run can end up to 1 m off, and it has no global reference frame. Relocalizing against a prebuilt visual map helps until racking contents change and the map rots. An absolute sensor like UWB is what keeps the estimate honest across a full shift.

Does this work on manned forklifts or only autonomous ones?

It works on manned trucks. The sensing package is a retrofit kit: UWB tag, camera, IMU, and a small compute unit powered from the truck battery, with no integration into steering or drive controls. Autonomous forklifts use the same fusion output as their localization input, so the architecture carries over when you automate later.

What UWB ranging rate should I budget per forklift?

With tight coupling, 5 to 10 Hz of two-way ranging per vehicle is usually enough, because VIO carries the pose at 100 to 200 Hz between ranges. That keeps the air interface clear and lets dozens of trucks share anchors through scheduled ranging slots. Higher rates mainly help during the first seconds after a long ranging outage.

How do I handle freezers and poorly lit aisles?

The IMU is unaffected by light, so short dark stretches coast on inertial data. For sustained low light, add IR illumination and lens heaters to fight condensation at freezer doors. Then shrink anchor gaps in those zones so UWB carries more of the load where the camera contributes least.

Talk to the IP team

Tell us what your forklifts need to know and where, and we will map your fusion stack against the portfolio in one working session.

Tell us the product. We map the exact scope, what a license covers, and how fast you can ship, all in a 20-minute call.

Book a 20-minute call