Closed waqc closed 9 months ago
I'll answer the second question first. Yes, these rotations are sampled from a uniform distribution over SO(3).
For the first question, let me elaborate on that. (Just in case of confusion from overridden terms, I will put quotes around "grid" when I'm referring to the "grid" mode; otherwise I'm using the term—grid—to simply denote a discretization of SO(3) of shape [num, 3, 3]
in our code.)
A little background context:
Now if we choose the "grid" mode during training, for each training sample, its probability is normalized over the same grid. This will not be a problem if:
However, these conditions might not always hold true because the line for "sufficiently" is fairly blurry. Under those circumstances, you can imagine it's theoretically possible that the probabilities of rotations outside those grids are out of control and can be a troublemaker when we sample during testing.
If we use the "random" mode, for each training sample, the probability is normalized over different grids of rotations, which effectively helps smooth the probabilistic distribution over SO(3).
When we sample from GraspIPDF, we use a pre-generated grid under the "grid" mode for efficiency.
I hope I have delivered my points clearly. Feel free to follow up in this issue otherwise!
Thanks a lot for the detailed explanation. I fully understand it now.
Thanks for this amazing repo! I have a small question about the code related to the paper. For the generate_queries function in dexgrasp_generation/network/models/graspipdf/ipdf_network.py, there are two modes "random" and "grid". I think in the paper, GraspIPDF mentions generating rotation by "grid" mode but the code is using "random" mode. Is that because the "random" mode has better performance?
Also for the "random" mode, the rotation matrices are directly generated by pytorch3d.transforms.random_rotations, will these rotations be the uniform distribution over SO(3)?
Thanks a lot!