Skip to content

Refine V1 gripper geometry and V1/V2 motor dynamics - #82

Merged
kou merged 3 commits into
enactic:masterfrom
stevenaya:refine-v1-gripper-and-motor-dynamics
Oct 6, 2026
Merged

kou merged 3 commits into
enactic:masterfrom
stevenaya:refine-v1-gripper-and-motor-dynamics

Conversation

@stevenaya

@stevenaya stevenaya commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • 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.

Related: enactic/openarm_description#64, enactic/openarm_description#65.

Copilot AI balanced review requested due to automatic review settings September 30, 2026 22:54
@github-actions

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The right link7 incorrectly reuses the mirrored left link’s consolidated inertia values.

Review effort: Balanced
Findings: 1 High severity

Open (1)
What changed in this PR

Refines OpenArm V1 gripper geometry and updates V1/V2 actuator dynamics.

Changes:

  • Updates motor armature, damping, and actuator gains.
  • Consolidates V1 hand bodies and adjusts gripper geometry.
  • Uses baked mirrored finger collision meshes.
File Description
v2/​openarm_bimanual.xml Updates motor armatures and actuator defaults.
v2/​cell/​cell.xml Moves lifter gains onto its actuator.
v1/​openarm.xml Aligns gripper geometry and arm damping.
v1/​openarm_bimanual.xml Tunes dynamics and consolidates hand bodies.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread v1/openarm_bimanual.xml Outdated
Copilot AI balanced review requested due to automatic review settings October 1, 2026 04:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Both V1 TCP frames remain offset from the linked calibrated fingertip-center position.

Review effort: Balanced
Findings: 1 High severity

Open (1)
Previously missed (1)

In code that hasn't changed since last review

Medium severity 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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 05:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Both V1 bimanual TCPs remain 4.5 mm off-center despite the related calibration requiring centered TCPs.

Review effort: Balanced
Findings: None

Resolved since last review (1)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Reset TCP y offset to center it under link7

v1/​openarm_bimanual.xml:299

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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 07:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Medium severity 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).

Copilot AI balanced review requested due to automatic review settings October 1, 2026 08:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Medium severity 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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 09:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The rotated right-finger bodies incorrectly invert both fingers’ X center-of-mass offsets.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)

Comment thread v1/openarm_bimanual.xml Outdated
quat="0 0 0 1">
<joint name="openarm_left_finger_joint1" type="slide" ref="0.0"
class="motor_finger" range="0.0 0.044" axis="0 1 0" />
<inertial pos="0.0064528 0.01702 0.0219685" quat="1.0 0.0 0.0 0.0"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 09:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Both reparented TCP bodies retain an obsolete lateral offset instead of the linked calibration’s centered position.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Center left TCP between symmetric finger origins

v1/​openarm_bimanual.xml:294

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.

@stevenaya
stevenaya force-pushed the refine-v1-gripper-and-motor-dynamics branch from 75b68b4 to 6201c3e Compare October 1, 2026 10:00
Copilot AI balanced review requested due to automatic review settings October 1, 2026 10:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Both V1 hand TCPs remain offset from the centered calibration specified by the related reference.

Review effort: Balanced
Findings: 2 Medium severity

Open (2)

Comment thread v1/openarm_bimanual.xml Outdated
Copilot AI balanced review requested due to automatic review settings October 1, 2026 10:06
@stevenaya
stevenaya force-pushed the refine-v1-gripper-and-motor-dynamics branch from 6201c3e to cc363ea Compare October 1, 2026 10:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Both TCP frames are off-center, and significant arm/base inertia changes need documented justification and validation.

Review effort: Balanced
Findings: 1 High severity · 2 Medium severity

Open (3)

Comment thread v1/openarm_bimanual.xml
Comment on lines +143 to +144
<inertial pos="0.0 0.0 0.296442186206" quat="1.0 0.0 0.0 0.0" mass="13.89"
diaginertia="0.432375 0.432375 0.051" />

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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.

Copilot AI balanced review requested due to automatic review settings October 1, 2026 10:27
@stevenaya
stevenaya force-pushed the refine-v1-gripper-and-motor-dynamics branch from cc363ea to 112456d Compare October 1, 2026 10:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The rotated V1 single-arm finger geometry no longer aligns with its inertial center of mass.

Review effort: Balanced
Findings: 1 High severity · 3 Medium severity

Open (4)

Comment thread v1/openarm.xml Outdated
Copilot AI balanced review requested due to automatic review settings October 1, 2026 10:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The standalone V1 model unintentionally omits a previously rendered link-1 visual submesh.

Review effort: Balanced
Findings: 1 High severity · 3 Medium severity · 1 Low severity

Open (5)

Comment thread v1/openarm.xml
Copilot AI balanced review requested due to automatic review settings October 1, 2026 11:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Physics-sensitive inertial, actuator, and collision changes warrant final human simulation and hardware validation.

Review effort: Balanced
Findings: 1 High severity · 2 Medium severity

Open (3)
Resolved since last review (2)

stevenaya and others added 3 commits October 6, 2026 10:23
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.
Copilot AI balanced review requested due to automatic review settings October 6, 2026 01:24
@stevenaya
stevenaya force-pushed the refine-v1-gripper-and-motor-dynamics branch from e69576e to ee82243 Compare October 6, 2026 01:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@kou
kou merged commit ee11105 into enactic:master Oct 6, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants