Skip to content

[Bug] Render not always working for gym engine #251

@jelledouwe

Description

@jelledouwe

🐛 Bug

When using the gym engine, the human render screen does not always appear.

To Reproduce

Create object (for example pendulum-v1) with gym engine and single process backend.
Then call env.render("human") and train with sb3.

import eagerx
from eagerx_dcsc_setups.pendulum.objects import Pendulum
from eagerx_dcsc_setups.pendulum.envs import PendulumEnv
from eagerx.engines.openai_gym.engine import GymEngine
from eagerx.wrappers import Flatten
from eagerx.backends.single_process import SingleProcess

import stable_baselines3 as sb3
import gym.wrappers as w

if __name__ == "__main__":
    rate = 20

    # Create pendulum object
    pendulum = Pendulum.make(
        "pendulum",
        actuators=["u"],
        sensors=["x", "image"],
        states=["model_state", "max_speed", "length"],
        actuator_rate=rate,
        sensor_rate=rate,
    )

    # Create graph
    graph = eagerx.Graph.create()
    graph.add(pendulum)
    graph.connect(action="voltage", target=pendulum.actuators.u)
    graph.connect(source=pendulum.sensors.x, observation="angle_data")
    graph.render(source=pendulum.sensors.image, rate=rate)

    gym_engine = GymEngine.make(rate=rate, process=eagerx.ENVIRONMENT)

    backend = SingleProcess.make()

    # Create envs
    train_env = PendulumEnv(
        name="TrainEnv",
        rate=rate,
        graph=graph,
        engine=gym_engine,
        backend=backend,
    )
    train_env = w.rescale_action.RescaleAction(Flatten(train_env), min_action=-1.0, max_action=1.0)
    train_env.render("human")
    model = sb3.SAC("MlpPolicy", train_env, verbose=1, learning_rate=7e-4)
    model.learn(total_timesteps=5000)

Expected behavior

Render screen opening.
Note that a workaround is to do an extra reset before training.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions