def transform_axis(null_basis,uch_basis,p): axis = get_axis(p) return ogp_util.transform_pts(null_basis,uch_basis,axis)
elif (side == 'back'): near = 'Axial' far = 'Stereo' else: print 'Invalid side' sys.exit() stepdict = ogp_util.getsteps(sys.argv[2]) fixture_basis = ogp_util.l123_basis() meas_basis = ogp_util.get_measbasis(stepdict, fixture_basis) points = ogp_util.get_points(stepdict, near, 7, 4) #print points points = ogp_util.transform_pts(meas_basis, fixture_basis, points) #print points [fiducials_nominal, p0] = ogp_util.l123_fiducials(side) sol = scipy.optimize.leastsq(ogp_util.sensor_fitfunc, p0, args=(points, fiducials_nominal))[0] print 'Sensor fit parameters: ' + str(sol) print 'Sensor fit residuals (um): ' + str( 1000.0 * ogp_util.sensor_fitfunc(sol, points, fiducials_nominal)) sensor_origin = np.array(sol[0:3]) sensor_rotation = ogp_util.make_rotation(sol[3], sol[4], sol[5]) print 'Sensor origin: {0}'.format(sensor_origin) norm_vec = sensor_rotation.T.dot([0.0, 0.0, 1.0])
elif side == "back": near = "Axial" far = "Stereo" else: print "Invalid side" sys.exit() stepdict = ogp_util.getsteps(sys.argv[2]) fixture_basis = ogp_util.l123_basis() meas_basis = ogp_util.get_measbasis(stepdict, fixture_basis) points = ogp_util.get_points(stepdict, near, 7, 4) # print points points = ogp_util.transform_pts(meas_basis, fixture_basis, points) # print points [fiducials_nominal, p0] = ogp_util.l123_fiducials(side) sol = scipy.optimize.leastsq(ogp_util.sensor_fitfunc, p0, args=(points, fiducials_nominal))[0] print "Sensor fit parameters: " + str(sol) print "Sensor fit residuals (um): " + str(1000.0 * ogp_util.sensor_fitfunc(sol, points, fiducials_nominal)) sensor_origin = np.array(sol[0:3]) sensor_rotation = ogp_util.make_rotation(sol[3], sol[4], sol[5]) print "Sensor origin: {0}".format(sensor_origin) norm_vec = sensor_rotation.T.dot([0.0, 0.0, 1.0]) print "Normal vector: {0}".format(norm_vec) meas_vec = sensor_rotation.T.dot([1.0, 0.0, 0.0]) print "Strip vector: {0}".format(meas_vec)