How udit-agarwal20/avr-map works
AVR-Map combines a portable C++ adaptive LiDAR-mapping core with the AVR Console, a frozen operator-inspection demo, and offline recorded-sequence benchmarking. The mapping workflow accepts a frame, builds evidence, chooses resolution with policy and temporal hysteresis, updates a persistent hierarchy using cached observations for replay/refinement, and can expose dynamic and semantic cues. The Console selects demo scenarios and visualizes perception, resolution and dynamics alongside comparison, diagnostics, configuration and benchmark views. ROS 2 adapters and production inference are planned, not present. Some frontend and benchmark wiring is inferred only from names and documented scope; unsampled internals are not asserted.
Main entry points: persistent_adaptive_frame_pipeline.cpp Frame Pipeline · pages Operator Views · main.cpp Benchmark Runner · PerceptionViewport.tsx Perception Viewport
Components 24
Mapping Core
- Frame Pipeline
backend/cpp/avr_mapping_core/src/persistent_adaptive_frame_pipeline.cpp - Frame Evidence
backend/cpp/avr_mapping_core/src/frame_evidence.cpp - Resolution Policy
backend/cpp/avr_mapping_core/src/resolution_controller.cpp - Resolution Hysteresis
backend/cpp/avr_mapping_core/src/resolution_hysteresis.cpp - Semantic Provider
backend/cpp/avr_mapping_core/include/avr_mapping/semantic_provider.hpp - Dynamic Clustering
backend/cpp/avr_mapping_core/src/dynamic_clusterer.cpp - Adaptive Map
backend/cpp/avr_mapping_core/src/persistent_adaptive_map.cpp - Observation Cache
backend/cpp/avr_mapping_core/src/recent_observation_cache.cpp - Spatial Primitives
backend/cpp/avr_spatial
Offline Evaluation
- Sequence Loader
backend/cpp/avr_benchmark/src/sequence.cpp - Benchmark Runner
backend/cpp/avr_benchmark/src/main.cpp - Benchmark Artifacts
backend/cpp/avr_benchmark/src/artifacts.cpp - Recorded-Input Tools
tools/recorded_sequence_adapter.py
AVR Console
- Console Routes
frontend/src/App.tsx - Operator Views
frontend/src/pages - Console State
frontend/src/stores/useConsoleStore.ts - Frame Runtime
frontend/src/runtime/PerceptionFrameRuntime.ts - Demo Scenarios
frontend/src/demo/scenarios.ts
Scene Inspection
- Perception Viewport
frontend/src/visualization/PerceptionViewport.tsx - Perception Scene
frontend/src/visualization/PerceptionScene.ts - Camera Controls
frontend/src/visualization/camera/CameraController.ts - Comparison Canvas
frontend/src/visualization/ComparisonCanvas.ts
Other components
- LiDAR Frames
- Recorded Sequence
Connections 22
- LiDAR Frames → Frame Pipeline: submits frames
- Frame Pipeline → Frame Evidence: builds evidence
- Frame Pipeline → Semantic Provider: requests inference
- Frame Pipeline → Resolution Policy: decides resolution
- Frame Pipeline → Resolution Hysteresis: previews policy
- Frame Pipeline → Adaptive Map: fuses and refines
- Frame Pipeline → Observation Cache: stages observations
- Frame Pipeline → Dynamic Clustering: extracts dynamics
- Frame Pipeline → Spatial Primitives: uses grid operations
- Recorded Sequence → Recorded-Input Tools: provides input
- Recorded-Input Tools → Sequence Loader: adapts sequence
- Benchmark Runner → Sequence Loader: loads sequence
- Benchmark Runner → Benchmark Artifacts: writes results
- Benchmark Runner → Frame Pipeline: benchmarks mapping
- Console Routes → Operator Views: routes views
- Operator Views → Console State: reads and updates
- Console State → Frame Runtime: selects scenario
- Frame Runtime → Demo Scenarios: uses demo data
- Operator Views → Perception Viewport: presents perception
- Perception Viewport → Perception Scene: renders scene
- Perception Viewport → Camera Controls: controls camera
- Operator Views → Comparison Canvas: compares views