Results

In all, the project came very close to our initial goal. The player and patrol zumys were able to play the game according to the rules most of the time. We were not able to implement automatic map reading, however, so the maps are hard-coded into the map file, and the boxes are placed on the grid to match. Our code, in theory, is supposed to prevent zumys from attempting to occupy the same square, but they still do that from time to time. Additionally, bad initial readings from the AR tags can cause undesired behaviors, such as running through boxes. This is because the program thinks the initial position of the zumy is somewhere other than its actual location.

Design criteria accomplished:

  • The player zumy knows the exact position of every obstacle and patrol at all times
  • The player zumy uses A* to choose the shortest viable path
  • The patrol zumy(s) only know about adjacent obstacles and incrementally learn the map
  • The patrol zumy(s) gets periodic updates on the player zumy’s location every 5 seconds
  • The patrol zumy(s) successfully converge onto the position of the player zumy
  • The patrol zumy(s) are able to see the player zumy with an onboard camera
  • All the zumys stop after the game ends

Design criteria partially accomplished or unable to accomplish:

  • The zumys avoid running into the obstacles most of the time - mistakes still happen here and there due to inconsistent AR tag readings
  • The positions of the obstacles on the playing field are not read in automatically
  • It is generally pretty difficult for the player zumy to win.

Issues

We experienced a lot of issues with the zumys, and, as such, spent the majority of our time debugging some buggy zumys (watch out for 5, 6, and 7's broken motors). Towards the very end, we were able to use some zumys that behaved very nicely (we love you 1, 2, and 3), but before then they were taken by other groups, some of which actually took them home. Also, only two of the zumys work properly with cameras for reasons we're still not clear on, so we were unable to test that part of our project until we got our hands on those. We spent around 15 hours trying to get the camera ROS packages onto other zumys to no avail. Additionally, there was a multi-week period when all of the lab’s Microsoft cameras were taken and not returned. If we had more time, we would have liked to implement automatic map reading and to have squashed more bugs for a more consistent behavior.