How buaa-transistor-alg/unifiedautoaimpipeline works
This is a unified auto-aim application with Armor and PowerRune perception modes, selectable camera/video/interactive input, and none/visualize/gimbal output. The main workflow acquires frames, processes them through the selected perception pipeline, then uses its target predictor for ballistic aiming and output. The pipelines share asynchronous stage scheduling, inference-process communication, coordinate transforms, and output infrastructure. The README is empty; the documented pipeline contracts support the main stage relationships, but unsampled implementation details are not expanded.
Main entry points: ArmorPipeline.cpp Armor Pipeline · PowerRunePipeline.cpp PowerRune Pipeline · main.cpp Runtime Orchestrator · Output Output Modes
Components 21
Application
- Runtime Orchestrator
src/main.cpp - Input Modes
src/common/Input
Armor Perception
- Armor Pipeline
src/Armor/ArmorPipeline.cpp - Armor Detect / PnP
src/Armor - Armor Tracking
src/Armor/EKF
PowerRune Perception
- PowerRune Pipeline
src/PowerRune/PowerRunePipeline.cpp - Rune Detect / Pose
src/PowerRune - Rune Filtering / Prediction
src/PowerRune
Shared Runtime
- Stage Scheduler
include/common/PipelineStage.h - Inference Client
src/common/Infer/InferShmClient.cpp - Process Manager
src/common/Infer/InferProcessManager.cpp - Inference Processes
src/Infer - Transform Tree
src/common/TransformTree - Pipeline Result
include/common/PipelineResult.h
Aiming Outputs
- Ballistic Prediction
src/common/Ballistic/SequencePredictor.cpp - Output Modes
src/common/Output - Visualization
src/common/Output/VisualizeOutput.cpp - Gimbal Output
src/common/Output/GimbalOutput.cpp
Other components
- Operator
- Camera / Scene
- Robot Controller
Connections 25
- Operator → Runtime Orchestrator: selects modes
- Camera / Scene → Input Modes: provides frames
- Input Modes → Runtime Orchestrator: supplies frames
- Runtime Orchestrator → Armor Pipeline: feeds selected pipeline
- Runtime Orchestrator → PowerRune Pipeline: feeds selected pipeline
- Armor Pipeline → Stage Scheduler: schedules stages
- PowerRune Pipeline → Stage Scheduler: schedules stages
- Armor Pipeline → Inference Client: requests inference
- PowerRune Pipeline → Inference Client: requests inference
- Inference Client → Inference Processes: exchanges shared-memory data
- Process Manager → Inference Processes: starts / restarts
- Armor Pipeline → Armor Detect / PnP: runs detection and pose
- Armor Pipeline → Armor Tracking: filters targets
- PowerRune Pipeline → Rune Detect / Pose: runs detection and pose
- PowerRune Pipeline → Rune Filtering / Prediction: filters and predicts
- Armor Pipeline → Transform Tree: syncs transforms
- PowerRune Pipeline → Transform Tree: syncs transforms
- Armor Pipeline → Pipeline Result: assembles perception and predictor
- PowerRune Pipeline → Pipeline Result: assembles perception and predictor
- Runtime Orchestrator → Pipeline Result: retrieves frame result
- Runtime Orchestrator → Ballistic Prediction: supplies target predictor
- Runtime Orchestrator → Output Modes: dispatches result
- Output Modes → Visualization: renders when selected
- Output Modes → Gimbal Output: aims when selected
- Gimbal Output → Robot Controller: reads state / sends control