Allan Su + Ben Carnes (will ping him when he gets access to Asana)
We are looking to research if Gordon’s vector implementation would still be valid, or should we come up with completely new code for Path Manager zp 3.5, Assuming that the input comes from FreeRTOS queue, and show our approach.
Previous research we could refer, and possibly extend from:
Current Method
-Using vectors and way points
-The current vector implementation of the drone relies on ideal conditions for takeoff.
-Does not seem to use strong feedback loop to compare current position to goal, does not respond dynamically
PID Control Loop
We can better handle a changing environment if we add in some PID concepts into the implementation. We can adjust gradually the trajectories and get smoother acceleration and deceleration during takeoff or landing. This can also improve deviations, undershoots/overshoots. Given a set of waypoints assumed to be in a queue, we compare current position to the next waypoint. The error between the two position can be used to make corrective changes.
Model Predicative Control
Existing Information:
Landing Procedure
Takeoff Procedure
Functions
double getTakeoffAltitudeTarget(double currentAltitude);
When first called set the current height as ground, then return the takeoff altitude target (ground height + TAKEOFF_TARGET).
double getLandingAltitudeTarget(double currentAltitude);
This function returns the ground height set during takeoff and uses it as the target landing altitude.
AM::AttitudeManagerInput createLandingWaypoint(const LOS::LosSFData & input);
Calculates the waypoints that the drone should follow during landing. Missing horizontal components as of now.
AM::AttitudeManagerInput createTakeoffWaypoint(const LOS::LosSFData & input);
Returns the waypoints that should be followed for takeoff.
double getSpeedTarget(double currentAltitude, double rangeConstant);
Return desired climb speed for both landing and takeoff.
double getRangeConstant(double midpointAltitude);
Returns range constant to calculate velocity.
Question : Does PM output speed to AM? Or does AM computes the speed
Should still PM generate waypoints for landing/takeoff?
Useful Documents to look over:
https://liu.diva-portal.org/smash/get/diva2:1055556/FULLTEXT01.pdf
Add Comment