Skip to content

Update hand collision mesh due to the collision issues in Octomap and MoveIt - #65

Open
oguzhanbzglu wants to merge 1 commit into
enactic:mainfrom
b-robotized-forks:update_hand_collision
Open

oguzhanbzglu wants to merge 1 commit into
enactic:mainfrom
b-robotized-forks:update_hand_collision

Conversation

@oguzhanbzglu

@oguzhanbzglu oguzhanbzglu commented Jun 5, 2026 •

Copy link
Copy Markdown
Contributor

Problem

This MR updates the hand collision mesh (STL) to address collision issues observed in ROS 2 MoveIt when using OctoMap-based environment perception.

We are running the bimanual v1.0 robot in Isaac Sim with a top-mounted camera. The camera captures both the gripper and part of the hand assembly:

image

OctoMap generates collision objects from the depth image and is expected to ignore geometry that belongs to the robot itself. However, as shown below, OctoMap incorrectly creates collision voxels around the metal section at the base of the gripper:

image image

The root cause is that the curved portion of the metal component is not fully represented in the current collision mesh. As a result, this geometry is not filtered out by the self-collision masking and is perceived as an external obstacle. The same issue could potentially lead to inaccurate collision checking on real hardware.

Solution

The hand collision mesh has been slightly extended based on the curved size to fully cover the missing curved section of the metal component.

This update resolves the OctoMap self-filtering issue while keeping the mesh lightweight. The resulting STL file size remains effectively unchanged.

image

Copilot AI review requested due to automatic review settings June 5, 2026 11:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@kou

kou commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@stevenaya Could you take a look at this?

@stevenaya

Copy link
Copy Markdown
Contributor

We will first merge #64, then see if this problem remains.

@stevenaya

stevenaya commented Jun 8, 2026 •

Copy link
Copy Markdown
Contributor

I think we may consider updating the collision mesh for v1.0 later to provide more detailed collision handling. Let me discuss this with our team member.

@oguzhanbzglu

Copy link
Copy Markdown
Contributor Author

Hello, thank you for considering this change. However, even though this change is independent of #64, if you expand the collision area, you might also want to consider modifying the inertia properties of the link defined in #64 to account for the change in mass.

kou pushed a commit to enactic/openarm_mujoco that referenced this pull request Oct 6, 2026
## 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](https://github.com/enactic/openarm_description/blob/4547b2ff68aa11b79c42d6d7a85d290e5883eaf0/config/arm/v10/inertials.yaml),
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.

---------

Co-authored-by: stevenaya <stevenaya@users.noreply.github.com>

This branch was previously deployed

1 inactive deployment
release — b90bec3b Deployed Jun 8, 2026 by oguzhanbzglu via Publish #137
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.

4 participants