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

Quadruped ASE #1

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open

Quadruped ASE #1

wants to merge 26 commits into from

Conversation

dtch1997
Copy link
Owner

No description provided.

@dtch1997
Copy link
Owner Author

dtch1997 commented Jan 19, 2023

I'm not sure how to test the Quadruped task, since the analogous Humanoid task is not trainable from the current config.

The easiest way may be to implement QuadrupedAmp directly.

@dtch1997
Copy link
Owner Author

Actually, the first step should be to check what are the similarities / differences between MotionData class and MotionLib and how easy / difficult it is to import the quadruped motion data to this codebase.

@dtch1997
Copy link
Owner Author

dtch1997 commented Jan 23, 2023

From reading the code and exploring it through debugging:

  • MotionLib's implementation is based on SkeletonTree and SkeletonState/Motion.
  • SkeletonTree can be initialized directly from MJCF.
  • A simple example usage is provided in ase/poselib/generate_amp_human_tpose.py.

Next milestone: Import quadruped mo-cap data into MotionLib.

  1. Implement a script to import one quadruped mo-cap text file into a SkeletonMotion instance
  2. Serialize as a .npy file
  3. Visualize the full motion with plot_skeleton_state
  4. Test that it works with MotionLib.

@dtch1997
Copy link
Owner Author

At the moment, this is the plot of the 'zero' pose.

quadruped_pose

I should try to figure out how to plot the actual rest pose.

@dtch1997
Copy link
Owner Author

After thinking about it some more it may not make sense to re-use the same MotionLib, because it has a lot of general functionality which is not necessary for quadrupeds which only have revolute joints.

The revised plan is to:

  1. Port over a basic A1 environment to this repo, named Quadruped and train a baseline
  2. Implement a version of the AMP code starting from that baseline
  3. Implement a version of ASE from that baseline

QuadrupedAMP can be trained from command line.
It's missing a lot of logic but this is a reasonable skeleton to flesh
out
@dtch1997
Copy link
Owner Author

dtch1997 commented Jan 23, 2023

Bugbears:

  • Hardcoding of dataset path
  • We must install motion_imitation repo before being able to run training script
    • also pybullet

Edit:

  • Hardcoding can be addressed by overriding motion path, e.g. python train.py task=QuadrupedAMP task.env.motionFile=data/motions/quadruped/dataset_quadruped.yaml

@dtch1997
Copy link
Owner Author

dtch1997 commented Jan 24, 2023

This PR will be discontinued in favour of dtch1997/IsaacGymEnvs#5

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

Successfully merging this pull request may close these issues.

1 participant