Skip to content
Ziwen Zhuang edited this page Sep 27, 2023 · 1 revision

Robot Parkour Learning

Welcome to the documentation for the Robot Parkour Learning Wiki!

Prefix

Suppose you are familiar with how legged_gym works. There are only a few updates that can get you quickly acquainted with how this repository works.

  1. We follow the task_registry mechanism on legged_gym. So it is the same command to run different tasks.

  2. For each experiment run, all the data including complete configurations (no matter how you change your config.py file) will be logged into the logdir. It can always be found in logs/{experiment_name}/{logdir}, where {logdir} typically starts with a datetime. Then you can view the curves using a tensorboard.

  3. The loss computation of PPO is extracted from the original update function. Thus, you can implement and improve the algorithm by directly inheriting the PPO class, registering it in rsl_rl/algorithms/__init__.py, and invoking it by setting algorithm_class_name in your config file.

  4. The terrain is re-implemented. But it still follows the grid principle. This means you can still get the attributes like env_origins, etc.

  5. The observation is re-implemented. Considering observation is always handled as a 1D vector in the rollout storage and observation can be multi-modal (vision in 2D, proprioception in 1D, obstacle ID in one hot), we introduced a new object named obs_segments. It is an OrderedDict that tells you the shape of each segment in the entire 1D observation vector.

    Check line 670 get_obs_segment_from_components in legged_robot_field.py as the example. Also, check line 83 get_obs_slice in rsl_rl/utils/utils.py for how to decode the obs_segments into to slice object.

Clone this wiki locally