-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrating ProtoMotions with PHC Retargeting Output #24
Comments
See the README for the data pipeline for the ProtoMotions codebase. The code is relatively versatile and can easily support new robots. You just need to create a corresponding configuration file under You can see the H1 retargeting code (that is adapted from PHC/H2O) here. We save the full-body translation, rotation, and velocities tensors. They are then loaded here:
The difference with the standard AMASS to SMPL/X pipeline is that those are saved in PoseLib format and also include the kinematic skeleton. |
Got it, thanks. Just to clarify, I have to re-generate all the motions using ProtoMotions, right? I can't use the ones already given by PHC. |
You can convert between PHC and ProtoMotions, but we don't provide such a script. For the H1 retargeting script, I have uploaded a new version based on what PHC provides in the H1 branch https://github.com/zhengyiluo/phc/tree/h1_phc . Keep in mind the H1 is now updated with better naming. The Please let me know if you encounter any issues. |
I got the motion retargeted with your updated script. |
Sorry to reopen this issue, the retargeting didn't work. I have 78 bodies and 76 joints (not all end effectors have joints), which is probably causing the issue. While these return the error above: Removing the line that calls that |
What commandline did you run? I'll try to reproduce on my end and see. PHC/H2O use an adhoc
|
I ran |
The extend config is defined in https://github.com/NVlabs/ProtoMotions/blob/main/data/scripts/retargeting/config.py |
Ok understood, thank you.
Are you able to reproduce this, or is something wrong with my configuration? EDIT: Order of args for |
Could you try |
Yes, the issue comes from running the commands in that order. I wrote it wrong before, sorry. |
I reverted to a commit before the PHC parts (and the change in robot names/configs) and was able to run
|
I haven't seen this in the past. Could you look at the call-stack to see where the recursion is coming from? I can also take a look if you're willing to share your robot+motion files. |
The message error starts with a hydra configuration error, which then goes back and forth between two lines before exiting with the
The last two lines ( |
Thanks for sharing.
The first 3 are definitions of the robot. You can obtain them once the robot is loaded. Printing at
The num_dof is the number of actions. The dof_names is the dfs_dof_names and dof_obs_size is dof_body_ids*6 if I'm not mistaken. We will create a script to help automate creating the robot config file in the future. |
If I'm seeing correctly, the red spheres seem to be performing the right motion. I tried to bring it up on my end, but I think there's a mismatch between the motion and the model. From what I see, the motion returns 76 dof but the loaded model is 75? Happy to hop on a call next week to help solve this, or if you're at SIGGRAPH Asia we can debug this together. |
Sorry for the late response. The dof mismatch was a previous issue I had, which I resolved. The Drive files have been updated if you're still willing to take a look. I'm not extending any dofs. |
Thanks, I can now run it on my end and I see the same results as you do on ProtoMotions. Could you run the retargeting script in PHC (what worked for you when replaying in PHC codebase), but save in the format expected by ProtoMotions? Change this line: https://github.com/ZhengyiLuo/PHC/blob/656023e984ea84d2e2a51352049ff99f9cc67c4b/scripts/data_process/fit_smpl_motion.py#L174
It will help me know where to focus. |
I did that and get the same results as when using ProtoMotions (robot motions don't follow the correct retargeting motions).
Without it, the dict was missing all relevant entries and it wouldn't visualize. |
Hi, thank you for this great work
I've ran PHC's retargeting pipeline based on the AMAS dataset on a custom humanoid robot. The output for each motion is .pkl file, which differs from the expected .npy or .yaml files. How can I change my PHC output motion files to resemble the ProtoMotions input motion file?
I understand that there is a pipeline that converts motions to the Unitree H1 configuration but can't find where the retargeting happens. How was this done (what is the H1 motion pipeline), and is it possible to do with a custom robot?
Thanks!
The text was updated successfully, but these errors were encountered: