Skip to content
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

if I want to adapt to a new type of humanoid robot use protomotion,what should we do #46

Open
dbdxnuliba opened this issue Jan 1, 2025 · 3 comments

Comments

@dbdxnuliba
Copy link

dbdxnuliba commented Jan 1, 2025

@tesslerc @mulplue .Hello, if I want to adapt to a new type of humanoid robot (not h1) using protomotion, what should I do? and what are the main steps involved,could you please help me list the steps,many thanks!

@tesslerc
Copy link
Collaborator

tesslerc commented Jan 6, 2025

  1. Create config file: https://github.com/NVlabs/ProtoMotions/blob/main/phys_anim/config/robot/smpl.yaml
  2. Obtain data in humanoid format. You can follow what we do in the retargeting script. You want the dof ordering to match the order that IsaacGym loads them.

The parameters for the first step can be obtained by loading the MJCF/URDF in IsaacGym and looking at:

num_bodies = self.gym.get_asset_rigid_body_count(humanoid_asset)
body_names = self.gym.get_asset_rigid_body_names(humanoid_asset)

num_dof = self.gym.get_asset_dof_count(humanoid_asset)
dof_names = self.gym.get_asset_dof_names(humanoid_asset)

num_joints = self.gym.get_asset_joint_count(humanoid_asset)

@dbdxnuliba
Copy link
Author

dbdxnuliba commented Jan 7, 2025

  1. Create config file: https://github.com/NVlabs/ProtoMotions/blob/main/phys_anim/config/robot/smpl.yaml
  2. Obtain data in humanoid format. You can follow what we do in the retargeting script. You want the dof ordering to match the order that IsaacGym loads them.

The parameters for the first step can be obtained by loading the MJCF/URDF in IsaacGym and looking at:

num_bodies = self.gym.get_asset_rigid_body_count(humanoid_asset) body_names = self.gym.get_asset_rigid_body_names(humanoid_asset)

num_dof = self.gym.get_asset_dof_count(humanoid_asset) dof_names = self.gym.get_asset_dof_names(humanoid_asset)

num_joints = self.gym.get_asset_joint_count(humanoid_asset)

Many thanks,

  1. create a config file like smpl.yaml
  2. retarget the self define robot following the retargettting script , could you please point out the retargetting scripts ,you mean we need this two steps only

@tesslerc
Copy link
Collaborator

Sorry for the delayed response.
You can see an example here: https://github.com/NVlabs/ProtoMotions/blob/main/data/scripts/convert_h1_to_isaac.py
This is how we retarget the AMASS dataset to the H1. It is adapted from LeCAR's OmniH2O effort.

Keep in mind that this is an example, and it is not optimal in any way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants