Technical Deep Dive
Under the Hood
How PathVynt's sensor fusion, prediction, and localization actually work — written for robotics engineers, not marketing teams.
Sensor Fusion
Kalman-based fusion with runtime drift correction
PathVynt's fusion engine maintains two separate state estimates: a rigid-body extrinsic transform between the LiDAR and camera frames, and a per-frame uncertainty covariance over that transform. Most fusion implementations treat extrinsic calibration as a static pre-deployment parameter. PathVynt treats it as a continuously-estimated quantity.
The temporal alignment problem — LiDAR scans at 10Hz, cameras at 30Hz, with non-negligible communication latency on each — is handled by maintaining a short history of sensor frames and selecting the nearest camera frame within a configurable latency window (default: 15ms). If no frame exists within that window, the fusion result is flagged with TEMPORAL_GAP status but not dropped, preserving pipeline continuity.
Extrinsic drift is modeled as a random walk over the SE(3) manifold. The covariance grows with time and resets (partially) when a stable scene feature cluster is detected. This works well for the vibration profile of warehouse AGVs and delivery robot chassis. Long-haul truck vibration profiles require a tighter process noise parameter, which is exposed in FusionConfig.drift_model.
Prediction
CVTR and social force approximation
Obstacle prediction uses a two-model blend depending on agent classification. Wheeled agents (forklifts, vehicles) use CVTR (Constant Velocity Turn Rate), a kinematic model that captures the arc dynamics of wheeled agents with low compute overhead. The turn rate is estimated from the last 3 frames of tracked centroid positions.
Pedestrian agents use a social force approximation — not the full Helbing model (computationally expensive for 20Hz update) but a simplified pairwise repulsion model that captures pedestrian-to-pedestrian avoidance and wall-following behaviors common in warehouses and loading docks.
Both models output a probability distribution over future poses at three horizons: 0.5s, 1.0s, and 2.0s. The risk score is computed as the probability mass within a configurable safety radius around the ego robot's planned trajectory at each horizon. Your planner's cost function receives a single RiskScore struct with per-horizon values and the responsible obstacle ID.
Localization
Map-relative localization without GPS
PathVynt's localization module uses LiDAR scan feature extraction (edge features and planar features from the LOAM decomposition) combined with keyframe matching against a pre-built map. The map is built from a single survey drive and stored as a compact keyframe database — typically 2-8MB per 100m of mapped corridor depending on feature density.
The particle filter update runs at 10Hz. Between updates, the pose estimate is propagated forward using wheel odometry or IMU integration if available, or using the last-known velocity estimate if not. Feature occlusion (robot partially blocked by a dynamic obstacle during scan) is handled by masking out the occluded angular sectors from the feature extraction step.
Dynamic reference updates allow the map to be patched without a full re-survey — useful for warehouse environments where rack configurations change. The patcher identifies which keyframes are affected by a change annotation and updates only those frames, preserving continuity of the pose estimate throughout the update.
Key Metrics
<15cm
Lateral accuracy in structured environments
70%
Feature occlusion tolerance before degraded mode
10Hz
Particle filter update rate
2-8MB
Keyframe map size per 100m of corridor
Performance
Typical measured values on reference hardware
All values measured on PathVynt v1.4 with recommended configuration profiles. Results are typical — exact values depend on scene complexity, sensor configuration, and OS scheduling.
| Hardware | Config Tier | Fusion Latency (p95) | Prediction Latency (p95) | Peak Memory | Occupancy Grid Res |
|---|---|---|---|---|---|
| Jetson AGX Orin 64GB | Full | 17ms | 8ms | 3.2GB | 5cm |
| Jetson AGX Orin 32GB | Full | 18ms | 9ms | 2.8GB | 5cm |
| Jetson Orin NX 16GB | Balanced | 26ms | 14ms | 1.6GB | 10cm |
| Jetson Orin NX 16GB | Low-power | 31ms | N/A (10Hz) | 1.1GB | 15cm |
| x86_64 + RTX 3060 | Dev/Eval | 12ms | 6ms | 4.1GB | 5cm |
Ready to evaluate PathVynt on your hardware?
Request a 90-day evaluation license and run the first fusion pass on your actual sensor rig.