google-deepmind / google-deepmind/deepmind-research

Questions regarding mujoban environment

Open
#307 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
15.2k
Forks
2.9k
PR merge metrics
No merged PRs in 30d

Description

I have two questions regarding the mujoban environment:

### Warnings and errors
Let us set up the environment as explained in the README and let's perform some random actions:

```
from dm_control import composer
from dm_control.locomotion import walkers
from physics_planning_games.mujoban.mujoban import Mujoban
from physics_planning_games.mujoban.mujoban_level import MujobanLevel
from physics_planning_games.mujoban.boxoban import boxoban_level_generator
import numpy as np

import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)

walker = walkers.JumpingBallWithHead(add_ears=True, camera_height=0.25)
maze = MujobanLevel(boxoban_level_generator)
task = Mujoban(walker=walker,
maze=maze,
control_timestep=0.1,
top_camera_height=96,
top_camera_width=96)
env = composer.Environment(time_limit=1000, task=task)
for _ in range(200):
env.reset()
for _ in range(50):
action = np.random.uniform(low=env.action_spec().minimum, high=env.action_spec().maximum)
env.step(action)
```
This will spew various warnings, but I am mostly concerned about the following two:
```
WARNING:absl:Pre-allocated contact buffer is full. Increase nconmax above 100. Time = 0.0000.
WARNING:absl:Physics state is invalid. Warning(s) raised: mjWARN_CONTACTFULL
```
Apparently, the contact buffer is filled up and weird things start to happen. Occasionally, the walker will pass through a wall and an exception is thrown here: https://github.com/deepmind/deepmind-research/blob/2c7c401024c42c4fb1aa20a8b0471d2e6b480906/physics_planning_games/mujoban/mujoban.py#L389

How am I supposed to handle this? Should I simply increase `nconmax`? How would I go about doing that? The environment is not really usable for me right now.

### Resetting of auxiliary episodes
In "Physically Embedded Planning Problems: New Challenges for Reinforcement Learning" the authors state that

> Auxiliary task episodes are reset when the agent reaches the target or when the time limit of the auxiliary episode is reached

How should I interpret this statement? Does it mean that, whenever the abstract state is changed, the physical state is alterned in such a way that the walker and boxes are centered in their respective fields? I have not found any method in the environment that would perform this action.

Thank you for your help!

Best,
Markus

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.