2026-2027 Defence Hardware Planned

Overview

This is a planned build guide for a small GPS-denied cargo ground vehicle tested on snow: a ROS 2 rover that fuses wheel encoders, an IMU, and LiDAR-inertial odometry through an EKF, measures its own navigation error, wheel slip, and energy use at 10-30 kg payloads, and scores every run against RTK GNSS carried only as ground truth.

The yardstick is real: two MINERVA ground challenges, a cargo uncrewed ground system and a surveillance uncrewed ground system, were published through Innovative Solutions Canada and closed in September 2026. They read like engineering specs, not marketing: carry 140 kg, tow 275 kg, hold 7 km/h cross-country with rated payload, climb 20% grades, run from -20 to +40 C. Those challenges are closed to new proposals, so this page uses them as spec sheets the way the Arctic UAS page uses its closed challenge: a published, measurable target to build against.

Scope honesty up front: nothing on this page is built or tested yet. A solo bench build cannot meet a 140 kg payload or a 410 kg vehicle class, and this guide does not pretend otherwise. What it can do is build the navigation-and-energy core at hobby scale, measure it honestly on pavement, gravel, and real southern Ontario snow, and publish a gap table that says exactly which spec lines were met, partly tested, or never touched. The output is scaling arguments and data, not a compliance claim.

Winter is the point of the build, not a complication. Published research says LiDAR odometry degrades in snowfall, wheel odometry drifts when wheels slip, and snowbanks defeat localization methods that work fine in summer. The test plan is built around those failure modes: it goes looking for them, logs them, and reports the limits instead of the highlight reel.

Concept Illustrations

Concept illustration of a small GPS-denied cargo rover driving a packed snow trail in winter
Concept illustration (AI-generated planning visual, not a photo of built hardware): the planned rover on a packed snow trail, the Phase 3 winter test scenario.
Concept illustration of a bench-scale snow rover prototype with LiDAR and compute on a lab bench
Concept illustration (AI-generated planning visual, not a photo of built hardware): the bench prototype configuration with mast LiDAR, compute stack, and E-stop, as planned for Phase 1.

Target Spec

These requirements come from the two MINERVA ground challenge notices (closed September 2026, used here as spec sheets). Shared lines apply to both the cargo and the surveillance notices; cargo-only and surveillance-only lines are marked. Numbers marked (est.) are calculated from the cited specs; items marked (verify) were not confirmed against a primary source.

RequirementSpecApplies to
System contentsGround vehicle + sensor payload + ground control station (GCS) + radio + battery with multi-battery charger + remote antenna 100 m from the GCSShared
Temperature rangeOperate -20 to +40 CShared
Unladen massNo more than 410 kg (a cap, not payload)Shared
Speed and enduranceAt least 15 km/h and 4 h continuous motion, unladenShared
Terrain and visibilityPaved roads, sand, gravel, day/night, minimum 15 degree gradientsShared
Cross-countrySustain 7 km/h cross-country with rated payloadShared
Mobility obstaclesClimb 20% grades, 15% side slopes, 250 mm vertical step, cross a trench (the surveillance notice says 500 mm; the cargo notice prints 500 m, which is almost certainly a typo, so this guide uses 500 mm and says so)Shared
Payload onboardCarry 140 kg including a tri-wall container 122 x 102 x 92 cmCargo only
TowingTow 275 kgCargo only
Radio radius5 km unladen with live video; 10 km autonomousCargo only
Radio radius3 kmSurveillance only
RecognitionRecognize a 180 cm person at 0.5 km day / 0.25 km night; a 5 x 3 x 2 m vehicle at 1 km day / 0.5 km nightSurveillance only
Sensor elevationLook over a 1 m obstacle with 180 degree panSurveillance only
Stationary endurance48 h on sensor payloadSurveillance extra
Guest payloadRoom, power, and API for a 100 lb payload at 30 WSurveillance extra
Cost$150,000 or lessSurveillance extra
Acoustic signatureNo more than 5 dB SPL at 500 mSurveillance extra
Control linkFibre-optic control from 100 mSurveillance extra
LogisticsNATO tow hook; two vehicles per PLS deck; ready in 30 minSurveillance extra
PropulsionElectric or hybrid; front obstacle avoidanceSurveillance extra
GCS featuresMission simulation, MGRS, TAK push, return-on-link-lossSurveillance extra

What the Hobby Version Proves

