Closed KathrynBaker closed 6 years ago
Contact @jonelmer if we need specific details.
From a code chat the following needs to be done as part of this ticket to make the collision detection software into a MVP, in order of priority:
The following would be nice to do as part of the MVP:
The following are features that would be useful for further development:
This ticket will be timeboxed to 3 days, create new ticket(s) for any of the above that does not get completed.
Putting back to ready until I've finished some other tasks in case someone has time before me
I've reached the end of my timebox on this issue.
What I've done:
main PR is here: https://github.com/ISISComputingGroup/EPICS-inst_servers/pull/156/files genie_python dependencies here: https://github.com/ISISComputingGroup/genie_python/pull/122
To explain the image above:
The code cleanup Tom has done looks good, but I can't mark this ticket as complete until the basic collision avoidance is more reliable.
I am concerned about this. From the above description, I am unsure as to how we are determining whether there has been a collision or not.
My first thought is to try testing at lower speed, or adjusting the oversize parameter.
The motors do stop before they reach their assigned target positions, it's just not soon enough. I suspect at lower speeds it would stop in time, but I'm not happy giving the green light to a collision system that only works in a subset of our parameter space. I don't think the relative speed of the blocks was unreasonable (30s-60s to reach each other from their starting position)
Having just discussed with Kevin and Kathryn, the expectation is that the parameters that ZOOM use may be sufficient for the CDS to stop the motors in time. However, we don't know the extent of the parameter space where the CDS can be trusted, which introduces a very high degree of uncertainty for instruments who want to use it.
It was suggested that the CDS could be accepted in its current form, the limitation can be documented and communicated to scientists. I think that leaves a high risk of it being forgotten and leading to a collision somewhere down the line. In spite of any warnings we might deliver, the CDS is likely to be blamed. If we are to go down that route, I think we need to very explicitly warn people via the software, on each use, that the CDS has limited capacity.
I don't know what the oversize parameter is, I only approached this ticket from a testing point of view. Is it fixed? It seems to me that a sensible oversize parameter should be a function of speed and deceleration. If it is a fixed number then it will always be limited in its capacity to predict the necessary stopping distance. If it's variable then its current formulation isn't accurately predicting the necessary oversize.
I will arrange a meeting with Tom, John and me for next week so we can discuss this issue.
I think this meeting needs to establish the following things:
Once we are happy that it is OK to deploy the CDS, we also need to do the following:
The scientists have a duty to use the equipment safely and within operational parameters. We (computing controls & motion control) have a duty to make sure the scientists know what the operational boundaries are. If we need to put some warning text on the GUI (e.g. saying don't change parameters unless you know what you are doing), we should do so.
The meeting has already happened I'm afraid, but I can summarise the discussion and comment as far as possible on the points above.
To summarise:
To answer your questions specficially @Kevin-Woods-Tessella
As on the pull requests, I'm happy for the existing code to be merged. It causes not obvious changes in the behaviour of the system, but reduces the technical debt significantly. There is a ticket for addressing the remaining debt.
Contrary to the name of the ticket, the system has already been rolled out on ZOOM in its existing form as part of the maintenance day activities of this cycle. There is therefore little to no risk of further impact from merging the code.
In terms of actions:
As actions from the meeting:
I hope that clarifies the situation. As the remaining functional part of this ticket is purely the merging of @Tom-Willemsen's pull request, I am happy to merge it once the above changes have been made. If there is additional discussion needed about the requirements and future scope of this sub project then I recommend it take place outside of this ticket.
@AdrianPotter - thanks for the clarifications. These address my concerns. I agree with @jonelmer 's argument that the CDS should be seen as strictly "a monitoring and avoidance system". I think the suggested name - "dynamic limit monitor" is a little too obscure. Perhaps we could call it something like "collision assessment monitor" (or similar)
Suggested enhancements for the CDS were originally proposed in #2040. These have now been moved to the CDS Wiki page.
For future reference: The schematic of ZOOM from the office white board
I have cross-referenced with the wiki. If we could just decide and update the name then I will merge and close the ticket.
In terms of the name. Collision Assessment Monitor is fine with me (also has the abbreviation CAM which is better than CDS or DLM)
OK. Decision made - let's go with CAM.
This has been tested on the live system, and a new ticket (#3220) has been created to investigate and solve that problem, the system as it currently is is certainly usable and appropriate for use on ZOOM for the time being, with one minor change required. The Oversize is currently set to 5, and a setting of 8 is more appropriate given the difference in location of the actual ends of the bump stop triggers, and so the value in the configuration needs updating to reflect that.
As someone concerned with the motion on ZOOM I want to be able to automate the soft limits on the detector and baffle axes to avoid triggering the bump strips in standard operation of the system.
Acceptance Criteria