Cold storage deployments present a different set of perception challenges than ambient warehouses. The problems are not hypothetical edge cases — they affect how your LiDAR scans every frame, how your obstacle classifier interprets what it sees, and how well your localization holds over an 8-hour shift. Most of them only become visible after you have been running in the environment for a few weeks.
This post focuses on three specific mechanisms that make cold storage harder for standard AMR perception stacks: structural dimensional changes from thermal cycling, condensation fog as a LiDAR noise source, and the changed visual signature of PPE-wearing workers compared to ambient worker profiles.
Structural Dimension Changes and Localization Drift
Steel and concrete behave differently at -20°C than they do at +20°C. This is not a subtle effect. A 100-meter steel pallet rack run exhibits roughly 2 to 3 mm of thermal contraction per 10°C of temperature drop — meaning a rack that was precisely at position X during an ambient SLAM mapping session has shifted several millimeters by the time the facility has been operating at -20°C for a few days.
Individually, millimeter-level shifts are below the resolution of most 2D LiDAR SLAM maps at typical 5 cm grid resolution. The problem is that thermal contraction is not uniform. Different sections of the facility reach operating temperature at different rates depending on insulation, door frequency, and loading pattern. A freezer zone that gets opened 40 times per shift for receiving will be slightly warmer on average than the deep storage zone at the far end. The structural elements in those zones contract to different extents.
The cumulative effect on AMCL localization: scan matching against the static map degrades progressively over a shift as the facility settles into its operating temperature profile. What was a clean scan-to-map match at the start of the shift becomes noisier as the shift progresses and the robot encounters walls and racks that are 3 to 8 mm from where the map says they should be. In practice, this shows up as a slow AMCL pose estimate drift — typically 5 to 15 cm over an 8-hour operating window — which is enough to cause the path planner to generate routes with inadequate clearance margins in narrow aisles.
The mitigation we use is more frequent particle filter resampling in the AMCL configuration combined with a higher sensor weight for the most thermally stable reference features (structural columns, concrete walls) and lower weight for pallet rack features that are more susceptible to thermal movement. The parameter adjustment in the Nav2 AMCL configuration looks like this:
amcl:
ros__parameters:
min_particles: 1000 # increased from default 500
max_particles: 8000 # increased from default 2000
laser_max_beams: 120 # increased scan coverage
laser_z_hit: 0.85 # emphasize beam model hit probability
laser_z_rand: 0.15 # accept slightly more random noise
recovery_alpha_slow: 0.001
recovery_alpha_fast: 0.1 # faster recovery from localization loss
This does not eliminate the localization drift but reduces it to under 5 cm over a typical shift, which is acceptable for aisle widths above 1.2 m with standard inflation radius settings.
Condensation Fog as a LiDAR Noise Source
When warmer air enters a cold zone — through dock doors, through the freezer antechamber transitions, or from warm equipment like forklifts that have been in ambient areas — condensation forms as the warm humid air meets cold surfaces. In active facilities, this creates transient fog zones near dock entrances and in the antechamber transition areas.
LiDAR performance in fog depends on the droplet density and the LiDAR's wavelength and return detection algorithm. Most warehouse 2D LiDAR units operating in the 850–905 nm range show measurable range attenuation in dense condensation fog — the point cloud becomes noisier and average detected range drops by 20 to 40% in severe fog conditions. In moderate condensation (which is more typical), the effect is more subtle: increased scan noise and a higher rate of spurious short-range returns from fog droplets.
These spurious returns are the more operationally significant problem. A fog droplet at 0.8 m from the robot looks, to the standard obstacle detection pipeline, like an obstacle at 0.8 m. If enough droplets produce returns in a similar direction, the costmap shows a cluster of apparent obstacles. The robot either attempts to route around what is not there, or its local planner slows down and triggers a clearance wait that never resolves because the "obstacle" keeps appearing as long as the fog persists.
The standard approach of tuning the obstacle layer's min_obstacle_height parameter does not help here — the spurious returns are at valid heights, they are just from fog particles rather than solid objects. What does help is a temporal consistency filter in the obstacle detection layer: require that a detection be present in at least N consecutive scan frames before it gets reported as an obstacle, where N is calibrated to the typical persistence time of real obstacles vs fog artifacts. In our cold storage configuration, N=4 at 10 Hz (400 ms persistence) filters most fog-induced false positives while still detecting real obstacles fast enough for safe operation at 0.8 m/s.
We are not claiming this fully solves dense fog conditions. In severe condensation events near dock doors during receiving operations, the LiDAR signal quality can degrade enough that slowing robot speed and increasing safety margins is the correct response regardless of software filtering. The goal is to handle the moderate-fog baseline case reliably without false positives, not to operate normally through near-zero-visibility conditions.
PPE-Wearing Workers and Classifier Accuracy
The person classifier in a standard warehouse AMR perception stack is trained on workers wearing typical ambient warehouse PPE: safety vest, hard hat, work boots. The profile of a person at waist height in the 2D LiDAR scan plane — roughly 300 to 450 mm wide — is consistent enough across ambient warehouse workers that a well-trained classifier gets reliable person detections.
Cold storage workers look different. In -20°C environments, workers wear insulated coveralls, heavy gloves, face coverings, and sometimes additional outer layers that can double their effective width in the scan plane. A person in full cold-storage PPE may present a scan profile 500 to 650 mm wide at waist height, compared to 300 to 400 mm for an ambient worker. The overall silhouette is also more variable because layers shift, workers carry additional equipment, and the rigid outer layers create different shapes than the fluid garments in ambient environments.
In our classifier training process, we added a cold-storage worker profile variant with the following characteristics: increased width range (450–680 mm), slower average movement speed (workers are less mobile in heavy PPE, average walking speed around 0.7 m/s vs 1.0 m/s in ambient), and higher reflectivity from metallized outer garment materials. The cold-storage profile variant is selected based on the robot's zone assignment — when operating in a designated cold zone, the perception pipeline uses the cold-storage classifier profile rather than the ambient profile.
The practical outcome: false-negative person detections (missing a worker) dropped from about 8% in ambient-only training to under 2% for cold-storage-PPE workers. More importantly, the trajectory prediction model for cold-storage workers uses the lower average speed (0.7 m/s) rather than the ambient default (1.0 m/s), which means the safety margin calculations are calibrated to how workers in heavy PPE actually move rather than how fast workers in ambient gear typically walk.
The Bigger Picture for Cold Storage Deployments
Cold storage is not an environment where you can deploy an ambient warehouse AMR stack and tune your way to reliable operation. The three mechanisms above — thermal structural shift, condensation noise, PPE profile mismatch — interact. A robot in a cold zone during an active receiving shift is simultaneously dealing with all three: its localization is running against a thermally shifted map, its obstacle detections include fog artifacts, and its person classifier is interpreting workers it has not been calibrated for. Each one individually is manageable. Together, they stress the perception stack in ways that ambient testing does not reveal.
The deployments where we have seen cold storage AMRs perform reliably share a few characteristics: initial SLAM mapping done after the facility has reached operating temperature (not during commissioning when the zone may still be warming up), sensor profiles calibrated for the cold environment specifically, and conservative safety margin settings in narrow aisles near dock entrance zones where fog and traffic are highest. None of these are exotic requirements — they are just specific to the environment in a way that cannot be assumed from ambient deployment experience.