Update arm resource state after pickup#1162
Open
j0nch wants to merge 2 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This updates arm resource moves so the resource model reflects pickup/drop boundaries in real time instead of waiting for the full move to complete.
For both the new arm capability stack and the legacy
LiquidHandlerresource-move path:This allows downstream orchestration to safely react as soon as a source location is actually free. For example, a workflow can begin staging another resource to a handoff location once an arm has picked up the current resource, rather than waiting for the full pickup + travel + drop sequence to complete.
Legacy STAR/iSWAP release-width fix
While testing the legacy STAR/iSWAP path, we found one important detail: after early unassignment, legacy
STARBackend.drop_resource()could no longer reliably recompute the release width fromresource.get_absolute_size_x/y(), because the resource no longer had its source/carrier rotation context.This branch now captures
resource_width_at_pickupin the legacyResourcePickup/ResourceDropflow and uses that captured width for the iSWAP drop release width. This matches the new capability path, which already carries held-resource width state.Without this, some rotated/source-context-dependent moves could release at a width derived from the wrong resource axis instead of the actual gripped width.
Tests
LiquidHandlertests covering source unassignment after pickup, destination assignment after drop, and preservation of pickup-time release width after source unassignment.Locally run:
Also ran the targeted legacy
TestLiquidHandlerSerializeStatesuite locally; all targeted tests passed.Hardware validation
Validated on a STAR/iSWAP workcell using the legacy
LiquidHandlerpath:resource_width_at_pickupfix