Skip to content
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

Merged
merged 8 commits into from
Jul 29, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,11 @@ 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
# Move pipette away if it is close to the heater-shaker
if self._state_view.motion.check_pipette_blocking_hs_latch(
hs_module_substate.module_id
):
# TODO(jbl 2022-07-28) replace home movement with a retract movement
await self._movement.home(
Copy link
Member

@sanni-t sanni-t Jul 28, 2022

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.

[
MotorAxis.RIGHT_Z,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@ 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
# Move pipette away if it is close to the heater-shaker
if self._state_view.motion.check_pipette_blocking_hs_shaker(
hs_module_substate.module_id
):
# TODO(jbl 2022-07-28) replace home movement with a retract movement
await self._movement.home(
Copy link
Member

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.

[
MotorAxis.RIGHT_Z,
Expand Down
4 changes: 2 additions & 2 deletions api/src/opentrons/protocol_engine/state/motion.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ def get_movement_waypoints_to_coords(
def check_pipette_blocking_hs_latch(
self, hs_module_id: HeaterShakerModuleId
) -> bool:
"""Check if pipette would block h/s latch from opening."""
"""Check if pipette would block h/s latch from opening if it is easy, west or on module."""
jbleon95 marked this conversation as resolved.
Show resolved Hide resolved
pipette_blocking = True
current_well = self._pipettes.get_current_well()
if current_well is not None:
Expand All @@ -199,7 +199,7 @@ def check_pipette_blocking_hs_latch(
def check_pipette_blocking_hs_shaker(
self, hs_module_id: HeaterShakerModuleId
) -> bool:
"""Check if pipette would block h/s latch from starting shake."""
"""Check if pipette would block h/s latch from starting shake if it is adjacent or on module."""
pipette_blocking = True
current_well = self._pipettes.get_current_well()
if current_well is not None:
Expand Down