Skip to content

i15-1: Initial Robot Device #1863

@DominicOram

Description

@DominicOram

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:

  1. Stop the spinner (maybe, needs discussion with scientist on when they're using the spinner)
  2. Pick a sample up from hotel by:
    1. Setting program name PUCK.MB6
    2. Setting position/puck
    3. Running the program
    4. Wait for the program to start/stop
    5. Check error state
  3. Place the sample on the beamline by running the BEAM.MB6 program
  4. Setting the picked locations on the management PVs (BL15J-EA-LOC-01:SAMPLE:INDEX and BL15J-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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions