As part of my NASA Space Grant Fellowship, provided through the Hawaii Space Grant Consortium, I designed, fabricated, and tested a sattelite testbed that performed uniaxial calibration of a satellite's attitude, determination, and control subsystem (ADCS). This semester-long project also required a presentation at the Space Grant Consortium symposium, and a final report which was included in the Space Grant publication. By the end of the semester, I had built a working testbed structure which was called a TestSat.
As this was my first engineering project, my mentors advised me to begin with a trade study to determine whether or not a servo or stepper motor would be preferred for this project. For its relatively lower price, and ability to precisely control position when used with a planetary gearbox, I determined that the stepper motor was the best choice for the project's needs. Should the need arise, the motor itself can always be substituted for another type in the future. An optical encoder fitted to a coupled drive shaft was used to determine the accuracy and position of the TestSat rotation.
In order to properly calibrate the ADCS subsystem, structural stability and smooth rotation are crucial to minimize errors during calibration. I chose to use a roller bearing in order to maintain drive shaft position while taking into account any radial loading on the drive shaft during TestSat operation. Due to the TestSat's relatively low angular acceleration, however, the effects from radial loading were assumed to be minimal since the TestSat will be rotated at a very low angular acceleration of 0.002 rad/s^2. In order to accommodate axial loading and minimize friction during operation, a large-diameter ring-style turntable bearing was used.
I designed and built the GUI (graphical user interface) using the Processing programming language and the ControlP5 library. The GUI allowed the user to control TestSat rotation, velocity, angular acceleration, and QSB factor. This was my first time programming, however, due to the active community and documentation of the Processing language, I was able to learn this portion of the project relatively easily. I also found my graphic design background was beneficial when designing the visual layout of the interface.
The project was successfully completed as defined by the mission objectives: