-
Notifications
You must be signed in to change notification settings - Fork 178
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
feat(engine): move pipettes away if blocking heater-shaker open latch or start shake #11248
Conversation
Codecov Report
@@ Coverage Diff @@
## edge #11248 +/- ##
=======================================
Coverage 73.82% 73.82%
=======================================
Files 2090 2090
Lines 57754 57754
Branches 5864 5864
=======================================
Hits 42636 42636
Misses 13833 13833
Partials 1285 1285
Flags with carried forward coverage won't be shown. Click here to find out more.
|
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.
This looks great! Good to merge if tested on a dev server at least. Would probably need to be tested with emulator to check that home gets issued.
Just a couple of comment nitpicks
@@ -56,6 +60,17 @@ async def execute( | |||
# Verify speed from hs module view | |||
validated_speed = hs_module_substate.validate_target_speed(params.rpm) | |||
|
|||
# Check if pipette would block opening latch if adjacent or on top of module |
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.
# Check if pipette would block opening latch if adjacent or on top of module | |
# Move pipette away if it is close to the heater-shaker |
@@ -47,6 +51,17 @@ async def execute(self, params: OpenLabwareLatchParams) -> OpenLabwareLatchResul | |||
|
|||
hs_module_substate.raise_if_shaking() | |||
|
|||
# Check if pipette would block opening latch if east, west, or on top of module |
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.
# Check if pipette would block opening latch if east, west, or on top of module | |
# Move pipette away if it is close to the heater-shaker |
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.
I would specify the east/west location details in the docstring for check_pipette_blocking_hs_latch
. Just a soft preference.
if self._state_view.motion.check_pipette_blocking_hs_latch( | ||
hs_module_substate.module_id | ||
): | ||
await self._movement.home( |
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.
From the discussion w/ the group on Tuesday I think we to move towards using pipette retraction instead of homing both here and before thermocycler lid movements. So I'd leave a TODO here to switch to using pipette retraction.
if self._state_view.motion.check_pipette_blocking_hs_shaker( | ||
hs_module_substate.module_id | ||
): | ||
await self._movement.home( |
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.
Same TODO comment as above.
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.
Code changes look good to me and add tests are great! nice job! will try to test with the emulator
Overview
In protocol engine, adds check to
openLabwareLatch
andsetAndWaitForShakeSpeed
to determine if pipette is in an unsafe location for these operations. If they are (or location cannot be determined), the pipettes will home on the z-axisChangelog
openLabwareLatch
andsetAndWaitForShakeSpeed
commands if determined to be in unsafe or unknown locationMotionView
for determining if pipettes are blocking a shake or open latch commandtouchTip
and thermocycleropenLid
andcloseLid
commands not updating engine'scurrent_well
properlyReview requests
check_pipette_blocking_hs_shaker
andcheck_pipette_blocking_hs_latch
methods are both very similar, but I couldn't figure out a good method to combine them. Open to any ideas to reduce repeating ourselves there.Risk assessment
Medium, this only affects two commands but if z-axis homing does not work properly for all expected situations the pipette could be in a bad location when these operations start.