google-deepmind / google-deepmind/deepmind-research
Questions regarding mujoban environment
- 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
Assessment
This issue has not been assessed yet.