feat: add OpenArm pinch gripper#3
Open
alexhegit wants to merge 2 commits into
Open
Conversation
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>
Author
6f2e1b9 to
e5b1d0c
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
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 namesassets/proc_grippers/openarm/vis_mesh.obj— Combined visual mesh from DAE sources (28K verts)assets/proc_grippers/openarm/coll_mesh.obj— Bounding box collision meshGripper specs:
Verified
list_grippers.pydiscovers the gripperget_gripper_info()returns all fields correctlydemo_object_pc.py --gripper_name openarmgenerates grasps (scores 0.70-0.99)demo_scene_pc.pyworks with scene collision filteringSource
enactic/openarm_descriptionmain branchoutput.urdfenactic/openarm_description/assets/end_effector/pinch_gripper/meshes/visual/enactic/openarmproject