Skip to content

Allegro Left Hand Configuration/URDF #17

@curieuxjy

Description

@curieuxjy

Hello — thanks for maintaining GeoRT!

Configuration

I found a small problem in the allegro_left configuration: the fingertip mapping appears to be mirrored incorrectly. The index fingertip is currently mapped to link_3.0_tip, but because the left hand is the mirrored version of the right hand, the index tip should be link_11.0_tip.

File / line
geort/config/allegro_left.json

"link": "link_3.0_tip",

What I observed (actual)

  • Index is mapped to link_3.0_tip in the left-hand config, which causes the index and ring fingers to be swapped when using this config.

What I expect

  • For the left hand (mirrored), fingertip links should match the mirrored indices: index → link_11.0_tip, middle → link_7.0_tip, ring → link_3.0_tip, thumb → link_15.0_tip.

Proposed fix
Replace the fingertip mapping in allegro_left.json with the configuration below (I tested this mapping locally and it produced the expected fingertip associations):

{
    "README!!": "Please see config/template.py for instructions. You can remove this in your config json",

    "name": "allegro_left",
    "urdf_path": "./assets/allegro_left/allegro_hand_left.urdf",

    "base_link": "base_link",

    "joint_order": [
        "joint_8.0", "joint_9.0", "joint_10.0", "joint_11.0",
        "joint_4.0", "joint_5.0", "joint_6.0", "joint_7.0",
        "joint_0.0", "joint_1.0", "joint_2.0", "joint_3.0",
        "joint_12.0", "joint_13.0", "joint_14.0", "joint_15.0"
    ],


    "fingertip_link": [
        {
            "name": "index",
            "link": "link_11.0_tip",
            "joint": ["joint_8.0", "joint_9.0", "joint_10.0", "joint_11.0"],
            "center_offset": [0.0, 0.0, -0.005],
            "human_hand_id": 8
        },

        {
            "name": "middle",
            "link": "link_7.0_tip",
            "joint": ["joint_4.0", "joint_5.0", "joint_6.0", "joint_7.0"],
            "center_offset": [0.0, 0.0, -0.005],
            "human_hand_id": 12
        },

        {
            "name": "ring",
            "link": "link_3.0_tip",
            "joint": ["joint_0.0", "joint_1.0", "joint_2.0", "joint_3.0"],
            "center_offset": [0.0, 0.0, -0.005],
            "human_hand_id": 16
        },

        {
            "name": "thumb",
             "link": "link_15.0_tip",
            "joint": ["joint_12.0", "joint_13.0", "joint_14.0", "joint_15.0"],
            "center_offset": [0.0, 0.0, -0.005],
            "human_hand_id": 4
        }
    ]
}

URDF

When I rendered the left hand, the base_link frame was not aligned with the orientation specified in template.py.

    # 1. Fill in the hand base_link name specified by your urdf. 
    # 2. Please refer to the doc (or below) for the base link orientation convention.
    #    Y: center of palm to the thumb. Z: center of palm to the middle finger. X: normal of palm. <--- This point is not matched to LEFT HAND

    # 3. If your base link uses a different orientation:
    #    you can add a virtual base_link and joint to your urdf, and change this to the new virtual base_link.

These are screenshots of the left hand:

Image

If this looks correct to you, I can open a small PR that updates the file and adds a brief test/visual check. Otherwise, please let me know if I misunderstood how these link names are intended to map.

Thanks again — great repo and happy to help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions