Project Design/Architecture
Design Process Overview
We will use agile development to design and develop our solution. This involves
frequent iterations, at least once a week. Mingle, which is a project development
tool, will be used to plan our design and development. Our design and development
process also includes weekly client meetings, weekly mentor meetings and informal
team meetings about every other day. We believe this process lends itself very
well to this type of project.
Architecture Overview
Hardware
Our solution will use machine vision to precicely quantify the error in alignment.
The camera that we will be using will interface with our software using TWAIN. TWAIN
is a standard interface used to develop applications that must communicate to imaging
devices such as digital cameras or scanners. Because JAVA does not have TWAIN support
natively, we will most likely develop a camera interface in C/C++ and have our main
application, that is written in Java, use the interface.

Architecture Stack
Software
Most of our software, as stated, will be written in Java and developed in Eclipse.
It will include an easy to use interface that will provide a live camera feed from
the camera mounted on the telescope. Once a user aligns a selected mirror, it will
be stored so that the user can export that data into a log. A particular mirror
is selected from a list of mirrors that will most likely bestored in XML format.
This would allow the software to be updated once more mirrors were installed.
Tools Used
The majority of our solution will be written in Java. This application focuses on
image recognition techniques, so significant effort was devoted to developing image
classes to represent image data. To interface with the camera, we took advantage
of the supplied TWAIN driver to communicate with the camera in a low level. Java
does not include native support for TWAIN devices, so a Java Native Interface (JNI)
was requried to allow the camera to be used within Java.
All development was done in the Eclipse IDE Version 3.3.2. Mac and Windows platforms were used to develop on, and JNI development was done specifically on windows. To manage the source code across the team, a Subversion repository was used.
Our client, Jim Clark, was able to set up a temporary lab for us to use. The purpose of this lab was to allow us to get test images of LED markers at a far distance. To do this, we set up a series of mirrors with LED markers attached to them. These mirrors were positioned roughly 20 meters away from each other, which allowed us to get images at 20 meter increments up to and including 200m.