Top Secret Evil Plan

Version
  1.0

Release Date
  April 19, 2011

Developers
  Kevin Scroggins (nitro404@gmail.com)
  Corey Faibish (corey.faibish@gmail.com)
  Chris Sullivan (yoshi_sully@hotmail.com)

Description
  Top Secret Evil Plan was the nickname for our robotics final project. The goal of the project was
  to simultaneously coordinate 3 robots operating in 3 different areas monitored by 3 different
  computers and get them to deliver 3 randomly placed blocks from each area to the holding area in
  the center, and the 3 pots from the left side of the center to the right side.

  We decided to take a high level approach and take advantage of the position tracking system which
  gave us the position of each robot as calculated using an overhead webcam which monitored the
  robots through the use of algorithms to identify the position, direction and id of the tracking
  tag above each robot. Our software system also used a separate communication system to allow the
  computers to directly communicate with each other. This allowed each user to view real time
  updates and progress on the program's interface as well as down on the ground. We had a set of
  dynamically programmable tasks and objectives that were pre-defined for each individual robot.
  Each task is defined in such a way that it would instruct the robots to move in such a way that
  they would never come into collision with one another, so basic sensor-based collision avoidance
  was not required for this project.

  All in all the software system is completely functional and more advanced than any other project
  our class had produced, and would work perfectly if only a single robot was functioning at any
  given time. However, when we tied in multiple robots, performance would rapidly degrade to the
  point that robots would be plowing into walls and ignoring objectives entirely. This however, was
  not our fault and was in fact the fault of the intermediary software which was responsible for
  updating our software with the robot's position on regular intervals. Once multiple robots were
  involved it would only occasionally send position updates over the network randomly at best, so
  most of the time our software had no idea where the robots actually were. Furthermore, the
  software was flawed in the sense that it had a bug that was never fixed that would corrupt
  transmission of network data related to the position of the robot, so that bits would be flipped
  and the data would sometimes be wrong. Coupled with countless other software and hardware issues,
  this project was a big pain in the ass, and we regrettably never got to see it work fully. We did
  test our code on each individual robot in a local testing environment and everything worked just
  fine, so I'm sure if the robot tracking software was properly functioning everything would have
  gone according to plan.

  There is no way to actually make the planner code run, as it was dynamically loaded from a class
  loader in an external piece of software and required input from such programs in order to
  function. It will not function in any other environment or without this required software.

Changelog
  Version 1.0
    + Final submission.
