class_docstr: Superclass for all MuJoCo environments.
class_docstr_tok: ["Superclass","for","all","MuJoCo","environments","."]
code: def __init__(
      self,
      model_path,
      frame_skip,
      observation_space: Space,
      render_mode: Optional[str] = None,
      width: int = DEFAULT_SIZE,
      height: int = DEFAULT_SIZE,
      camera_id: Optional[int] = None,
      camera_name: Optional[str] = None,
  ):
      if model_path.startswith("/"):
          self.fullpath = model_path
      else:
          self.fullpath = path.join(
              path.dirname(__file__), "assets", model_path
          )
      if not path.exists(self.fullpath):
          raise OSError(f"File {self.fullpath} does not exist")
  
      self.width = width
      self.height = height
      self._initialize_simulation()  # may use width and height
  
      self.init_qpos = self.data.qpos.ravel().copy()
      self.init_qvel = self.data.qvel.ravel().copy()
      self._viewers = {}
  
      self.frame_skip = frame_skip
  
      self.viewer = None
  
      assert self.metadata["render_modes"] == [
          "human",
          "rgb_array",
          "depth_array",
      ], self.metadata["render_modes"]
      assert (
          int(np.round(1.0 / self.dt)) == self.metadata["render_fps"]
      ), f'Expected value: {int(np.round(1.0 / self.dt))}, Actual value: {self.metadata["render_fps"]}'
  
      self.observation_space = observation_space
      self._set_action_space()
  
      self.render_mode = render_mode
      self.camera_name = camera_name
      self.camera_id = camera_id
  
imports: from os import path
  from typing import Optional, Union
  import numpy
  import gym
  from gym import error, logger, spaces
  from gym.spaces import Space
label_desc: Use image node_id 1 to create a new BaseMujocoEnv object from inherited base classes: gym with example: obj = BaseMujocoEnv(model_path, frame_skip, observation_space, render_mode, width, height, camera_id, camera_name)