Skip to content

有关self._render_context_offscreen的问题 #37

@liaojiaxin97

Description

@liaojiaxin97

当我正常安装依赖后,运行pipeline中的dp_robomimic.py,出现了几个问题:
1.yaml文件中的dataset_path:的路径使用相对路径会出现该问题OSError: Unable to synchronously open file,改为绝对路径后可以加载路径(有更好的解决办法吗?)
2.再次运行后出现以下错误
Error executing job with overrides: []
Traceback (most recent call last):
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/CleanDiffuser-main/pipelines/dp_robomimic.py", line 272, in pipeline
metrics.update(inference(args, envs, dataset, agent, logger))
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/CleanDiffuser-main/pipelines/dp_robomimic.py", line 134, in inference
obs, reward, done, info = envs.step(action)
File "/home/pxw/anaconda3/envs/cdiff_v3/lib/python3.9/site-packages/gym/vector/vector_env.py", line 112, in step
return self.step_wait()
File "/home/pxw/anaconda3/envs/cdiff_v3/lib/python3.9/site-packages/gym/vector/sync_vector_env.py", line 138, in step_wait
observation, self._rewards[i], self._dones[i], info = env.step(action)
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/CleanDiffuser-main/cleandiffuser/env/wrapper.py", line 110, in step
observation, reward, done, info = super().step(act)
File "/home/pxw/anaconda3/envs/cdiff_v3/lib/python3.9/site-packages/gym/core.py", line 280, in step
return self.env.step(action)
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/CleanDiffuser-main/cleandiffuser/env/wrapper.py", line 248, in step
frame = self.env.render(
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/CleanDiffuser-main/cleandiffuser/env/robomimic/robomimic_lowdim_wrapper.py", line 93, in render
return self.env.render(mode=mode,
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/robomimic-master/robomimic/envs/env_robosuite.py", line 196, in render
im = self.env.sim.render(height=height, width=width, camera_name=camera_name)
File "/home/pxw/QDU/Neo/Project/CleanDiffuser-main/robosuite/robosuite/utils/binding_utils.py", line 1126, in render
assert self._render_context_offscreen is not None
AssertionError

我找到该文件binding_utils.py,debug发现self._render_context_offscreen为None,并且没有发现能给self._render_context_offscreen赋值的地方,请问该如何修改才能正常运行?
……
if camera_name is None:
camera_id = None
else:
camera_id = self.model.camera_name2id(camera_name)

    assert mode == "offscreen", "only offscreen supported for now"
    assert **self._render_context_offscreen is not None**
    with _MjSim_render_lock:
        self._render_context_offscreen.render(
            width=width, height=height, camera_id=camera_id, segmentation=segmentation
        )
        return self._render_context_offscreen.read_pixels(width, height, depth=depth, segmentation=segmentation)

……

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions