Repository navigation
Conversation
… holds the object A grasp source picks its depth for its own gripper model. GraspGenX centres the object in the open xArm fingers, but they swing about 1.3 cm further as they close, so on flat objects every grasp put the fingertips into the table and the pick had none left. grasp_depth_search (metres, 0 = off) tries each grasp at depths along its approach (grasp_depth_step apart) with the gripper's modelled close. A depth passes when the check is clear and a finger pad presses the object with at least grasp_min_gap_points object points between the pads where the fingers stop; the grasp is kept at the passing depth that holds the most. Grasps are taken best first, 50 at a time, and the search stops once max_grasp_attempts pass. The table is now solid for the check: scene_obstacles also gives the table's height, and a grasp with any gripper part's centre below it touches "floor" (the table was a sheet of surface points, so a gripper wholly under it passed). Grasps below the floor skip the shape tests.
…dict The depth search runs the full check at every depth, and on a busy machine a three-try pick ran past the 120 s pick time limit. Two exact savings: - The floor test uses the open gripper's outermost points (each link's convex hull vertices) instead of each part's box centre. A gripper reaching below the table top always touches it, so those depths skip the shape tests; this is half the depths on a mug and 95% on flat objects. - The closing poses are tested only for grasps that touch nothing at the open pose; a grasp already touching something cannot pass. On recorded mug, marker, scissors and pudding box checks the depth search picks the same depth for every grasp as before, 2.5-6x faster.
…ce put them Moving every grasp to the depth that holds the most of the object put grasps at the edge of what the check allows (the palm just over a box, fingertips just over the table), and the arm lands a few millimetres off its target: in the grasp lab, 17 of 25 cases grasped against 23 without the search, and the fingers closed on nothing 5 times. A grasp that passes where its source put it now stays there. Only a failing grasp moves, to the nearest depth that passes (backing off before going deeper) where a finger pad presses the object and holds at least min_gap_points of it. A grasp too deep for a flat object backs off only until it clears the table, so its fingers still meet the object's sides.
In the grasp lab, moved grasps were tried in their source's rank order next to grasps that passed where they were, and on boxes, cans and the drill they often closed on nothing (13 first tries against 1 without the search). Moved grasps are now kept only when no grasp passes where its source put it, so a pick with such grasps behaves as without the search.
Contributor
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: 16b49ee | Previous: 1e7b491 | Ratio |
|---|---|---|---|
peak memory |
1604.43 MB |
1569.52 MB |
1.02 |
peak threads |
349 threads |
352 threads |
0.99 |
network (transport) |
2724.689 MB |
2722.016 MB |
1.00 |
disk write |
1.492 MB |
1.492 MB |
1 |
instructions |
115.633 G |
115.634 G |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
❌ 2 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
mustafab0
added this pull request to stack #4532
October 11, 2026 06:49
This branch has not been deployed
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.
Evidence: perfect perception, grasped 80 vs 73 (p = 0.17), "no grasp left" 13 → 1, scissors 6/7 vs 0/7; camera, held after carry 39 vs 29 (p = 0.064). Earlier versions that moved every grasp lost on boxes and cans; the fallback rule fixes that. Off by default.
Eval setup for the numbers below: SceneReplica, 100 cases, xArm7 in sim2 (MuJoCo), scripted pick (no LLM), paired on the same cases. "Perfect perception" means the object's true mesh from the sim (the grasp lab); "camera" means the wrist camera's scene registration.
Part 12 of 13 in the closed-loop grasp (M1) stack; based on
mustafa/feat/single-accurate-check, so this PR shows only its own change.