teach for america — after recruitment

Sounds like fun. I’m applying.

In other news, I now have a level 30 paladin on the western us realms, my little avenger finally has conviction. Useful for helping those strong in elemental-tastic destruction. Now I just need someone to play with.

Work is very frustrating. I’m not sure if there’s some linear algebra I just don’t know that would make it all very easy (it seems like there ought to be).

Consider, rotation matrices R_i, and A. The R_i’s are known; A is not. Also, unit vector x, representing the displacement between two objects in one frame of reference, and unit vector x_i, the displacement vector in another, changing, frame of reference.

x = R_i*A*x_i

x and A are unknown. There are a large number of samples, and we can do this for multiple points (so, y, y_i, and z, z_i are possible as well). Determine A. Remember to constrain it to an orthonormal rotation matrix, rotating from one right handed coordinate system to another. Try to avoid referencing individual elements of the matrix where possible. Also note that the equation solver will puke in a variety of hideous ways when you attempt to feed it a system of 9 equations in 9 variables. Tantrums are not a valid solution.

I was about to get into a deep funk about not being contacted back. Not by Lai-San (on whose recommendation I am waiting), not recieving my transcripts back from cmu, and no word from the gentleman of the hour. Then the gentleman called. One ought to be careful what one asks for, as one just might get it.

11 thoughts on “teach for america — after recruitment”

  1. I will assume that when you say “x and A are unknown” you don’t mean “I’m giving you a tautologically unsolvable problem” or “I’m asking you to pick values of x and A that’ll work”, but “Hey, you can sample the value of x for a given xi, what is A?”

    Also, why is xi a unit vector, if its a displacement between two points? And why didn’t you specify that x is also a unit vector?

    If I am wrong, you should restate the problem, otherwise you get no help. (I may very well be wrong, because the way I’ve interpreted the problem makes it look extraordinarily simple)

    let f(v) : = Ri*A*v

    A = RT*[f(<1,0,0>), f(<0,1,0>), f(<0,0,1>)]

    Or are you not allowed to feed arbitrary vectors into it?
    In which case, find 3 vectors, no pair of which is parrallel, and call them a, b and c.

    define M to be the inverse of

    [[ ax, bx, cx],
     [ ay, by, cy],
     [ az, bz, cz]]
    

    which is possible, because you have picked a, b and c to be a spanning set.

    Then

    A = RT*K*M
    
    where
    
        [[f(a)x, f(b)x, f(c)x],
    K =  [f(a)y, f(b)y, f(c)y],
         [f(a)z, f(b)z, f(c)z]]
    

    Note, however, that this assumes your function returns perfect answers. If there is some error in your function f, then you may (will) get a non-orthonormal matrix back.

    If this is actually the case, then what you want to do is look up the Levenberg Marquadt method, and get into some heavy numerical petting, with many many samples of the function to minimize error over.

    1. First some context for the problem. We have a freely rotating system, with, among other things, a camera and an imu, which measures orientation (not absolutely, but we’ve got that under control). The camera and imu are rigidly mounted on a plate. The precise relationship between the imu’s orientation and the camera’s orientation is what this is all about.

      The method we’re using is to stick the system on a tripod, point it at something far away and rotate it. We then track one or more objects in the camera’s field of view over various frames, and attempt to infer the orientation from this.

      x is the unit vector along the displacement between the system and the object in the initial imu frame of reference. x_i is a unit vector derived from the pixel location of the object and the properties of the camera, which represents the same unit vector in the camera’s frame of reference at time i.

      R_i is the rotation matrix which translates from a vector in the imu orientation at time i to the original imu orientation.

      so the reason I decided to normalize the vectors was all about avoiding having to worry about arbitrary scaling factors for objects we don’t even know the ranges to. And because it really doesn’t make a difference how far away they are, as far as the computation is concerned. (we want them far away, though, to minimize any visual effects due to the camera being off the center of the tripod’s rotation.)

      Due to pixelization and any number of other sources of error, we aren’t counting on perfect accuracy from out x_i’s (and I’m not counting on perfect accuracy in the R_i’s either, but probably closer on that one). So, I’ll google the Levenberg Marquadt stuff.

      Gracias 😉

      1. Also, do you get a distinct Ri for each sample, corresponding to exactly one xi?

        If not, then your subscripts suck. If so, then your problem is ill-defined, and possibly (most likely) underconstrained.

  2. The teaching thing sounds pretty awesome…my arguement against it was always the money, and if it ain’t a problem, I say go for it! Steady work is in short supply, but fulfilling work is even scarcer.

    Forgive me if my info is horribly out of date, but did you ever hear back from Amazon?

    1. Not horribly out of date, still haven’t heard back from amazon. Gave the recruiter a call yesterday morning. (1 week after 2nd technical interview). No word. *shrug*

      The money is enough to get me out of debt in a couple years with enough left over that I could do the transcontinental bike ride, if I manage to maintain my current level of frugality, but certainly not enough to buy me a house and a car, and what not.

Leave a Reply

Your email address will not be published. Required fields are marked *