How satyak99108/idr works
IDR combines offline Python navigation pipelines, a sensor-agnostic edge engine, and a native Android navigation app. The principal workflow takes IMU and optional GNSS readings through preprocessing, velocity/motion estimation, inertial navigation and GNSS fusion, then optional road-map matching to produce a vehicle position and navigation state. README architecture supports the edge adapter-to-engine-to-client flow; sampled excerpts confirm the Python pipeline’s fusion orchestration and the map matcher’s fusion-output input. Other subsystem links are omitted where source wiring was not sampled.
Main entry points: engine.py Python Pipeline · MainActivity.kt Navigation UI · fusion_engine.py GNSS-INS Fusion · DeadReckoningEngine.kt Android DR Engine
Components 26
Sensors and Data
- Data Preparation
src/preprocessing
Navigation Estimation
- Python Pipeline
src/pipeline/engine.py - Motion Classification
src/motion/classifier.py - Velocity Model
src/ai/model.py - AI Training and Quantization
src/ai - Inertial Navigation
src/ins - GNSS-INS Fusion
src/fusion/fusion_engine.py - Navigation EKF
src/fusion/ekf.py - GNSS Mode Management
src/fusion/mode_manager.py - HMM Map Matching
src/map_matching/matcher_engine.py - Road Network
src/map_matching/road_graph.py
Edge Streaming
- Sensor Contracts
edge/contracts.py - Phone Adapter
edge/adapters/smartphone_adapter.py - External IMU Adapter
edge/adapters/external_imu_adapter.py - Edge Engine
edge/core.py
Android App
- Navigation UI
android/app/src/main/java/com/idr/navigation/ui/MainActivity.kt - Android Sensor Providers
android/app/src/main/java/com/idr/navigation/sensor - Android DR Engine
android/app/src/main/java/com/idr/navigation/core/DeadReckoningEngine.kt - Android Mode Manager
android/app/src/main/java/com/idr/navigation/core/NavigationModeManager.kt - On-device Velocity Inference
android/app/src/main/java/com/idr/navigation/ai/TFLiteVelocityEstimator.kt
Calibration and Evaluation
- Sensor Calibration
src/calibration - Outage Simulation
src/simulation/outage_simulator.py - Performance Evaluation
src/evaluation
Other components
- Vehicle / Sensors
- Recorded Dataset
- Navigation Client
Connections 26
- Vehicle / Sensors → Phone Adapter: supplies phone data
- Vehicle / Sensors → External IMU Adapter: supplies IMU data
- Phone Adapter → Sensor Contracts: creates packet
- External IMU Adapter → Sensor Contracts: creates packet
- Sensor Contracts → Edge Engine: provides input
- Edge Engine → Navigation Client: emits navigation output
- Recorded Dataset → Data Preparation: loads data
- Data Preparation → Python Pipeline: provides prepared data
- Python Pipeline → GNSS-INS Fusion: runs fusion
- GNSS-INS Fusion → Navigation EKF: updates state
- GNSS-INS Fusion → GNSS Mode Management: manages modes
- Python Pipeline → HMM Map Matching: supplies fusion results
- HMM Map Matching → Road Network: uses road network
- Python Pipeline → Motion Classification: classifies motion
- Python Pipeline → Velocity Model: estimates velocity
- AI Training and Quantization → Velocity Model: trains or quantizes
- Recorded Dataset → Sensor Calibration: supports calibration
- Recorded Dataset → Outage Simulation: provides trajectory
- Outage Simulation → Performance Evaluation: generates test outages
- Python Pipeline → Performance Evaluation: provides navigation results
- Vehicle / Sensors → Android Sensor Providers: provides live readings
- Android Sensor Providers → Navigation UI: provides sensor frames
- Navigation UI → Android DR Engine: updates navigation
- Android DR Engine → Android Mode Manager: updates mode
- Navigation UI → On-device Velocity Inference: uses inference
- Android DR Engine → Navigation UI: provides position