lots of vision stuff from Ben
diff --git a/frc971/atom_code/atom_code.gyp b/frc971/atom_code/atom_code.gyp
index d727036..1b8c9e5 100644
--- a/frc971/atom_code/atom_code.gyp
+++ b/frc971/atom_code/atom_code.gyp
@@ -10,6 +10,8 @@
         '../input/input.gyp:SensorReader',
         '../input/input.gyp:GyroReader',
         '../input/input.gyp:AutoMode',
+        '../../vision/vision.gyp:OpenCVWorkTask',
+        '../../vision/vision.gyp:GoalMaster',
         '../output/output.gyp:MotorWriter',
         '../output/output.gyp:CameraServer',
         'camera/camera.gyp:frc971',
diff --git a/frc971/atom_code/atom_code.gyp.orig b/frc971/atom_code/atom_code.gyp.orig
new file mode 100644
index 0000000..d727036
--- /dev/null
+++ b/frc971/atom_code/atom_code.gyp.orig
@@ -0,0 +1,28 @@
+{
+  'targets': [
+    {
+      'target_name': 'All',
+      'type': 'none',
+      'dependencies': [
+        '<(AOS)/build/aos_all.gyp:Atom',
+        '../control_loops/control_loops.gyp:DriveTrain',
+        '../input/input.gyp:JoystickReader',
+        '../input/input.gyp:SensorReader',
+        '../input/input.gyp:GyroReader',
+        '../input/input.gyp:AutoMode',
+        '../output/output.gyp:MotorWriter',
+        '../output/output.gyp:CameraServer',
+        'camera/camera.gyp:frc971',
+      ],
+      'copies': [
+        {
+          'destination': '<(rsync_dir)',
+          'files': [
+            'scripts/aos_module.ko',
+            'scripts/start_list.txt',
+          ],
+        },
+      ],
+    },
+  ],
+}
diff --git a/frc971/queues/CameraEnableQueue.q b/frc971/queues/CameraEnableQueue.q
new file mode 100644
index 0000000..d61a7ee
--- /dev/null
+++ b/frc971/queues/CameraEnableQueue.q
@@ -0,0 +1,7 @@
+package frc971.sensors;
+
+message CameraEnable {
+	bool enable_camera;
+};
+
+queue CameraEnable camera_enable;
diff --git a/frc971/queues/CameraTarget.q b/frc971/queues/CameraTarget.q
new file mode 100644
index 0000000..1abe65e
--- /dev/null
+++ b/frc971/queues/CameraTarget.q
@@ -0,0 +1,15 @@
+package frc971.vision;
+
+message CameraTarget {
+  double percent_azimuth_off_center;
+  double percent_elevation_off_center;
+  // todo:(pschuh) add time syntax when havith more sleep
+  uint64_t timestamp; 
+};
+
+message TargetAngle {
+  double target_angle;
+};
+
+queue TargetAngle target_angle;
+queue CameraTarget targets;
diff --git a/frc971/queues/PhotoSensor.q b/frc971/queues/PhotoSensor.q
new file mode 100644
index 0000000..383bc25
--- /dev/null
+++ b/frc971/queues/PhotoSensor.q
@@ -0,0 +1,10 @@
+package frc971.sensors;
+
+message BlockedSensor {
+	bool blocked;
+};
+
+queue BlockedSensor bottom_ball_sensor;
+queue BlockedSensor top_ball_sensor;
+queue BlockedSensor left_bump;
+queue BlockedSensor right_bump;
diff --git a/frc971/queues/queues.gyp b/frc971/queues/queues.gyp
index 70ed873..6accfd8 100644
--- a/frc971/queues/queues.gyp
+++ b/frc971/queues/queues.gyp
@@ -1,7 +1,10 @@
 {
   'variables': {
     'queue_files': [
+      'CameraEnableQueue.q',
       'GyroAngle.q',
+      'CameraTarget.q',
+      'PhotoSensor.q',
       'Piston.q',
     ]
   },