# # Lower boom axis projected angles, deployment rotation angle, and # rotation point location (from RO-SEN-TN-3501) # xzangle = 10.8 yzangle = 22.5 rangle = -105.0 rpoint = [1190,678.6-28.6,300] # # Sizes from RO-EST-RS-3012/EID-B. Lap lenght: base to center of the # sphere; MIP: distances between "sticks"; MAG: distance between 1 & 2; # lapsize = 225.0 mipr1t1 = 400.0 mipt1t2 = 200.0 mipt2r2 = 400.0 mag12 = 150.0 print "INPUT projected angles: ", xzangle, yzangle # # Construct rotation axis direction from projected angles. # x = sin ( xzangle / dpr() ) z = - cos ( xzangle / dpr() ) y = tan ( yzangle / dpr() ) * z axis = [x,y,z] print "rotation axis: ", axis # # Verify projected angles. # print 'CHECK projected angles: ', -atan(x/z) * dpr(), atan(y/z) * dpr() # # Construct rotation to boom axis frame assiming that # s/c +X axis is in the boom ZX plane. # xaxis = [1,0,0] call twovec( axis, 3, xaxis, 1, mat ) # # Rotate stowed boom vector from s/c frame to boom axis frame # booms = [0,-1,0] call mxv( mat, booms, booms1 ) # # Rotate boom by rangle about z to "move" it the deploed position. # call rotvec (booms1, rangle/dpr(), 3, boomd1) # # Rotate deployed boom vector back to s/c frame. # call mtxv( mat, boomd1, boomd ) print "deployed boom:", boomd # # Rotate stowed MAG vector from s/c frame to boom axis frame # mags = [0,0,1] call mxv( mat, mags, mags1 ) # # Rotate mag by rangle about z to "move" it the deploed position. # call rotvec (mags1, rangle/dpr(), 3, magd1) # # Rotate deployed mag vector back to s/c frame. # call mtxv( mat, magd1, magd ) print "deployed mag: ", magd # # Construct rotation from s/c to deployed boom frame. # call twovec( boomd, 3, magd, 1, mats2b ) call m2eul( mats2b, 3, 1, 2, rotz, rotx, roty ) print "rot3z, rot2x, rot1y: ", rotz*dpr(), rotx*dpr(), roty*dpr() exit