code: def step(self, action):
      self.sim.data.ctrl[:] = action
      for _ in range(self.frameskip):
          self.sim.step()
  
      self.current_episode_steps_counter += 1
  
      state = self._get_obs()
  
      # visualize the angular velocities
      state_velocity = np.copy(state["observation"][-1] / 20)
      goal_velocity = self.goal[-1] / 20
      self.sim.model.site_size[2] = np.array(
          [0.01, 0.01, state_velocity]
      )
      self.sim.data.mocap_pos[2] = np.array(
          [0.85, 0, 0.75 + state_velocity]
      )
      self.sim.model.site_size[3] = np.array(
          [0.01, 0.01, goal_velocity]
      )
      self.sim.data.mocap_pos[3] = np.array(
          [1.15, 0, 0.75 + goal_velocity]
      )
  
      return state, self._reward(), self._terminate(), {}
  
file_path: coach/rl_coach/environments/mujoco/pendulum_with_goals.py
imports: import os
  import gym
  import numpy
  from gym import spaces
  from gym.envs.registration import EnvSpec
  from mujoco_py import load_model_from_path, MjSim, MjViewer, MjRenderContextOffscreen
label_desc: Use image node_id 5 for calling the PendulumWithGoals obj's underlying member method code with example usage: obj.step(action) and returns: state,  self,  self,  dict