-
Notifications
You must be signed in to change notification settings - Fork 184
chore(mono): Merge chore_release-8.4.0-alpha.8
into edge
#18222
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
Conversation
Closes RQA-4156 When LPCing a labware in a module slot, the "Prepare deck for LPC" view's deck map currently renders the actively LPC'd labware above all modules and not just the module of interest. To fix, we only render the LPC'd labware above the module with an id that matches the location-specific module id.
We altered modules to not be eventually loaded on deck slots on the Flex, so we could better support the stacker providing two addressable areas per module. This had an unexpected knock-on effect of making get_ancestor_slot() not a good fallback if we ran out of depth to check in get_labware_grip_point(), and protocols that called that function (e.g. by calling move_labware) on a location that consisted of a stack of more than one labware on a module (so, moving something on to or off of a labware on an adapter on a module) would give you a deck configuration conflict, since get_ancestor_slot would request a slot but the module is there instead. There is a larger fix for this - geometry needs to be more broadly overhauled to work on location sequences throughout - but for now we can make duals of the recursive pointer-chasing symbolic geometry resolvers that work based on the "everything ends up on an addressable area" assumption. Particularly notable is modules - there was some very weird stuff in here to make code that was intended for the OT-2 and geometry from the module defs continue to work on Flex and geometry that is based on the deck def addressable area coordinates, which was causing a lot of complexity in get_labware_grip_point(). By changing the module get_nominal_position() (or really making a new one) that returns the offset of a child labware _from the nearest addressable area_ (i.e. 0-vec on the flex) instead of from the underlying deck slot, we can eliminate a whole lot of logic. Also, we can eliminate a call to one of these altered and possibly problematic functions in the gripper tip error checking by just poking through and doing the underlying math. I thought this was going to be more necessary when I was looking at this first, because I thought I was going to change `get_labware_grip_point()` more than I ended up doing, but I still think it's a good idea to not call it there. ## review requests - does this seem safe and adequately covered for regression? ## testing - [ ] set up a protocol that loads a labware on a labware on a module, and try and gripper move something to and from it. this needs a fake labware that allows stacking. Closes RQA-4153 --------- Co-authored-by: Max Marrone <max@opentrons.com>
Avoid some previous uncommanded raises in Z while executing resin tip commands. These were caused by some unnecessarily high motions and because the seal command didn't set the pipette locations tate update, so the subsequent motions would run as-if moving between labware, raising the z stage up to clear labware in between. There was also an issue that required a slight refactor in `drop_tip`. Our drop-tip functionality tries to position the pipette such that the tip is somewhat inside the target well. This is based on multipliers that are specific to the pipette and the tips, since we don't support custom tips - we get to tune them in for ours. Well, these aren't our tips, and to the system they're not really tips at all: we forbid using tips as labware, and that's what resin tips are, so they can't be tips. This added up to making the drop-tip (or, unseal in this case) functionality drop the tips from way above the labware and they'd go everywhere. By overriding the function that provides the default drop tip location, we can make this all work properly, and since we don't override it in any other circumstances, we won't break the non-resin-tip drop. ## review - good enough? ## testing - [x] on 8 channel and 96 channel make sure that a straightforward seal-dispense-unseal routine doesn't move high above the labware Closes EXEC-1467
chore_release8.4.0-alpha.8
into edge
chore_release8.4.0-alpha.8
into edge
chore_release-8.4.0-alpha.8
into edge
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## edge #18222 +/- ##
==========================================
- Coverage 57.49% 57.48% -0.01%
==========================================
Files 3043 3043
Lines 255239 255276 +37
Branches 30503 30516 +13
==========================================
+ Hits 146742 146751 +9
- Misses 108311 108338 +27
- Partials 186 187 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
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.
LGTM!
Overview
Incremental mergeback into edge on the alpha.8 cut.
Most of these conflicts were ER related. The rest were straightforward.
Conflicts in the following:
Review requests
If explictly tagged as a reviewer, a quick once-over would be nice!