-
Mayank Mittal authored
# Description This PR adds support for callable classes to the `term_cfg.func` attribute. This is needed for complex behaviors where users may want to define certain persistent behaviors as part of the terms. The callable class should take in the term configuration object and the environment instance as inputs to its constructor. Additionally, they should implement the `__call__` function with the signature expected by the manager. For example, in the case of observation terms, this looks like: ```python class complex_function_class: def __init__(self, cfg: ObservationTermCfg, env: object): self.cfg = cfg self.env = env # define some variables self.history_length = 2 self._obs_history = torch.zeros(self.env.num_envs, self.history_length, 2, device=self.env.device) def __call__(self, env: object) -> torch.Tensor: new_obs = torch.rand(env.num_envs, 2, device=env.device) # update history self._obs_history[:, 1:] = self._obs_history[:, :1].clone() self._obs_history[:, 0] = new_obs # return obs return new_obs ``` ## Type of change - New feature (non-breaking change which adds functionality) - This change requires a documentation update ## Checklist - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format` - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] I have updated the changelog and the corresponding version in the extension's `config/extension.toml` file
| Name |
Last commit
|
Last update |
|---|---|---|
| .github | ||
| .vscode | ||
| docker | ||
| docs | ||
| source | ||
| .dockerignore | ||
| .flake8 | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
| orbit.sh | ||
| pyproject.toml |