Skip to content

feat: add OpenArm pinch gripper#3

Open
alexhegit wants to merge 2 commits into
NVlabs:mainfrom
alexhegit:openarm
Open

feat: add OpenArm pinch gripper#3
alexhegit wants to merge 2 commits into
NVlabs:mainfrom
alexhegit:openarm

Conversation

@alexhegit

Copy link
Copy Markdown

Summary

Adds the OpenArm pinch gripper to the procedural grippers collection.

OpenArm v2.0 Pinch Gripper

The OpenArm project is an open-source bimanual humanoid robot arm. This PR adds its pinch gripper configuration for GraspGenX grasp generation.

Files added:

  • assets/proc_grippers/openarm/config.json — Gripper metadata (revolute_2f type, symmetric mimic, joint limits)
  • assets/proc_grippers/openarm/gripper.urdf — Minimal URDF matching config joint/link names
  • assets/proc_grippers/openarm/vis_mesh.obj — Combined visual mesh from DAE sources (28K verts)
  • assets/proc_grippers/openarm/coll_mesh.obj — Bounding box collision mesh

Gripper specs:

  • Type: revolute_2f (two-finger revolute)
  • Mimic: symmetric (finger_joint2 = -finger_joint1)
  • Joint limits: [-1.5708, 0] rad (closed to open)
  • Origin: xyz=(-0.00143, ±0.018, -0.068)

Verified

  • list_grippers.py discovers the gripper
  • get_gripper_info() returns all fields correctly
  • demo_object_pc.py --gripper_name openarm generates grasps (scores 0.70-0.99)
  • demo_scene_pc.py works with scene collision filtering

Source

  • URDF: enactic/openarm_description main branch output.urdf
  • Meshes: enactic/openarm_description/assets/end_effector/pinch_gripper/meshes/visual/
  • Reference: enactic/openarm project

AlexHe99 added 2 commits June 9, 2026 21:22
Add explicit ROCm 7.2 support via uv extras while preserving the existing
CUDA workflow (uv sync picks up PyPI CUDA wheels on Linux).

Changes:
- pyproject.toml: Add rocm extra with ROCm 7.2 index routing, conflict
  resolution (rocm + end2end are mutually exclusive), remove torch-backend=auto
  in favor of explicit [tool.uv.sources] index routing, relax torch upper
  bound to allow ROCm 2.12+ wheels
- AGENTS.md: Add ROCm support documentation with what works / what doesn't

Verified on AMD Radeon PRO W7900 (48GB VRAM) + ROCm 7.2:
- torch==2.12.0+rocm7.2 detects GPU correctly
- ptv3_vanilla backbone forward pass runs on GPU
- 93/96 tests pass (3 skipped = integration tests needing live server)
- pointnet2_ops gracefully degrades (warning only)
- All demo scripts, ZMQ server/client, gripper wizard work

What works on ROCm:
- Base inference (point clouds, meshes, scenes)
- All demo scripts (demo_object_pc, demo_scene_pc, demo_object_mesh)
- ZMQ server/client (uv sync --extra rocm --extra serve)
- Gripper config wizard (browser GUI)
- Tests (uv run pytest -m "not end2end")

What does NOT work on ROCm:
- End-to-end pipeline (nvidia-curobo, newton, warp are CUDA-only)
- Docker training (NGC base image is NVIDIA-only)
- pointnet2_ops PointNet++ backbone (gracefully degrades, use ptv3_vanilla)

Usage:
  uv sync              # CUDA (unchanged)
  uv sync --extra rocm # AMD ROCm

Signed-off-by: AMD <amd@amd.com>
Signed-off-by: AlexHe99 <alehe@amd.com>
Add OpenArm 7DOF bimanual arm's pinch gripper as a new proc_gripper.
The gripper is a symmetric 2-finger revolute design with mimic joints.

Files:
- config.json: gripper parameters derived from openarm_description URDF
- gripper.urdf: minimal URDF matching config joint/link names
- vis_mesh.obj: combined visual mesh from openarm_description DAE files
- coll_mesh.obj: bounding box collision mesh

URDF source: enactic/openarm_description (output.urdf)
Finger joints: openarm_left_finger_joint1/2 with mimic multiplier=-1
Joint limits: [-1.5708, 0] rad (±90°)

Signed-off-by: beininghan <beininghan@gmail.com>
Signed-off-by: AlexHe99 <alehe@amd.com>
@alexhegit

Copy link
Copy Markdown
Author
image

@alexhegit alexhegit closed this Jun 10, 2026
@alexhegit alexhegit reopened this Jun 10, 2026
@alexhegit alexhegit force-pushed the openarm branch 2 times, most recently from 6f2e1b9 to e5b1d0c Compare June 10, 2026 09:52
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.

2 participants