fix(manip): judge gripper arrival by the open band, not the stillness threshold - #3870
fix(manip): judge gripper arrival by the open band, not the stillness threshold#3870mustafab0 wants to merge 1 commit into
Conversation
… threshold await_gripper_settle used settle_tolerance for two different questions: how little the jaws moved between polls, and how near the commanded target they stopped. A gripper driven to its mechanical stop always halts short of the extreme -- the real xArm rests at 0.988 of a nominal 850 count -- so opening an already-open gripper moved nothing, could never "arrive", and timed out with "gripper did not settle within 3.00s". Arrival is now its own tolerance. The open path passes open_tolerance, the band that already decides whether where the jaws stopped counts as open. The close path keeps settle_tolerance, where an exact arrival at closed_position is precisely the signal that the jaws closed on nothing.
Greptile SummaryThis change lets open gripper commands use the configured open band for arrival while keeping the tighter stillness threshold for detecting stopped motion. Direct runtime checks confirmed that a gripper resting at 0.988 for a 1.0 open target now settles and is accepted; a stable 0.800 reading remains rejected, and a close that stops on an object retains its prior successful behavior. T-Rex validation blockedFocused pytest collection could not start because the Confidence Score: 5/5The gripper settling change is safe to merge based on direct execution of the corrected open-stop behavior and its important boundary and close-command regressions. No defects were found. The executed harness compared the prior and updated behavior, confirmed the intended 0.988 open-stop acceptance, preserved rejection outside the open band, and preserved held-object close behavior. Files Needing Attention: No files require changes. Focused pytest coverage remains unavailable until the missing
What T-Rex did
Reviews (1): Last reviewed commit: "fix(manip): judge gripper arrival by the..." | Re-trigger Greptile |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## mb/grasp-02-no-motion-on-launch #3870 +/- ##
================================================================
Coverage 77.65% 77.65%
================================================================
Files 1323 1323
Lines 125429 125440 +11
Branches 10911 10911
================================================================
+ Hits 97400 97413 +13
+ Misses 24886 24885 -1
+ Partials 3143 3142 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 5 files with indirect coverage changes 🚀 New features to boost your workflow:
|
await_gripper_settleusedsettle_tolerancefor two different questions: how little the jaws moved between polls, and how near the commanded target they stopped. A gripper driven to its mechanical stop always halts short of the extreme — the real xArm rests at 0.988 of a nominal 850 count — so opening an already-open gripper moved nothing, could never "arrive", and timed out withgripper did not settle within 3.00s.Arrival is now its own tolerance. The open path passes
open_tolerance, the band that already decides whether where the jaws stopped counts as open. The close path keepssettle_tolerance, where an exact arrival atclosed_positionis precisely the signal that the jaws closed on nothing.This kills a hack rather than porting it: the branch this stack re-derives from papered over the same bug from the other end with a per-blueprint
grasp_verification={"settle_tolerance": 0.01}override, chasing the gap between 0.995 and 1.0 instead of naming it. That override does not exist here and is not reintroduced anywhere in the stack.Third of nine in the xArm grasping re-landing stack.