facebookresearch / facebookresearch/GeoRT

Allegro Left Hand Configuration/URDF

Open
#17 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
224
Forks
39
PR merge metrics
No merged PRs in 30d

Description

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` — [https://github.com/facebookresearch/GeoRT/blob/fb2075e2a3272be372016580c0b6ebd6120228f0/geort/config/allegro\_left.json#L20](https://github.com/facebookresearch/GeoRT/blob/fb2075e2a3272be372016580c0b6ebd6120228f0/geort/config/allegro_left.json#L20)

**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):

```json
{
"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!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.