fix(manip): stand the sim model on the pedestal - #3733
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #3733 +/- ##
==========================================
- Coverage 77.46% 76.59% -0.87%
==========================================
Files 1302 1304 +2
Lines 123061 125994 +2933
Branches 10772 11125 +353
==========================================
+ Hits 95330 96506 +1176
- Misses 24924 26634 +1710
- Partials 2807 2854 +47
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 43 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Greptile SummaryThis change adds the simulated xArm7 pedestal offset and allows gripper opening to use the configured open-position tolerance. The open wait can accept an unchanged readback that is already within the open band, allowing place to continue into retraction without observing that the accepted open command moved the jaws. T-Rex validation blockedThe focused gripper reproduction could not execute because Confidence Score: 4/5Do not merge until opening requires evidence that the accepted command has taken effect, or otherwise safely distinguishes an already-open gripper from an object-obstructed gripper. The affected control flow is directly established in the code: the open tolerance is passed to settling, stationary in-band samples are accepted as arrival, and a successful open result allows place to retract. Runtime execution was blocked before the focused reproduction reached that path. Files Needing Attention:
What T-Rex did
Reviews (1): Last reviewed commit: "fix(manip): stand the sim model on the p..." | Re-trigger Greptile |
| settle = self._command_and_settle( | ||
| config.open_position, group_id, config, config.open_tolerance | ||
| ) |
There was a problem hiding this comment.
When place starts with stationary gripper feedback between 0.85 and 1.0, passing open_tolerance lets unchanged pre-command readings count as settled before the accepted command moves the jaws, causing the arm to retract and report success while a thin object remains held or is released at the wrong location.
make_xarm7_sim_robot_config placed the arm at the origin while xarm7.xml bolts link_base to a 12cm pedestal, so the planner solved every pose 12cm below the arm it was driving. Forward kinematics for the same joint vector disagreed by exactly that much between the planning model and MuJoCo, and every grasp in xarm-perception-sim closed on air with nothing anywhere reporting an error. The test reads the mount height back out of the scene asset rather than restating it, so the model and the MJCF cannot drift apart again.
c527168 to
03fc191
Compare
A pick in
xarm-perception-simhas never been able to succeed.make_xarm7_sim_robot_configplaced the arm at the origin whilexarm7.xmlboltslink_baseto a 12cm pedestal, so the planner solved every pose 12cm below the arm it was driving. Forward kinematics for the same joint vector came out 12cm apart between the planning model and MuJoCo, and grasps closed on air with nothing anywhere reporting an error.The test reads the mount height back out of the scene asset rather than restating it, so the model and the MJCF cannot drift apart again.
Verified on the sim: planning and MuJoCo TCP now agree exactly, and a pick on the cup holds at readback 0.725, inside the band #3701 calibrated.
An earlier revision of this PR also widened arrival in
await_gripper_settleso a re-open of already-open jaws could not time out. Greptile was right that it regressed the release path, and it has been withdrawn.