Skip to content

Version 1.0 - #33

Open
jgillick wants to merge 39 commits into
mainfrom
v1.0
Open

jgillick wants to merge 39 commits into
mainfrom
v1.0

Conversation

@jgillick

@jgillick jgillick commented Sep 15, 2026 •

Copy link
Copy Markdown
Owner

This is a major version that cleans up some syntax and removes deprecated items. See the UPGRADE.md file for the full instructions on upgrading your environments.

Breaking changes

  • Requires Genesis World 1.3.0+
  • Removed deprecated params
  • Refactored MDP functions and params.
  • Changed *_attr params to point to the actual instances (e.g. robot_attr="robot" to robot=self.robot)
  • NOTE: Fixed a reset bug to clear previous step values (observations, terminations, actions, etc). Your environment might need to enable observation normalization (in rsl-rl: obs_normalization=True) if it stops reaching convergence.

Other Changes

  • Migrated to mono-repo
  • Added genesis-forge-runtime package for running trained models on robot.
  • Add VelocityActionManager
  • Added a Pose2dCommand for commanding a target position and heading
  • Added imu_projected_gravity observation to create estimated projected gravity from the IMU sensor.
  • VelocityCommandManager: added angular velocity debug indicator
  • Enhanced velocity tracking rewards (command_tracking_lin_vel/command_tracking_ang_vel): sensitivity can now be automatically derived from the command range
  • Examples: Added a couple of wheeled robot examples, one including obstacle avoidance
  • ContactManager: Added support for multiple target entities. (with_entities=list(...))
  • Action managers: you can now drive several joints from one action with action_groups.
  • Action managers: added action delay randomization (pass a min/max tuple instead of a fixed int)
  • Fix ObservationManager: noise is applied before scaling
  • Added higher-resolution debug arrows.
  • Added observation clipping
  • Fix action delay in setup/reset
  • Fix envs_idx to be a tensor type on all managers and mdp reset functions
  • Fix class name type: SkrlEnvWapper -> SkrlEnvWrapper
  • Added unit test coverage
  • Fixes for Genesis 1.4

MDP Functions (rewards, terminations, observations, entity resets)

This is the biggest change in this version. We're deprecating the params dictionaries in favor of data classes. For example:

Before

RewardManager(
    self,
    cfg={
        "base_height_target": {
            "weight": -50.0,
            "fn": rewards.base_height,
            "params": {
                "target_height": 0.3,
                "entity_attr": "robot",
            },
        },
    }
);

After

RewardManager(
    self,
    cfg={
        "base_height_target": {
            "weight": -50.0,
            "fn": rewards.base_height(
                target_height=0.3, 
                entity_attr="robot"
            ),
        },
    }
);

Note that params are passed directly into base_height. This allows for easier type checking and IDE autocomplete. Before, you'd need to open the mdp function documentation to get the list of params to type into the params dict.

This also changes how you write custom class-based MDP functions. Now they look like this:

@dataclass(kw_only=True, eq=False)
class lin_vel_z_l2(MdpFn):
    entity_manager: EntityManager = None

    def __call__(self, env: GenesisEnv) -> torch.Tensor:
        linear_vel = self.entity_manager.get_linear_velocity()
        return torch.square(linear_vel[:, 2])

jgillick and others added 30 commits August 23, 2026 13:35
* Add angular velocity indicators to the velocity command manager

* Update the wheeled robot to be a 4-wheel system

* Fix envs_idx to torch.Tensor type

* Fix action delay setup/reset

* Fix class name type: SkrlEnvWapper -> SkrlEnvWrapper
Misc typing fixes

* Automatically calculate sensitivity for velocity command rewards

* Add stopped_dof_velocity penalty

* Fix code error

* Update Freenove model and training environment

* Cleanup

* Update stopped_envs in velocity manager to take a threshold.

* More PR feedback/fixes

* Debug mesh builders (#32)
* Update Freenove model and training environment

* Checkpoint

* Fix bugs

* Pose2dCommand

* Cleanup noise and needless constants.

* Cleanup readme, environment and unnecessary meshes

* Fix navigation training

* Remove unused rewards

* Fix: Observation noise is applied before scaling

* Update project settings

* Rename model directory

* Update/fix/run examples

* Update observation example

* Cleanup Pose2DCommand

* Cleanup

* Add pattern name matching utils

* copy edit

* lint trap

* Add pose2d videos
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