Vector Transformation and testing results
As I've described before, the task of the vector transformation module is to ingest the results of fine acquisition and output an interpretive attitude reading.
The input to the transformation module is the x & y coordinates of each black dot in the center of each target. This allows MARCO to generate the set of 6 unique vectors which I drew beautifully in the diagram below.
As the more mathematically-inclined of you may know, in a perfect world with infinitely-precise centroid pixel coordinates I would need just 3 targets and two linearly-independent vectors, however this world is far from perfect and the additional target and vectors serve to greatly increase the accuracy of my readings.
To save us all a great deal of time and brain-hurt, I will not talk in-depth about the mathematics that drive this transformation. The actual equations boil down to relatively straightforward trigonometric operations and anyone who's taken college-level linear algebra could probably bulldoze through the derivation in a few hours. I will talk a little about the transformed subspace however.
First off, as you may know, attitude in three dimensions requires three quantitative, linearly-independent measurements to map every unique possible configuration. Initially, my three measurements were to be classic roll, pitch & yaw however this method imposed significant complexity and expense on the transformation protocol.
I instead settled on a different method that is something like a quaternion with additional restrictions that eliminate some of the uglier math. The resultant angles are roll, phi, and theta, with roll defined as the angular difference between target i and camera i, phi defined as the angle from 0-360 starting at target i which describes the direction towards which the target surface is tilted, and theta (0-90 theoretically) which describes the angular tilt of the target surface in the direction of phi.
For example, since target i is defined as the unit average of -v12 and v34, if the target surface were to yaw 30 degrees to its left, phi would be 0 and theta would be 30. If it were to pitch 30 degrees upwards, phi would be 90 and theta would be 30.
The next post will close out this phase of MARCO as a senior project and as a proof of concept.
Comments
Post a Comment