The hobby-scale build is a 10-30 kg payload testbed. It does not carry cargo for anyone; it measures how the things a cargo UGV lives or dies on behave when the ground is white and the sky gives no position:

  • Navigation error without GNSS. How drift grows with distance for each sensor set (encoders + IMU alone, with LiDAR odometry, with radar velocity), scored against RTK GNSS used strictly as ground truth, never fused into the estimate being graded.
  • Wheel slip behaviour. How slip ratio and a yaw-disagreement slip detector track stuck events and error spikes on packed snow, loose snow, gravel, and pavement.
  • Energy use. Wh/km across payloads of 0/10/20/30 kg, plus a 48 h stationary energy budget for a 30 W guest payload that sizes the battery and its cold derating.
  • Sensor degradation in snow. Where LiDAR odometry starts losing track as snowfall gets heavier, and whether a snow point filter and radar ego-velocity actually recover it, at hobby scale.
  • Scaling arguments, not compliance. Published math from measured small-scale data toward the spec numbers, with the assumptions stated and the gap table below kept honest.

What the research says will go wrong

  • LiDAR degrades in snow through dropout and near-sensor noise. One study's LiDAR odometry worked in light snow, then lost track as snow got heavier, while radar SLAM kept operating.
  • The cited fix is to denoise snow points before odometry: dynamic radius outlier removal (Charron et al. 2018). The snow filter in the architecture exists for exactly this reason.
  • The radar result came from a 4 Hz spinning radar, so it does not transfer directly to small mmWave boards. That is why radar here feeds Doppler ego-velocity to the EKF rather than being asked to do full SLAM.
  • In winter teach-and-repeat work with teach runs 113, 44, and 4 days old, only a radar repeat taught in the same deployment completed the route; ICP LiDAR localization failed near snowbanks up to 3 m high.
  • Flattening the trail with a snowmobile lowered power use and improved mobility, which is why the winter protocol logs whether the surface is packed or loose.
  • Algorithms that lean on wheel odometry drift when the wheels slip (verify exact finding); the slip detector and covariance inflation below are the planned countermeasure.

Architecture

The estimate being graded never sees GNSS. Wheel encoders and the IMU feed the robot_localization EKF as the dead-reckoning base; LiDAR runs through a snow filter (dynamic radius outlier removal, Charron et al. 2018) before FAST-LIO2 (or slam_toolbox in a 2D fallback) contributes lidar-inertial odometry; an optional TI mmWave radar board contributes Doppler ego-velocity. The slip detector compares IMU yaw rate against the yaw implied by differential wheel speeds, and when they disagree it inflates the wheel-odometry covariance in the EKF so the filter stops trusting the encoders while the wheels spin.

Nav2 consumes the fused estimate and commands the motor-control MCU. Safety is hardware, not software: a wireless E-stop relay sits on the motor power line, so a stop command cuts traction power even if every computer on the rover is frozen. RTK GNSS rides along purely as a ruler: its fix goes straight to the rosbag2 MCAP log, and offline the evo tooling scores the GNSS-denied trajectory against it with KITTI-style segment error and APE/RPE. Compute is a Pi 5 or Jetson-class board running ROS 2 Jazzy on Ubuntu 24.04.

How to Build It

Seven phases, in order. Each phase gates the next: no snow runs before the E-stop is proven on blocks, no payload sweep before the baseline error numbers exist.

Phase 0: Simulation (weeks 1-3)

  1. Stand up Gazebo with a slip-prone terrain model so wheel slip appears in simulation before it appears on the driveway.
  2. Bring up the EKF and Nav2 stack in simulation and drive loops there first.
  3. Write the evaluation scripts now (KITTI-style segment error, APE/RPE extraction from rosbag2), so field runs produce publishable numbers the day they happen instead of weeks later.

Phase 1: Bench bring-up (weeks 3-6)

  1. Calibrate the wheel encoders and the IMU; encoder scale and IMU biases are the two error sources every later number inherits.
  2. Verify the wireless E-stop cuts motor power with the rover on blocks. This test is run with wheels off the ground and is pass/fail: power dies or the build stops here.
  3. Get time sync right across compute, MCU, and sensors; trajectory error scoring against RTK truth is meaningless if the clocks disagree.

Phase 2: Easy ground (weeks 6-8)

  1. Run pavement and gravel loops with GNSS fused in, then the same loops with GNSS off, to isolate what the GNSS-denied estimate actually costs.
  2. Score translation error as percent of distance travelled per segment, KITTI-style over 100-800 m segments, plus APE/RPE with evo.
  3. These dry-ground numbers become the baseline every winter result is compared against.

