During the 0.6.1 release we resolved an issue with Scenarios.

⏰ For statistics! This release contains 60 changed files with 1,604 additions and 1,535 deletions.

🚀 Features

Composite Action Masking

Composite Action masking is now supported! Making Composabl the first platform to support Action Masking across the different composite spaces.

To use this exciting feature, you can simply return the action mask in your step function's info dictionary. The action mask is a list of 0s and 1s, where 0 means that the action is masked and 1 means that the action is not masked.

Examples:

# Space Type = Discrete
action_mask = [1, 1, 0]

# Space Type = MultiDiscrete
action_mask = [1, 1, 0, 1, 1]

# Space Type = MultiBinary
action_mask = {}

# Space Type = Box
action_mask = {}

# Space Type = Dictionary
action_mask = {
    "action1": [1, 1, 0],
    "action2": [1],
}

# Space Type = Tuple
action_mask = (
    [1, 1],
    [1]
)

def step(self, action):
    obs, reward, is_done, is_terminated = self.sim.step(action)
    info = {"action_mask": action_mask}
    return obs, reward, is_done, is_terminated, info

Input validation on Teacher Methods and Sim Return Values

Input validation now happens on the Teacher Methods and Sim Return values, this will help with debugging issues with the simulator.

💖 Improvements

  • Improved the exception message for the pickle error on key load
  • Resolved an issue with scenarios for skills and selector skills
  • Fixed the import issue on the teacher and controller classes
  • Fixed package version checking
Share this post