2023-05-17: ZP and LOS Discussion
Goals
Discuss the future of ZP and LOS. Specifically the issues we encountered last season and how we can simplify in an effort to ease development, decrease complexity, and get something flying.
Previous Issues with LOS and ZP
Takes a long time to set up (Submodule download, cmakefile issue)
Fatal flaw: LOS contained the MOST project specific thing (boardfiles) which led to really bad DMA issues
Dealing submodules was just annoying and confusing
Historically, whenever we have these types of discussions, we are so focused on future proofing which greatly increases complexity
Unordered folders/files.
Config driver files and lack of documentation for additions to that
Solution Requirement
Simplicity is Key:
Support multiple IOCs (mainly L5 nucleo, ZP, and possible F401RE)
Either IDE or Cmake
Strong recommendation against submodules (one repository for managers, drivers, and boardfiles)
Proposed Solutions
/Models
/Icurus
/Houston
/System_manager
/Attitude_manager
/Path_manager
/Telemetry_manager
/Drivers
/Boardfiles
/L5nucleo
/ZP
/F401re
Cmake.make
make a config for each board + drone config as needed
only support 1 airframe?
How are we going to deal with multiple air frames to work with multiple boardfiles?
who is going to be setting up/interacting with configs?
is it okay to be complex in our build system?
can automation simplify this?
Milestones
Raw Control Fixed Wing
SBUS or PPM input driver
PWM output
Arm/Disarm
RSSI/Watchdog
Assisted Raw Control Fixed Wing
Sensor fusion and AHRS
IMU driver
Integration between a) and b)
Simple Attitude manager (could be simple function)
Pilot assist features on fixed wing
Altitude hold/ “fly by wire” modes
Additions to attitude manager
…
…
…
x.
Note: What milestone for fixed wing is enough to transition to multicopter development?
Action Items:
finalize the directory structure / build / config set up
Fully define milestones (deadlines, testing dates, make more milestones)
when to start multirotor development
Next meeting date: 8 oclock est 18th May, 2023
Appendix Lol
HandleType_UART GPS_UART = huart2;
abstract class Airspeed
in config.h for Icarus
Airspeed airspeed = MP6005();
in path manager
#include config.h
airspeed.get_Speed();