Wire hand mesh into parallel gripper URDF and fix calibration#64
Wire hand mesh into parallel gripper URDF and fix calibration#64oguzhanbzglu wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the OpenARM parallel gripper URDF/Xacro and kinematics configs to introduce a dedicated hand link and adjust end-effector/TCP and joint/link offsets.
Changes:
- Added a new
handlink and fixed joint into the gripper Xacro, and updated the default TCP Z offset. - Introduced a
handentry inkinematics_link.yamland aligned finger link Z offsets. - Adjusted
finger_jointY offset inkinematics.yaml.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| assets/robot/openarm_v1.0/urdf/ee/parallel_link/openarm_parallel_gripper.xacro | Adds hand link + fixed joint and changes default TCP offset. |
| assets/end_effector/parallel_link/config/kinematics_link.yaml | Adds hand kinematics link entry and updates finger link Z values. |
| assets/end_effector/parallel_link/config/kinematics.yaml | Tweaks finger_joint kinematic Y offset. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <link name="${ee_prefix}hand"> | ||
| <visual name="${ee_prefix}hand_visual"> | ||
| <xacro:openarm-ee-kinematics-link config="${ee_kinematics_link}" name="hand" /> | ||
| <geometry> | ||
| <mesh filename="package://${description_pkg}/assets/end_effector/parallel_link/meshes/visual/hand.dae" scale="0.001 0.001 0.001"/> | ||
| </geometry> | ||
| </visual> | ||
| <collision name="${ee_prefix}hand_collision"> | ||
| <xacro:openarm-ee-kinematics-link config="${ee_kinematics_link}" name="hand" /> | ||
| <geometry> | ||
| <mesh filename="package://${description_pkg}/assets/end_effector/parallel_link/meshes/collision/hand.stl" scale="0.001 0.001 0.001" /> | ||
| </geometry> | ||
| </collision> | ||
| </link> |
There was a problem hiding this comment.
@oguzhanbzglu Thanks for the contribution!
I think Copilot is right here.
The hand link has no inertial, so its mass isn't included in the dynamics. Could you add one?
There was a problem hiding this comment.
Awesome, thanks for adding it!
|
Hi @abetomo , all checks are passing and you've already approved the PR. Feel free to merge it. Thanks! |

Problem
The hand meshes/assets for
OpenArm v1.0existed in the repo and were already used inparallel_link_standalone.urdf.xacro, but were never integrated into the actual robot URDF. Additionally, three calibration issues were present in the gripper configuration.The hand.dae:
Changes
openarm_parallel_gripper.xacro
handlink with visual and collision geometry using the existing mesh assets.hand_joint(fixed) placing the hand TF frame at the palm level (z = finger_joint.z from connected_to)tcp_xyzdefault from0 0 0(TCP at link7) to0 0 0.1801(TCP at fingertip center)kinematics_link.yaml
-0.673001->-0.661001(verified against Isaac Sim)kinematics.yaml
finger_joint.y:0.0->-0.005to create the correct 10mm separation between finger frames at joint=0, matching the physical closed position measured via TF in Isaac Sim.Testing
Verified in Isaac Sim (ROS 2 Jazzy) with the bimanual OpenArm v1.0 configuration. Hand mesh correctly aligned with fingers, gripper closes without visual mesh intersection, TCP correctly placed at fingertip.