-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[uss_qualifier] Add flight intent validation and fix conflict same priority scenario #393
[uss_qualifier] Add flight intent validation and fix conflict same priority scenario #393
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great improvement, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one comment that came to me afterwards: the validation that an activated intent has a volume that covers "now" does not seem to exist anymore, or am I missing something?
Ah, good point. Added, and that revealed a potential problem if tests took a long time which is also resolved now. |
(Sorry to barge into the conversation, I just ran into something that reminded me of what you are mentioning: -> are you referring to what is happening in down_uss.py?) |
Yep it is indeed this sanity check I was talking about |
…iority scenario (interuss#393) * Add flight intent validator * Fix conflict equal priority scenario * Make flight names proper in conflict higher priority * Remove stray KML * Update hash * Add time validation for in-use flight plans ac17e69
This PR primarily adds generic flight intent validation that accepts declarations of needed flight intents (rather than making direct imperative statements as we currently do) and migrates the two nominal planning scenarios to use this new validation approach. In the future, these declarations may even be read directly from the documentation, as they (should) match the flight intents tables exactly.
However, when using this new validation, I discovered that part of the conflict-same-priority scenario didn't work as expected, and actually couldn't work as documented -- the documentation for the last test case claimed to activate Flight 1c (left from the previous test case) or nothing into Flight 1, but that could not happen because Flight 2 was still present and would have caused a disallowed conflict. This impossibility was hidden by a second bug where different intents than expected were being used in code. This PR also fixes that issue by deleting Flight 2 at the end of the penultimate test case, planning Flight 1 into empty airspace, then planning a smaller (non-conflicting) Flight 2m. This then sets the stage for the original plan of modifying Flight 2 to non-conforming to achieve a same-priority conflict with Flight 1. To do this, one new intent is created and provided (equal-priority Flight 2m: equal_prio_flight2m_planned).
To work toward avoiding similar future bugs, this PR also ensures consistency when referring to the various flights. First, they are all treated as proper names ("Flight 1, Flight 2, Flight 1c, etc" rather than "flight 1, flight 2, etc"). Second, any flight form differences other than state are noted explicitly ("Flight 1c" rather than "Flight 1" with a qualitative descriptor).