def calc_final_error(dt):

    tStartTracker = tracker_times.min() - owl_times.min() - dt

    if args.item == "cloth":
        used_leds = [i for pair in led_pairs for i in pair]
        led2ind = {}
        for (ind, led) in enumerate(used_leds):
            led2ind[led] = ind
        ind_pairs = [(led2ind[led0], led2ind[led1])
                     for (led0, led1) in led_pairs]
        marker2info = ev.calculate_cloth_tracking_score1(
            tracker_arr, tracker_times - tStartTracker, tracker_triangles,
            owl_arr[:, used_leds, :], owl_times, ind_pairs)
    elif args.item == "rope":
        used_leds = rope_leds
        marker2info = ev.calculate_rope_tracking_score(
            tracker_arr, tracker_times - tStartTracker,
            owl_arr[:, used_leds, :], owl_times, used_leds)

    errors = []
    for info in marker2info:
        err_q = ev.norms(info["position_relative"], 1)
        errors.extend(err_q.tolist())
    final_error = np.median(errors)
    print dt, final_error
    return final_error
Esempio n. 2
0
def calc_final_error(dt):
    
    tStartTracker = tracker_times.min() - owl_times.min() - dt
    
    if args.item == "cloth":
        used_leds = [i for pair in led_pairs for i in pair]    
        led2ind = {}
        for (ind,led) in enumerate(used_leds):
            led2ind[led] = ind
        ind_pairs = [(led2ind[led0], led2ind[led1]) for (led0, led1) in led_pairs]    
        marker2info =  ev.calculate_cloth_tracking_score1(tracker_arr, tracker_times-tStartTracker, tracker_triangles, owl_arr[:,used_leds,:], owl_times, ind_pairs)
    elif args.item == "rope":
        used_leds = rope_leds
        marker2info = ev.calculate_rope_tracking_score(tracker_arr, tracker_times-tStartTracker, owl_arr[:,used_leds,:], owl_times, used_leds)
    
    errors = []
    for info in marker2info:
        err_q = ev.norms(info["position_relative"],1)    
        errors.extend(err_q.tolist())
    final_error = np.median(errors)  
    print dt, final_error
    return final_error
    marker2info = ev.calculate_cloth_tracking_score1(tracker_arr,
                                                     tracker_times,
                                                     tracker_triangles,
                                                     owl_arr[:, used_leds, :],
                                                     owl_times, ind_pairs)
elif args.item == "rope":
    used_leds = rope_leds
    marker2info = ev.calculate_rope_tracking_score(tracker_arr, tracker_times,
                                                   owl_arr[:, used_leds, :],
                                                   owl_times, used_leds)

if 1:
    errors = []
    median_errors = []
    for info in marker2info:
        err_q = ev.norms(info["position_relative"], 1)
        errors.extend(err_q.tolist())
        median_errors.append(np.median(err_q))

    import scipy.stats as ss
    per_errors = []
    for per in xrange(0, 101, 10):
        per_errors.append(ss.scoreatpercentile(errors, per))
        print per, ss.scoreatpercentile(errors, per)

    np.savetxt(osp.join(osp.dirname(args.bagfile), "per_errors.txt"),
               per_errors)
    #err_q = err_q3[:,0]

    #plt.plot(info["times"], err_q,'.')
    plt.xlabel('seconds')
                                                    tracker_times,
                                                    tracker_triangles,
                                                    owl_arr[:, used_leds, :],
                                                    owl_times,
                                                    ind_pairs,
                                                    demean_at_beginning=False)
elif args.item == "rope":
    used_leds = rope_leds
    marker2info = ev.calculate_rope_tracking_score(tracker_arr, tracker_times,
                                                   owl_arr[:, used_leds, :],
                                                   owl_times, used_leds)

if 1:
    median_errors = []
    for info in marker2info:
        err_q = ev.norms(info["position_demeaned"], 1)
        median_errors.append(np.median(err_q))
        #err_q = err_q3[:,0]
        plt.plot(info["times"], err_q, '.')
    plt.xlabel('seconds')
    plt.ylabel('error (m)')
    plt.legend([str(led) for led in used_leds])

    print "median erros", median_errors
    print "median median error:", np.median(median_errors)

if 1:
    import mayavi.mlab as mlab
    mlab.figure(1)
    mlab.clf()
    print "nodes"
Esempio n. 5
0
if args.item == "cloth":
    used_leds = [i for pair in led_pairs for i in pair]    
    led2ind = {}
    for (ind,led) in enumerate(used_leds):
        led2ind[led] = ind
    ind_pairs = [(led2ind[led0], led2ind[led1]) for (led0, led1) in led_pairs]    
    marker2info =  ev.calculate_cloth_tracking_score1(tracker_arr, tracker_times, tracker_triangles, owl_arr[:,used_leds,:], owl_times, ind_pairs)
elif args.item == "rope":
    used_leds = rope_leds
    marker2info = ev.calculate_rope_tracking_score(tracker_arr, tracker_times, owl_arr[:,used_leds,:], owl_times, used_leds)

if 1:
    errors = []
    median_errors = []
    for info in marker2info:
        err_q = ev.norms(info["position_relative"],1)
        errors.extend(err_q.tolist())
        median_errors.append(np.median(err_q))
        
        
    import scipy.stats as ss
    per_errors = []
    for per in xrange(0,101,10):
        per_errors.append(ss.scoreatpercentile(errors, per))
        print per, ss.scoreatpercentile(errors, per)

    
    np.savetxt(osp.join(osp.dirname(args.bagfile),"per_errors.txt"), per_errors)
        #err_q = err_q3[:,0]
        
        #plt.plot(info["times"], err_q,'.')