You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Refine V1 gripper geometry and V1/V2 motor dynamics - #82
Align V1 standalone and bimanual position controls, motor parameters, reference frames, and open-gripper home poses; restore the standalone link1 visual submesh.
Keep a separate fixed hand body as the parent of TCP and fingers. Center TCPs and rotate the opposing finger body 180 degrees about Z, including its geometry and inertia.
Rebuild V1 finger/hand collision geometry, cover the hand rail and rounded ends, and bake mirrored left-arm collision meshes with positive scales.
Update V1/V2 motor armature estimates and keep gains on individual actuators.
Inertial Basis
V1 arm-link mass, COM, and full inertia tensors come from historical description data, transformed where the corresponding geometry is mirrored.
V1 hand uses the historical 0.35 kg mass and inertia, with local COM reset to zero and Ixy/Iyz zeroed. Fingers retain the previous diagonal-inertia approximation.
The fixed V1 base keeps its 13.89 kg mass. Its equivalent inertia box is approximated by the old box's upper half, preserving width/depth: COM-Z = 0.296442 m, Ixx/Iyy = 0.432375 kg*m^2. This is a geometric approximation, not CAD-derived identification.
Motor armatures use read-only motor inertia values multiplied by gear ratio squared; gearbox contributions remain unconfirmed. Gripper linkage parameters are estimates.
Validation
All 24 V1/V2 XML entries load on MuJoCo 3.8.1 and 3.14; 3 existing unit tests pass.
V1 single/bimanual open-close-reopen cycles and centered TCP checks pass.
Matched-pose single/right-arm dynamics agree to numerical precision. This review follow-up leaves joint mass matrices and bias forces unchanged.
Earlier collision-mesh checks found watertight meshes with no detected self-intersections.
These checks establish model consistency, not hardware identification. ROS/OctoMap self-filtering has not been tested.
Correct left TCP calibration offset from gripper centerline
v1/openarm_bimanual.xml:296
The linked openarm_description#64 calibration places the TCP at 0 0 0.1801 relative to link7, but this leaves the left TCP 4.5 mm off the gripper centerline (and retains a stray 1 µm X offset). That makes consumers of this body frame target a different point than the calibrated fingertip center.
This issue also appears on line 473 of the same file.
The related calibration change in openarm_description#64 places the TCP at 0 0 0.1801, centered between the newly symmetric finger origins. Retaining the former accumulated y=-0.0045 offset leaves this TCP 4.5 mm off-center; reset x/y now that it is directly under link7.
This issue also appears on line 479 of the same file.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
The updated contact exclusions re-enable V1 hand–finger self-collisions.
Review effort: Balanced Findings: None
Previously missed (1)
In code that hasn't changed since last review
Exclusions target link7 instead of sibling hand bodies
v1/openarm_bimanual.xml:609
These exclusions now target link7, but the hand collision geoms remain attached to the sibling openarm_*_hand bodies while each finger is a direct child of link7. MuJoCo body exclusions do not propagate to sibling bodies, so this re-enables the hand–finger self-contacts that the previous exclusions suppressed; the link7–finger pairs are already covered by parent/child filtering. Keep the exclusions against the hand bodies (or move the hand geoms onto link7).
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
Both V1 bimanual TCP frames remain offset from the newly centered grippers.
Review effort: Balanced Findings: None
Previously missed (1)
In code that hasn't changed since last review
Correct TCP position to remove 4.5 mm hand offset
v1/openarm_bimanual.xml:299
The TCP retains the old nested hand offset even though this change recenters the hand and finger bodies. This leaves the end-effector frame 4.5 mm off the gripper center; the linked V1 calibration defines the TCP with zero X/Y offset. Set the TCP position to 0 0 0.1801.
This issue also appears on line 477 of the same file.
The reason will be displayed to describe this comment to others. Learn more.
The opposing finger is modeled as a 180-degree rotation about Z. The entire body rotates, including its geometry and inertial frame, so the COM changes sign in both X and Y consistently. The joint axis is adjusted to preserve the opening direction.
The linked calibration change in openarm_description#64 defines the TCP at the fingertip center as (0, 0, 0.1801). After making this body a direct child of link7, preserving the old accumulated y=-0.0045 offset leaves the left TCP almost on one finger origin rather than centered between the new symmetric y=±0.005 finger origins. Set the direct-child position to the calibrated center.
This issue also appears on line 473 of the same file.
The reason will be displayed to describe this comment to others. Learn more.
Updated the PR description with the historical inertia source, coordinate transformations, base-box approximation, and validation results. The base, hand, and linkage parameters remain estimates pending physical validation.
Refine V1 gripper collision geometry and inertial properties, retain hand as the parent of TCP and fingers, center both TCPs at local Y=0, and share one finger mesh through rotation.
Bake six mirrored V1 arm collision meshes with corrected winding and positive scales. Extend the regeneration script to V1 and V2, and remove the redundant mirrored finger mesh.
Adjust V1/V2 motor dynamics and update the base box and cell configuration.
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
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
Inertial Basis
Validation
These checks establish model consistency, not hardware identification. ROS/OctoMap self-filtering has not been tested.
Related: enactic/openarm_description#64, enactic/openarm_description#65.