Skip to content

Stack cups ambiguous instruction. #284

@thomas-w-nl

Description

@thomas-w-nl

Hi, I think one of the possible language instructions in stack_cup is incorrect.
The task is to place two cups into one specified cup. But one of the language variations is "place two of the cups onto the odd cup out", but there is no way to determine which cup is the odd cup out.

Looking at the code with 20 colors available:

  # Cup2 gets the target color (based on variation index)
  self.cup2_visual.set_color(target_rgb)

  # Cup1 gets ANY color except the target (19 possibilities)
  random_idx = np.random.choice(len(colors))
  while random_idx == index:
      random_idx = np.random.choice(len(colors))
  _, other1_rgb = colors[random_idx]

  # Cup3 gets ANY color except the target (19 possibilities)
  random_idx = np.random.choice(len(colors))
  while random_idx == index:
      random_idx = np.random.choice(len(colors))
  _, other2_rgb = colors[random_idx]

  # Cup placement logic is identical:
  self.boundary.sample(self.cup2, min_distance=0.05,
                             min_rotation=(0, 0, 0), max_rotation=(0, 0, 0))
  self.boundary.sample(self.cup1, min_distance=0.05,
                             min_rotation=(0, 0, 0), max_rotation=(0, 0, 0))
  self.boundary.sample(self.cup3, min_distance=0.05,
                             min_rotation=(0, 0, 0), max_rotation=(0, 0, 0))

The issue:

  • With 20 colors, there's only a ~5.3% chance (1/19) that cup1 and cup3 get the same color
  • In ~95% of episodes, all three cups have different colors
  • When all three are different, the instruction "place two of the cups onto the odd cup out" is ambiguous. There is no objective "odd one out"

Should we remove this instruction?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions