class_docstr: RoboNet: Large-Scale Multi-Robot Learning.
code: def _info(self):
      if self.builder_config.width is not None:
          if self.builder_config.height is None:
              raise ValueError(
                  "Provide either both height and width or none."
              )
          ffmpeg_extra_args = (
              "-vf",
              "scale={}x{}".format(
                  self.builder_config.height, self.builder_config.width
              ),
          )
      else:
          ffmpeg_extra_args = []
  
      video_shape = (
          None,
          self.builder_config.height,
          self.builder_config.width,
          3,
      )
  
      features = tfds.features.FeaturesDict(
          {
              # Video frames: uint8 [None, Time, Width, Height, Channels]
              "video": tfds.features.Video(
                  video_shape,
                  ffmpeg_extra_args=ffmpeg_extra_args,
                  encoding_format="png",
              ),  # pytype: disable=wrong-arg-types  # gen-stub-imports
              # Robot actions: float32, [None, ACTIONS_DIM]
              "actions": tfds.features.Tensor(
                  shape=(None, ACTIONS_DIM), dtype=np.float32
              ),
              # Robot states: float32, [None, STATE_DIM]
              "states": tfds.features.Tensor(
                  shape=(None, STATES_DIM), dtype=np.float32
              ),
              # Filename: Text
              "filename": tfds.features.Text(),
          }
      )
  
      return self.dataset_info_from_configs(
          features=features,
          homepage="https://www.robonet.wiki/",
      )
  
file_path: datasets/tensorflow_datasets/datasets/robonet/robonet_dataset_builder.py
imports: import os
  import numpy
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
  import tensorflow_datasets.public_api
label_desc: Use image node_id 1 for calling the Builder obj's underlying member method code with example usage: obj._info() and returns: self