This kind of navigation is something we'd seen on YouTube with other robots. We wanted to give it a try for ourselves. It wasn't hard, so to spice it up a little we added an interesting twist: the robot starts facing either north, east, south or west on the grid, and the user tells the robot which of those directions it is facing, but not its position. It can be positioned anywhere within the grid, not just on a line. Then, the robot navigates by itself to the (0, 0) position. Due to the limitations of our implementation, however, this is only designed to work when the robot is actually within the grid itself (i.e., it should not be placed along the farthest north or farthest west line).
After reaching the origin, the robot allows the user to select a number between 1 and 9. Then, the user is prompted to enter that number of destinations. The robot navigates to each point in the order specified, and then terminates the program.
Download Project Tabletop source code (which includes the grid navigation program) here. Note that you might need to tweak the expected sensor values to get the correct performance as shown in the video.