Robot name

`condition?` is a confusing name. You also throw a collision error when there's no collision but the name is invalid. Also, this method is named `check`, but it also returns the name? That's strange and unexpected.