As an undergrad, I had the opportunity to be involved with the Virginia Tech Space Systems Simulation Laboratory. This lab housed two spacecraft simulators: hardware platforms mounted on air bearings to reduce friction. Our team of four undergraduates was interested in developing a simple attitude sensor using a webcam. The webcam was mounted to the tabletop spacecraft simulator, capable of full yaw motion but limited (±5°) pitch and roll. The webcam viewed a black and white isosceles triangle mounted to the ceiling of the lab. After image processing to determine the vertices of the triangle, one attitude measurement vector can be generated based on the rotation and skew of the triangle as seen by the webcam. The Visual Vector Sensor (VVS) behavior is similar to a star tracker.
As the only junior on a team of seniors, I was invited because of my significant image processing experience due to a C++ class I had previously taken. First, I worked the hardware/software interface to determine how to request raw images directly from the webcam. Next, I used a combination of open-source and self-written code to process the images from the webcam, locating the three vertices and centroid of the triangle. Along the way, I learned Linux and shell scripting, which made testing the VVS significantly faster. Our team presented our results at the 2007 AIAA Region I-MA Student Conference in Hampton, VA; we were awarded 2nd place in the Team Category division.