Пример #1
0
def make_verb_library_multi(data_dir, verb_lib):
    from lfd import multi_item_verbs
    link_names = ["r_gripper_tool_frame", "l_gripper_tool_frame"]
    verb_data_accessor = multi_item_verbs.VerbDataAccessor()
    for (verb_name,
         verb_info) in verb_data_accessor.get_all_demo_info().items():
        print colorize("processing demo: %s" % verb_name, "red")
        for stage_num, stage_name in enumerate(verb_info["stages"]):
            bag_file_name = "bags/%s.bag" % (stage_name)
            seg_file_name = "images/%s.seg.h5" % (stage_name)

            bag = rosbag.Bag(osp.join(data_dir, bag_file_name))

            segs = bag_proc.create_segment_without_look(bag, link_names)
            if len(segs) > 1: print "warning: more than one segment found"
            kinematics_data = segs[0]

            stage_data = copy(kinematics_data)
            seg_file = h5py.File(osp.join(data_dir, seg_file_name), "r")

            bag_proc.dict_to_hdf(verb_lib, stage_data, stage_name)

            seg_file.copy("/", verb_lib[stage_name], "object_cloud")
            # is the following needed, since it is stored in the yaml file?
            verb_lib[stage_name]["arms_used"] = verb_info["arms_used"][
                stage_num]
Пример #2
0
def make_verb_library_single():
    for (verb_name, verb_info) in verbs.get_all_demo_info().items():
        print colorize("processing demo: %s"%verb_name, "red")
        bag = rosbag.Bag(osp.join(data_dir, verb_info["bag_file"]))
        
        segs = bag_proc.create_segment_without_look(bag, link_names)    
        if len(segs) > 1: print "warning: more than one segment found"
        kinematics_data = segs[0]
        
        verb_data = copy(kinematics_data)
        seg_file = h5py.File(osp.join(data_dir,verb_info["seg_file"]),"r")
        
        bag_proc.dict_to_hdf(verb_lib, verb_data, verb_name)

        seg_file.copy("/", verb_lib[verb_name],"object_clouds")
        verb_lib[verb_name]["arms_used"] = verb_info["arms_used"]
Пример #3
0
def make_verb_library_single(data_dir, verb_lib):
    from lfd import verbs
    link_names = ["r_gripper_tool_frame", "l_gripper_tool_frame"]
    for (verb_name, verb_info) in verbs.get_all_demo_info().items():
        print colorize("processing demo: %s" % verb_name, "red")
        bag = rosbag.Bag(osp.join(data_dir, verb_info["bag_file"]))

        segs = bag_proc.create_segment_without_look(bag, link_names)
        if len(segs) > 1: print "warning: more than one segment found"
        kinematics_data = segs[0]

        verb_data = copy(kinematics_data)
        seg_file = h5py.File(osp.join(data_dir, verb_info["seg_file"]), "r")

        bag_proc.dict_to_hdf(verb_lib, verb_data, verb_name)

        seg_file.copy("/", verb_lib[verb_name], "object_clouds")
        verb_lib[verb_name]["arms_used"] = verb_info["arms_used"]
Пример #4
0
def make_verb_library_multi():
    for (verb_name, verb_info) in multi_item_verbs.get_all_demo_info().items():
        print colorize("processing demo: %s"%verb_name, "red")
        for stage_num, stage_name in enumerate(verb_info["stages"]):
            bag_file_name = "bags/%s.bag" % (stage_name)
            seg_file_name = "images/%s.seg.h5" % (stage_name)

            bag = rosbag.Bag(osp.join(data_dir, bag_file_name))
            
            segs = bag_proc.create_segment_without_look(bag, link_names)
            if len(segs) > 1: print "warning: more than one segment found"
            kinematics_data = segs[0]
            
            stage_data = copy(kinematics_data)
            seg_file = h5py.File(osp.join(data_dir, seg_file_name), "r")
            
            bag_proc.dict_to_hdf(verb_lib, stage_data, stage_name)

            seg_file.copy("/", verb_lib[stage_name], "object_clouds")
            # is the following needed, since it is stored in the yaml file?
            verb_lib[stage_name]["arms_used"] = verb_info["arms_used"][stage_num]
Пример #5
0
task_file = osp.join(data_dir, "knot_demos.yaml")
with open(osp.join(data_dir,task_file),"r") as fh:
    task_info = yaml.load(fh)


db_file = osp.join(data_dir, task_info[args.task]["db_file"])
print 'Writing to', db_file
if osp.exists(db_file):
    if yes_or_no(db_file + ' already exists. Overwrite?'):
        os.remove(db_file)
    else:
        print 'Aborting.'
        sys.exit(1)
task_lib = h5py.File(db_file, mode="w")



for (i_demo,bag_file) in enumerate(task_info[args.task]["demo_bags"]):
    bag = rosbag.Bag(bag_file)
    demo_segs = bag_proc.create_segments(bag, ["r_gripper_tool_frame", "r_gripper_l_finger_tip_link", "r_gripper_r_finger_tip_link", 
                                               "l_gripper_tool_frame", "l_gripper_l_finger_tip_link", "l_gripper_r_finger_tip_link"])
                        
    for (i_seg,demo_seg) in enumerate(demo_segs):
        if demo_seg["done"]:
            path = "%.2i.done"%i_demo
        else:
            path = "%.2i.%.2i"%(i_demo, i_seg)
        demo_seg["demo_index"] = i_demo
        demo_seg["seg_index"] = i_seg
        bag_proc.dict_to_hdf(task_lib, demo_seg, path)