Update Preapre To Add an Algorithm Checklist authored by shibohan's avatar shibohan
# Purposed Algorithm Pipeline:
[@shibohan Note to Self: Keep up-to-date]
## Class Structure:
- Create skeleton Class structure
- How classes interacts?
- Determine public interface/fields
- Need runner thread?
## Stages:
### Collect & Evaluation
- Process lidar data:
- Want sector data (e.g. per 1 degree) OR raw data?
- Need speed correction? (consider vehicle speed and lidar scan cycle timespan)
- Need orientation correction? (consider drone's incline angle)
- Unified unit for data? (e.g. m/cm/mm)
- Data filtering and post-processing
- Need intermediate data storage?
- Process RSC data:
- TODO
- Process CNC data? (e.g. vehicle speed, altitude)
- TODO
- What's the precondition for this algorithm to run?
### Planning
- Pure algorithmic stage
- Add summaries of major steps here.
- Can those steps be developed at the same time? (e.g. maybe fake out some data using unittest)
- Can those steps run at the same time? (or decomposite e.g. 360 degree into 3*120 degree parallel)
- Results to instruction for drone
- Possible PID utility
- Perhaps using gain/weight?
- Algorithm specific
- Generate Command Queue:
- List commands you need (e.g. Something simple like: goto relative position, change altitude. Something complex like: wait until arrive at)
- Will planned command queue have Delay commands?
- Generate Data Queue:
- Rules for confidence
- Any additional data you want OAC to know? (e.g. in the future: display a msg on debug overlay)
- Feed results back to OAController
### Execution
- Handled by OAC
- Do you need to monitor the execution?
\ No newline at end of file