How pearwpi/asternav works
AsterNav is a darkness-capable aerial navigation system built around structured-light depth estimation. Its workflow generates synthetic image/depth pairs, trains AsterNet, optionally converts it for TensorRT, then estimates depth from onboard imagery, plans obstacle-avoiding motion, and sends commands to a Pixhawk via MAVLink. The README documents the major capabilities; unsampled source limits details of dataset internals, camera wiring, and runtime data handling.
Main entry points: train.py Training pipeline · autonomous_navigation.py Navigation runtime · convert_to_trt.py TensorRT conversion · infer_depth.py Depth estimator
Components 15
Data and training
- Base images and PSFs
- Synthetic data generator
Training/datagen.py - Image/depth dataset
Training/datagen.py - Training pipeline
Training/train.py - AsterNet model
Training/model.py - Model checkpoint
Depth inference
- TensorRT conversion
Inference/convert_to_trt.py - TensorRT engine
- Depth estimator
Inference/infer_depth.py - Inference utilities
Inference/utils.py
Autonomous flight
- Onboard camera
- Navigation runtime
Inference/autonomous_navigation.py - Potential-field planner
Inference/planner.py - MAVLink controller
Inference/mavlink_controller.py - Pixhawk drone
Connections 16
- Base images and PSFs → Synthetic data generator: provides inputs
README.md - Synthetic data generator → Image/depth dataset: generates pairs
README.md - Training pipeline → Synthetic data generator: runs generation
Training/train.py - Training pipeline → Image/depth dataset: loads training data
Training/train.py - Training pipeline → AsterNet model: trains
Training/train.py - Training pipeline → Model checkpoint: saves weights
README.md - TensorRT conversion → AsterNet model: loads architecture
Inference/convert_to_trt.py - TensorRT conversion → Model checkpoint: loads weights
README.md - TensorRT conversion → TensorRT engine: exports engine
README.md - Onboard camera → Navigation runtime: provides frames
Inference/autonomous_navigation.py - Navigation runtime → Depth estimator: requests depth
Inference/autonomous_navigation.py - Depth estimator → TensorRT engine: runs optimized model
README.md - Depth estimator → Inference utilities: uses backend utilities
Inference/infer_depth.py - Navigation runtime → Potential-field planner: requests motion plan
Inference/autonomous_navigation.py - Navigation runtime → MAVLink controller: queues flight commands
Inference/autonomous_navigation.py - MAVLink controller → Pixhawk drone: sends MAVLink
Inference/mavlink_controller.py