Phase 3: Winter runs (December-March)

  1. Repeat the loop protocol on packed snow and loose snow, logging snow depth, condition, and whether the surface is packed, because the research says surface prep changes both power use and mobility.
  2. Run the radar-velocity variant and the snow filter, separately and together, and record where LiDAR odometry starts losing track as snowfall gets heavier.
  3. Southern Ontario gives a real December-to-March window for this; the calendar below plans around it.

Phase 4: Payload sweep (0/10/20/30 kg)

  1. Repeat representative loops at each payload and record drift percent, slip ratio, stuck events, Wh/km, and maximum stable speed.
  2. The sweep is the scaling argument's raw material: how error and energy grow with load at small scale is the honest basis for talking about 140 kg at full scale.

Phase 5: Stationary energy

  1. Run a 30 W resistive load plus the compute stack for 48 h to mirror the surveillance spec's stationary-endurance line at guest-payload scale.
  2. The payload alone is 30 W x 48 h = 1.44 kWh (est.), which sets the battery size and the cold derating budget before any pack is purchased.

Phase 6: Report

  1. Publish the full dataset: rosbag2 MCAP logs, evaluation scripts, per-condition error tables, energy numbers, and the spec-gap table below updated from Planned to measured statuses.
  2. One repo per build: README with claim, spec table and results; /docs, /hw, /sim, /test, /data, /results; LICENSE, SBOM, signed releases.

Spec-Gap Table

The honest scoreboard. Statuses are Planned, Partial, Not tested, or Not met, and they only move when measured data exists. Nothing here is claimed against the full-size spec.

Spec lineHobby-scale status
Full system (vehicle + payload + GCS + radio + multi-battery charger + 100 m remote antenna)Partial: rover, laptop GCS, and RTK base planned; charger and remote antenna not yet specced
-20 to +40 C operationPartial: southern Ontario winter tests Dec-Mar; only actually tested temperatures will be reported, +40 C not tested
410 kg unladen capNot comparable: hobby chassis is far below the cap
15 km/h and 4 h unladenNot tested: speed is capped for safety at this scale
Paved, sand, gravel, day/night, 15 degree gradientsPartial: pavement, gravel, and snow planned; gradients only if a safe test site allows
7 km/h cross-country with rated payloadNot comparable: payload is 10-30 kg, not the rated 140 kg
20% grades, 15% side slopes, 250 mm step, 500 mm trenchNot tested
Carry 140 kg incl. tri-wall container; tow 275 kgNot met: scaling argument only, from the Phase 4 payload sweep
Radio radius 5 km with live video / 10 km autonomous (cargo); 3 km (surveillance)Not tested
Person/vehicle recognition ranges, 1 m obstacle look-over, 180 degree panNot applicable: this build is the navigation and energy core, no recognition payload
48 h stationary endurance on sensor payloadPlanned: Phase 5 with a 30 W resistive load (1.44 kWh est. payload budget)
Room/power/API for a 100 lb, 30 W payloadPartial: the 30 W load test mirrors the power line; room and API not tested
$150,000 costArgued only via bill of materials plus a scaling argument
5 dB SPL at 500 m; fibre-optic control; NATO tow hook; PLS deck; 30 min readinessNot tested
GCS with mission sim, MGRS, TAK push, return-on-link-lossPlanned: mission sim via Gazebo; TAK push intended through the common-operating-picture work; MGRS and link-loss return not yet specced

Metrics to Publish

  • Translation error as percent of distance travelled, KITTI-style over 100-800 m segments, per surface and per sensor set.
  • APE and RPE from evo for every logged run, against RTK ground truth.
  • Slip ratio over time, slip-detector triggers, and correlation with stuck events.
  • Stuck events per kilometre, by surface and snow condition (depth, packed vs loose).
  • Wh/km across the 0/10/20/30 kg payload sweep, per surface.
  • Maximum stable speed per payload and surface.
  • LiDAR odometry loss-of-track events versus snowfall intensity, with and without the snow filter and radar velocity.
  • Stationary endurance: hours sustained on the 30 W load plus compute, and the battery's measured cold derating.

Hardware to Buy First

  • ROS-compatible 4WD or tracked research chassis, with the payload rating checked against the 30 kg sweep top end.
  • RTK GNSS pair (rover and base), used as ground truth only.
  • A good IMU.
  • 3D LiDAR, or a 2D LiDAR for the slam_toolbox fallback.
  • Wheel encoders, if the chassis does not include them.
  • Wireless E-stop relay on the motor power line.
  • Battery sized from the Phase 5 stationary-energy result, not before it.
  • TI mmWave radar evaluation board for Doppler ego-velocity.

