DSC00379.JPG
DSC_7312 (1).jpg
DSC_7190.JPG
DSC00371.JPG
DSC00379.JPG

Pacbot-info


Bringing the classic
arcade game to the
physical world

 

SCROLL DOWN

Pacbot-info


Bringing the classic
arcade game to the
physical world

 

COMPETITION

 

The PacBots competition is a new competition, designed and hosted by the Harvard Undergraduate Robotics Club. The goal of PacBot is two-fold: to avoid the pursuing “ghosts” – InkBot, PinkBot, BlinkBot, and ClydeBot – and to collect as many points as possible with the three given lives. The PacBot must autonomously navigate the arena, plot its trajectory and that of the ghosts, and strategically collect points. Our PacBot seeks to win the competition by collecting more points than the competing teams.

DSC_7312 (1).jpg

Pacbot-design


Pacbot-design


DESIGN

 

Drawing inspiration from Micromouse, PacBot will make improvements to the mechanical body, the electrical circuitry, and the complex code to best suit the needs of speed, compactness, and efficiency. The competition takes place in a scaled-up Pacman-inspired arena hand-crafted in parallel along with the robots. Schools around the northeastern United States will enter their PacBots into the arena, hoping to elude the hungry ghosts.

DSC_7190.JPG

Registration


Registration


Registration forms for the 2018 competition will be released Fall 2017!

DSC00371.JPG

Rules


Rules


RULES

 

The competition takes place in a scaled-up Pacman-inspired arena hand-crafted in parallel along with the robots. Schools around the northeastern United States will enter their PacBots into the arena, hoping to elude the hungry ghosts. 
Below is the preliminary ruleset that must be followed when designing your robots for the first annual 2017 PacBot Competition at Harvard University. Note that these rules are dynamic and subject to change between now and up to one month before the competition date. Any time the rules are updated, an email will be sent to each participating team alerting them of the change and its purpose. Should you have any questions about the reason for a rule provided below, please email Laura Doherty (lauradoherty@college.harvard.edu) or Shaan Erickson (shaanerickson@college.harvard.edu).

Summary

This competition will mimic the popular game of Pacman. It will consist of four “ghosts,” which are robots to be provided by the hosting team, and one PacBot, which is the robot each participating team will enter in the competition. Each team’s PacBot must adhere to the specifications outlined below, and the ghosts will follow the specifications provided below. They will navigate in the arena specified below. The objective, much like in the arcade game, is to collect as many “dots” as possible. These are outlined in more detail in the “Arena” section of this document. There will be 4 “special dots” that, upon collection by your PacBot, will enable the PacBot to “eat” the ghosts for extra points. These are outlined in more detail in the “Arena” section of this document. Your PacBot will be given three lives to collect as many of the dots as possible. Scoring is outlined in more detail in the “Gameplay” section of this document. The PacBot with the highest score wins the competition.

Arena

The competition will consist of an arena, with boundaries no greater than a quarter-inch thick and at least 3 inches tall. The boundaries will be set up to mimic arenas found in the Pacman game. The layout of the arena is to be set up by an outside group; no member of any teams involved in creating their robots will have any indication of the layout of the arena. An example layout of an arena will be sent to all participating teams in the near future so that you can visualize the space. Unlike the original Pacman game, PacBots will not be able to treat the map as an infinite continuum. In other words, the PacBots cannot exit the arena on the right side and re-enter on the left side; boundaries will be strict. The arena will be set up in a 10 x 10 grid, with each unit being 7”x7”, including the quarter inch boundary. This includes the width of any boundaries that might overlap with the unit. Each grid unit will be assumed to have one implicit “dot” that will be automatically collected when the PacBot enters that unit. Note that the PacBot does not have to go through the unit to collect the dot; it can enter it and turn around. There will be four “special dots” in the arena at each of the four corners of the grid. More details about these special dots are given in the “Gameplay” section of this document. The dots on the map will not respawn at any time.

Gameplay

