code: def _player_step_tuple(self, envs_step_tuples):
      
      ob_real, reward_real, _, _ = envs_step_tuples["real_env"]
      ob_sim, reward_sim, _, _ = envs_step_tuples["sim_env"]
      ob_err = absolute_hinge_difference(ob_sim, ob_real)
  
      ob_real_aug = self._augment_observation(ob_real, reward_real,
                                              self.cumulative_real_reward)
      ob_sim_aug = self._augment_observation(ob_sim, reward_sim,
                                             self.cumulative_sim_reward)
      ob_err_aug = self._augment_observation(
          ob_err, reward_sim - reward_real,
          self.cumulative_sim_reward - self.cumulative_real_reward
      )
      ob = np.concatenate([ob_sim_aug, ob_real_aug, ob_err_aug], axis=1)
      _, reward, done, info = envs_step_tuples["real_env"]
      return ob, reward, done, info
docs: Construct observation, return usual step tuple.
  
      Args:
        envs_step_tuples: tuples.
  
      Returns:
        Step tuple: ob, reward, done, info
          ob: concatenated images [simulated observation, real observation,
            difference], with additional informations in header.
          reward: real environment reward
          done: True iff. envs_step_tuples['real_env'][2] is True
          info: real environment info