Hi all,
People seem to be getting worried by observationSample(). You shouldn't worry too much about this function as it is only used by the test harness to generate observations, and not by any of the filters. It needs to pick a beacon to return the observation to - I chose the beacon with least angle relative to the robot in my implementation. You could pick randomly if you like.
expectedObservation() has also generated some questions. Unlike observationSample(), expectedObservation() is passed an observation. From this you can get the beacon ID. You can then generate the expected observation for that particular beacon.
Will :-}