Safety and Legal Notes

Physical safety: a hardware E-stop that cuts motor power, a software speed cap, a private test area, and a spotter for every outdoor run. The E-stop is verified on blocks in Phase 1 before the rover ever drives under its own power off the bench.
Battery discipline: batteries charge indoors and never below 0 C; a pack coming in from a winter test warms to room temperature before the charger connects.
Legal: check municipal bylaws before running a ground robot in any public or semi-public space, and test only on private property with permission. This build is defensive and civilian in character: it surveys and hauls, and carries nothing that jams, spoofs, or harms.

Frequently Asked Questions

Can a hobby rover meet the MINERVA cargo UGV payload of 140 kg?

No. The MINERVA cargo spec calls for 140 kg onboard plus 275 kg towed, which a bench-scale chassis cannot carry. This build carries 10 to 30 kg instead and publishes measured navigation error, slip, and energy data with scaling arguments, never a compliance claim.

How does a ground robot navigate without GPS in snow?

It fuses wheel encoders and an IMU in a robot_localization EKF with LiDAR-inertial odometry from FAST-LIO2, adds a snow filter to remove falling-snow points before odometry, and can add mmWave radar Doppler ego-velocity. RTK GNSS is carried only as ground truth for scoring error.

Why does LiDAR SLAM fail in snowfall and what fixes it?

Falling snow creates dropouts and near-sensor noise points; published work shows LiDAR odometry holding in light snow then losing track as snow got heavier while radar SLAM kept operating. The cited fix is denoising snow points before odometry, dynamic radius outlier removal (Charron et al. 2018).

How does the slip detector help the EKF?

The detector compares IMU yaw rate against the yaw implied by differential wheel speeds. When the two disagree, the wheels are slipping, so the filter inflates the wheel-odometry covariance in the EKF and the estimate leans on the IMU and LiDAR instead of trusting the encoders.

When will this cargo rover actually be built and tested?

Per the program calendar: simulation runs now through December 2026, bench bring-up follows, and snow tests run December 2026 to March 2027 in southern Ontario. Nothing on this page is built or tested yet; every status is marked Planned until measured data exists.

What software stack does the GPS-denied cargo UGV use?

ROS 2 Jazzy on Ubuntu 24.04 with the robot_localization EKF for sensor fusion, Nav2 for planning and control, FAST-LIO2 for LiDAR-inertial odometry (slam_toolbox for a 2D fallback), a snow point filter, rosbag2 MCAP logging, and evo for trajectory error scoring.

Roadmap

  • Now to December 2026: Phase 0 simulation (Gazebo slip terrain, EKF + Nav2, evaluation scripts), per the program calendar that puts software and simulation work in the fall.
  • December 2026 to March 2027: the southern Ontario snow window: bench bring-up first, then Phase 2 baseline loops, Phase 3 winter runs, and the Phase 4 payload sweep while the snow lasts.
  • Spring 2027: Phase 5 stationary energy and the Phase 6 report with the full dataset and an updated, measured spec-gap table.
  • Programs to watch: the MINERVA challenges run through Innovative Solutions Canada (the two ground challenges used here as spec sheets closed in September 2026; further challenges are released progressively), and the IDEaS program, whose counter-drone sandbox and competitive projects are the natural home for measured, honestly scoped work like this. Any application would need the business-readiness basics first: incorporation, Controlled Goods Program status, and the CPCSC Level 1 self-assessment.

Cite This Page

Citation formats

Plain text

Taki Sadik, "GPS-Denied Cargo Ground Vehicle Build Guide", TYFSADIK, https://tyfsadik.org/work/defence/gps-denied-cargo-ugv.html (accessed 2026-10-24).

BibTeX

@misc{sadik-gps-denied-cargo-ugv,
  author  = {Sadik, MD. Taki Yasir Faraji},
  title   = {GPS-Denied Cargo Ground Vehicle Build Guide},
  year    = {2026},
  url     = {https://tyfsadik.org/work/defence/gps-denied-cargo-ugv.html},
  urldate = {2026-10-24}
}

APA

Sadik, M. T. Y. F. (2026). GPS-Denied Cargo Ground Vehicle Build Guide. TYFSADIK. https://tyfsadik.org/work/defence/gps-denied-cargo-ugv.html