Introduction and goals:
A low-cost module that can be connected to any robot using WiFi or Ethernet (or additional methods). The module will comprise camera/cameras for day and night conditions (IR-filtered vs. noIR filtering); an IR illuminator; photoresistor/light sensor with digital output to determine day/night lighting condition and switch cameras/software accordingly; MCU (e.g. Raspberry Pi) to run software utilising TensorFlow and a pre-trained graph file e.g. InceptionV3 for classifying images obtained using the camera(s).
After images are classified, the results can be sent via WiFi or Ethernet to the robot. The robot could then integrate these results into its software flow. Perhaps alter its movement accordingly (e.g. collect on object that has been classified by the robot vision module, communicate with the object that has been classified); or communicate the results to an operator (e.g. text to speech), etc, etc. Well obviously there are many things the robot could do!!
I said to use a pre-trained graph (e.g. InceptionV3) to classify images using TensorFlow, but we should try to make it easy for users to retrain a model too for their Robot Vision Module (e.g. https://www.tensorflow.org/tutorials/image_retraining).
In this video I used a pre-trained graph file (InceptionV3) and re-trained InceptionV3 with TensorFlow on a Raspberry Pi to classify images:
Here's the code mentioned: #software elephant detector: transfer learning off-shelf model with TensorFlow
So that's fine if we want to just capture still images! But we'll have to use a different approach for classifying images from video.
Hardware Outline:

Open Source:
Any software written for the Robot Vision Module project is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 See http://www.gnu.org/licenses/
This is the license for OpenCV, since OpenCV libraries will be used in the project http://opencv.org/license.html
This is the license for Python, since Python will be used in the project https://www.python.org/download/releases/3.4.0/license/
TensorFlow is open-sourced as a standalone library and associated tools, tutorials, and examples with the Apache 2.0 license
Any hardware plans for the Robot Vision Module project, including 3d design files and stl files, etc. are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. See http://creativecommons.org/licenses/by-sa/4.0/