-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
To be able to load/unload samples for the waffle project we will need a robot device. The robot is currently controlled via a script in /dls_sw/i15-1/scripts/rigs_local/positioners/robot.py. There is quite a bit of complexity there around collision avoidance, ispyb interactions and checking if pucks have lids. This issue is to just do the minimum required to load a sample from a given position/puck assuming that the beamline is in a happy state e.g. no collisions possible and the puck is available.
To do this we will need to:
- Stop the spinner (maybe, needs discussion with scientist on when they're using the spinner)
- Pick a sample up from hotel by:
- Setting program name
PUCK.MB6 - Setting position/puck
- Running the program
- Wait for the program to start/stop
- Check error state
- Setting program name
- Place the sample on the beamline by running the
BEAM.MB6program - Setting the picked locations on the management PVs (
BL15J-EA-LOC-01:SAMPLE:INDEXandBL15J-EA-LOC-01:PUCK:INDEX) - this may make sense as another device
We should also get controls involved as we may be able to push some more of this into a lower level. e.g. differences with MX are:
- There would be just one robot load that does the whole of the above
- The robot would be interlocked on the motion of potential collisions
- The robot would be interlocked on a sensor saying if the sample is already up
- The robot would report sample/puck index itself
Acceptance Criteria
- There is a bluesky plan that, given the beamline is in a happy path state, we can call to do a robot load
Metadata
Metadata
Assignees
Labels
No labels