The goal of your PacBot is to collect as many dots as possible; this means the goal is to cover as much of the grid as possible before losing your three lives. Each distinct grid unit that the PacBot enters will give your team one point; this is the reward for “consuming” an implicit dot of that grid unit. This includes the grid units containing the special dots. To reiterate, your PacBot will not receive an additional point for reentering a tile that has already been visited. Points are only awarded on the first visit of a tile. When the special dots are taken, a signal will be sent to the ghosts to avoid the PacBot for 30 seconds. At the end of this time, the ghosts will resume chasing the PacBot. In the event that your PacBot reaches another special dot within this time period, an additional 30 seconds is added to the remaining time. More details on the ghosts’ behavior is outlined in the “Ghosts” section of this document. During this 30 second period in which the ghosts are avoiding the PacBot, your PacBot can chase the ghosts. If your PacBot catches a ghost, your team will be awarded 30 points. To catch a ghost, your PacBot must come within one adjacent grid space of the ghost with no boundary between. Any time that a ghost catches your PacBot, your team will be deducted one life. At the end of each life, a “pause” signal will be sent out to all robots in the arena. Your PacBot must stop all autonomous movement at this time. The ghosts will also enter standby mode. The team that has the most points after losing their three lives wins the competition. The dots do not reappear when your PacBot loses a life; upon consumption, the dots vanish for the remainder of the game. The game ends when a team has lost all of their three lives or has collected all of the dots on the board. If it should be the case that the 30 second timer from a special dot still has remaining time when all the dots have been consumed, the game will end at the conclusion of those 30 seconds. Should two or more teams end the game by collecting all of the dots on the board, the winner will first be decided by the number of points, then by the number of lives left, then by the time taken to do so.

Ghosts

The ghosts’ physical appearance will largely resemble that of your team’s PacBot. The ghosts are entirely autonomous. The speed of the ghosts is unknown, but will be released to all participating teams once that information is acquired. For the time being, it is reasonable to assume that the ghosts will go no faster than 1 ft/sec. The ghosts will act independently of each other; they will not assist each other in locating and chasing your PacBot. They will have slight differences in their code to prevent all ghosts from following the same path. These differences will likely mimic the differences of the code in the actual game of Pacman. To catch a ghost, your PacBot must come within one adjacent grid space of the ghost with no boundary between. Likewise, for a ghost to catch your PacBot, it must come within one adjacent grid space of the ghost with no boundary between. Note that this adjacent grid space cannot be diagonal of either robot. When your PacBot catches a ghost or vice-versa, the signal to pause will be sent out to all robots in the arena. Your PacBot must enter standby mode at this time (read: stop all movement). The ghosts will be moved to the center of the arena, the PacBot will be placed at the position it was “captured” at, and then the game will be resumed. You will have 5 seconds wherein your PacBot will be free to move around the board while the ghosts remain stationary. The ghosts do not get eliminated when they are caught; it simply gives your team additional points.

Robot Specifications

  1. Each robot must be fully autonomous and automatically respond to signals outlined in this document.
  2. There is no budget limit for any team that wishes to participate. You are welcome to spend as much money on your PacBot as you wish provided that it adheres to the specifications below (primarily Specification #11).
  3. Each robot must be able to completely fit within a 7”x7” grid unit. Bear in mind that it must also be able to turn corners without a corner interfering with a wall of the arena.
  4. Each robot must be no greater than 4” tall.
  5. Each robot must have a flat area on top of the robot in the approximate center that can be covered with a sticker of diameter 1”. The purpose of this sticker is so that the overhead camera can detect the position of your robot in relation to the arena.
  6. Each robot must have no sensor to identify the layout of the grid system outside of what the robot has already passed through or what is in the immediate line of sight of the robot. Note that certain information will be passed to your robot via HTTP or Xbee (see below).
  7. The field will have an overhead camera that the organizers will use to detect the position of the PacBot and the ghosts. Each robot can make a HTTP request to our local server hooked up to the camera, to get the current position of the ghosts. Alternatively we will have an Xbee communication set up. If you wish to use this option, your robot must accept our Xbee module (https://www.sparkfun.com/products/8665).
    • The HTTP Request must be of the form: serverIp:8080/pacbot GET.
    • The HTTP response will be a json object of the form: {ghost1: {x: 1,y: 4}, ghost2:{x: 5, y: 3}, ...}
  8. Each robot must have a trigger to “pause” or stop all movement when it receives a signal of a given specification. If your robot uses our Xbee signal, it will receive the signal through Xbee. If your robot uses http requests, then it has to ping our server with at least a 30Hz frequency. If the stop signal is sent, then our server will respond with the following json object instead of the ghost positions: {stop: true}
  9. If a special dot is eaten, then the Xbee signals and HTTP request responses will also include the special dot time left in the form of an extra parameter. specialTimer:
  10. Each robot must stay within the boundaries of the arena at all times. Robots cannot damage, adjust, move, or climb over any boundary of the arena (See Specification #11).
  11. Bear in mind that this is a friendly gathering of people seeking to further their knowledge of robots and participate in a fun challenge. For this reason, we urge teams to build their robots in good faith with the spirit of competition. Any unfair or unreasonable characteristic of your PacBot will be considered a violation of this principle.