Skip to content

Question about fixing the last joint angle to zero in dataset generation #9

@heyan98

Description

@heyan98

Hi, thank you very much for open-sourcing GGIK — it’s a great project!

I have a question about the dataset generation. In dataset_generation.py, inside the generate_data_point function (line 67), there is a line:

q[num_joints[0] - 1] = 0

Similar lines also appear at line 221 and line 315. From my understanding, this forces the last movable joint of the robot arm to always be zero.

My guess is that the first 6 joints are already sufficient to cover the entire pose space, so the 7th joint is fixed to simplify the dataset. However, when I trained a model for the panda with the dataset where the 7th joint is always fixed at zero, and then tested it on data where the 7th joint is not fixed (i.e., commenting out line 67 in dataset_generation.py), I observed a noticeable performance drop compared to testing on the original dataset. (n_evals=2000 & num_samples=32)

Original test set

Robot Err. Pos. [mm] mean min max Q1 Q3 Err. Rot. [deg] mean min max Q1 Q3
panda 6.103579 1.996867 14.718448 3.886037 7.619001 0.604586 0.209989 1.292011 0.415884 0.746376

Test set with non-zero last joint

Robot Err. Pos. [mm] mean min max Q1 Q3 Err. Rot. [deg] mean min max Q1 Q3
panda 53.530277 26.866604 89.103055 40.962530 65.025451 6.349489 2.796354 10.919454 4.668156 7.922070

Could you clarify the motivation for fixing the last joint angle to zero during dataset generation? And do you think this design choice might affect generalization to robots (like Panda) that actually use the 7th joint?

Thanks a lot!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions