Website | Technical Paper | Videos
This repository contains an Isaaclab implementation of the article CaT: Constraints as Terminations for Legged Locomotion Reinforcement Learning by Elliot Chane-Sane*, Pierre-Alexandre Leziart*, Thomas Flayols, Olivier Stasse, Philippe Souères, and Nicolas Mansard.
This implementation was built by Constant Roux and Maciej Stępień.
This paper has been accepted for the 2024 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2024).
This code relies on either the CleanRL library or RLGames and IsaacLab (version 2.1.0).
Implementation of the constraints manager and modification of the environment can be found in the CaT directory.
ConstraintsManager follows the manager-based Isaac Lab approach, allowing easy integration just like other managers. For a full example, check out cat_flat_env_cfg.py.
@configclass
class ConstraintsCfg:
# Safety Soft Constraints
joint_torque = ConstraintTerm(
func=constraints.joint_torque,
max_p=0.25,
params={"limit": 3.0, "asset_cfg": SceneEntityCfg("robot", joint_names=[".*_HAA", ".*_HFE", ".*_KFE"])},
)
# Safety Hard Constraints
contact = ConstraintTerm(
func=constraints.contact,
max_p=1.0,
params={"asset_cfg": SceneEntityCfg("contact_forces", body_names=["base_link", ".*_UPPER_LEG"])},
)- Install Isaac Lab by following the installation guide.
- Clone the repository separately from the Isaac Lab installation (i.e., outside the
IsaacLabdirectory). - Using a Python interpreter that has Isaac Lab installed, install the library:
python -m pip install -e exts/cat_envsNavigate to the /constraints-as-terminations directory and launch a basic training setup on flat ground with cleanRL:
python scripts/clean_rl/train.py --task=Isaac-Velocity-CaT-Flat-Solo12-v0 --headlessor with RLGames:
python scripts/rl_games/train.py --task=Isaac-Velocity-CaT-Flat-Solo12-v0 --headlessIf everything goes well, you will see monitoring statistics in the terminal as the training progresses. At the end, you can check the result with cleanRL:
python scripts/clean_rl/play.py --task=Isaac-Velocity-CaT-Flat-Solo12-Play-v0 --headless --video --video_length 200or with RLGames:
python scripts/rl_games/play.py --task=Isaac-Velocity-CaT-Flat-Solo12-Play-v0 --headless --video --video_length 200Please cite this work as:
@inproceedings{chane2024cat,
title={CaT: Constraints as Terminations for Legged Locomotion Reinforcement Learning},
author={Elliot Chane-Sane and Pierre-Alexandre Leziart and Thomas Flayols and Olivier Stasse and Philippe Sou{\`e}res and Nicolas Mansard},
booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
year={2024}
}
