class_docstr: This class corresponds to multi-colored cube exploration for a single robot arm.
class_docstr_tok: ["This","class","corresponds","to","multi-colored","cube","exploration","for","a","single","robot","arm","."]
code: def _get_cube_material(self):
      from robosuite.utils.mjcf_utils import array_to_string
  
      rgba = (1, 0, 0, 1)
      cube_material = CustomMaterial(
          texture=rgba,
          tex_name="solid",
          mat_name="solid_mat",
      )
      cube_material.tex_attrib.pop("file")
      cube_material.tex_attrib["type"] = "cube"
      cube_material.tex_attrib["builtin"] = "flat"
      cube_material.tex_attrib["rgb1"] = array_to_string(rgba[:3])
      cube_material.tex_attrib["rgb2"] = array_to_string(rgba[:3])
      cube_material.tex_attrib["width"] = "100"
      cube_material.tex_attrib["height"] = "100"
  
      return cube_material
  
file_path: coach/rl_coach/environments/robosuite/cube_exp.py
imports: import numpy
  from robosuite.utils.mjcf_utils import CustomMaterial
  from robosuite.environments.manipulation.single_arm_env import SingleArmEnv
  from robosuite.environments.manipulation.lift import Lift
  from robosuite.models.arenas import TableArena
  from robosuite.models.objects import BoxObject
  from robosuite.models.tasks import ManipulationTask
  from robosuite.utils.placement_samplers import UniformRandomSampler
label_desc: Use image node_id 4 for calling the CubeExp obj's underlying member method code with example usage: obj._get_cube_material() and returns: cube_material