-
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/scenarios/utm] Fix #178 #214
Conversation
Note 1I think it will be important to update the content of Modify activated flight with pre-existing conflict test case -- specifically, first, Modify activated flight 1 in conflict with activated flight 2 test step. Currently, it seems to say the modification must be accepted and doesn't seem to clarify the changes to the implementation in this PR (not supported being ok). Also, the following step indicates definitively "The first flight should have been modified", but it seems like that's not true if the USS indicates NotSupported in the previous step. I think we'll want to clearly explain what is expected from the modification attempt:
I think (i) above is probably not valid, but (ii) seems valid and compliant and I'm not sure how we could differentiate between (i) and (ii). (iii)a makes me very uneasy and I think is against the spirit of F3548 (4.3.1: "An operational intent is a volume-based representation of a UAS flight used to define the airspace and time bounds intended to contain the flight." -- if the op intent is removed when the aircraft is known or reasonably expected to be outside it, the op intent can't be intended to contain the flight). But, (iii)b seems reasonable given the limitations of the USS implementation. So, I'm actually not sure we can fail any checks based on the USS's response to our request that it modify the flight in conflict. I think it perhaps is fair to fail the (iii)a situation, which we can detect if 1) the USS indicated Reject and 2) the operational intent disappeared (in fact, any disappearance of the operational intent at this point might indicate the same kind of problem, but that seems arguable). Note 2Given the above and the fact that we might encounter NotSupported, it seems like we don't have a known state going into Attempt to modify activated flight in conflict test case. Flight 1 could be in the original conflicting state, or the new conflicting state, or perhaps missing (depending on whether we check against (iii)a). We'd want to explain how the check is still valid for all those circumstances if we allow all of them. |
Thanks a lot for the details. Indeed I went a bit fast on the fix and forgot to update the scenario .md, I only updated the test step .md. I have a few clarifying questions before going ahead:
|
I was just trying to come up with situations in which a USS would indicate Rejected when trying to change a flight in pre-existing conflict -- this example was just a somewhat-contrived implementation where the USS wouldn't allow a user to make that change because they set things up so that change would be unnecessary (by requiring operators to include a backup plan when planning). The purpose of this thought exercise was to determine whether Rejected would necessarily be due to some problem or mistake the USS made. I think my tentative conclusion is that we can't necessarily conclude that the USS is doing something wrong/violating some requirement if it indicates Rejected here.
That (creating an operational intent before deleting the old one) would be the approach that leads to iii.b., and I agree that's certainly what the spirit of the standard intends. If the USS has the responsibility to not leave a flight without an operational intent, that responsibility would come from a requirement that all flights are encompassed in operational intents (in other words: F3548 is being used) and the requirement to use F3548 would come from the regulatory authority rather than F3548 because F3548 can't mandate that USSs use F3548. So, I think we need to have an automated testing requirement that substitutes for that regulatory requirement if we want to claim that failing to cover a flight with an operational intent, or failing to maintain an operational intent for a flight, is not allowed. The requirement would probably go something like: "For InterUSS to effectively test the requirements of ASTM F3548-21, a USS under test must act as if there is a regulatory requirement requiring all flights it manages to provide operational intents according to ASTM F3548-21 at all times for all flights it manages." I intend to clean up and elaborate on our F3548-related requirements soon like I recently did for our F3411-related requirements.
In the nominal case for the current scd automated testing interface, yes -- if a USS achieved flight modification by deleting the existing operational intent and then creating a new operational intent, it would simply return the new op intent ID and everything should work fine. But iii.b. is an example of when it would impossible for the USS to update the operational intent with a pre-existing conflict. It's impossible in iii.b. because the USS's system only supports the delete-then-create approach, and F3548 prescribes there can be no creation in the iii.b. situation, even though direct modification would be allowed by F3548. Regulators could mandate that USSs support modifications in pre-existing conflict situations such as these, in which case the USS that only supports delete-then-create would be in violation of that regulatory requirement. But, F3548 doesn't establish a positive requirement to support this ability -- it only prescribes NOT doing unsafe things. I would have to review the standard again to be sure, but I think a USS that simply refused to ever plan any flight would fully satisfy all F3548 requirements because F3548's goal is to achieve safety rather than ensuring each USS provides a certain level of utility. The thought was that USSs will compete to provide useful services to their customers/operators, so there is no need to mandate the things they can do, only the things they can't do (namely: those things that would result in an unacceptable decrease in safety). The way we'd fail a non-planning USS during testing is with the ExpectedBehavior automated testing requirement (to be refined, as noted above). |
This should fix #178 by allowing
NotSupported
result from the USS when we are attempting to modify an activated flight intent with a pre-existing conflict in the nominal planning scenario.Additionally:
FlightCoveredByOperationalIntent
and associated check when validating the sharing of the op intentsubmit_flight_intent