Home

Awesome

Adverserial Waddle Dynamics

A mallard version of ASE (https://xbpeng.github.io/projects/ASE/index.html) Skills

This repo unifies the training code using AMP for Open Duck Mini and the go_duck (real size version).

NOTE: The ASE part of this repo does not work yet. We only use the AMP implementation for now

Installation

Download Isaac Gym from the website, then follow the installation instructions.

Once Isaac Gym is installed, install the external dependencies for this repo:

pip install -r requirements.txt

AWD

AMP works with reference motion. It can come from motion capture, or from some kind of reference motion generator.

We use placo to generate parametric gait reference motion.

See this to generate some reference motion. To train a forward only walking motion, only one example of walking forward is enough. For a holonomous walk, generating ~100 random trajectories seems to be enough.

Training

Relevent source and config files

These are the files that you are most likely to edit:

In awd/data/

In awd/env/tasks/

We mainly use the command task, in which the agent is trained to track velocities, as well as following the reference motion style using AMP.

Train using the following command:

python awd/run.py --task DucklingCommand --num_envs <...> --cfg_env awd/data/cfg/<robot>/duckling_command.yaml --cfg_train awd/data/cfg/<robot>/train/amp_duckling_task.yaml --motion_file awd/data/motions/<robot>/

--motion_file can be used to specify a dataset of motion clips that the model should imitate. You can specify a specific file or a directory containing multiple files.

Checkpoints are saved in output/.

To test a trained model, use the following command:

python awd/run.py --test --task DucklingCommand --num_envs <...> --cfg_env awd/data/cfg/<robot>/duckling_command.yaml --cfg_train awd/data/cfg/<robot>/train/amp_duckling_task.yaml --motion_file awd/data/motions/<robot>/ --checkpoint <path_to_checkpoint.pth>

 

Viewing URDF

python view_urdf.py awd/data/assets/go_bdx/go_bdx.urdf
python view_urdf.py awd/data/assets/mini_bdx/urdf/bdx.urdf

Viewing Placo Frames

python view_urdf.py awd/data/assets/go_bdx/go_bdx.urdf --frames left_foot right_foot trunk head
python view_urdf.py awd/data/assets/mini_bdx/urdf/bdx.urdf --frames left_foot right_foot trunk head