Beispiel #1
0
    # filter the objects which have been generated grasps
    file_list = []
    for file in file_list_tmp:
        grasp_file_name = os.path.join(file, "grasps.pickle")
        if not os.path.exists(grasp_file_name):
            file_list.append(file)
    if len(file_list) == 0:  # all objects have generated grasps
        print("[INFO] All objects have been generated grasps!")
        exit(0)

    object_numbers = len(file_list)
    print("[file_list]:", file_list, "obj_num:", object_numbers, "\n")

    sample_config = YamlConfig("./config/sample_config.yaml")
    gripper = RobotGripper.load("./config/gripper_params.yaml")

    fc_list = [
        3.0, 2.0, 1.7, 1.4, 1.3, 1.2, 1.1, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4,
        0.3
    ]  # 15
    #                                       |                        |              |
    print("[fc_list]", fc_list, "len:", len(fc_list))

    # test a worker
    # good_grasp = []
    # worker(1, 1, good_grasp)
    # exit()

    start_time = time.time()
    job_list = np.arange(object_numbers)
Beispiel #2
0
from foxarm.common.keys import *
from foxarm.common.sdf_file import SdfFile
from foxarm.common.obj_file import ObjFile
from foxarm.common.database import Hdf5Database
def prn_obj(obj):
	print('\n'.join(['*** %s ***\n%s\n' % item for item in obj.__dict__.items()]))

CONFIG = YamlConfig(TEST_CONFIG_NAME)

of = ObjFile(OBJ_FILENAME)
sf = SdfFile(SDF_FILENAME)
mesh  = of.read()
sdf   = sf.read()

obj = GraspableObject3D(sdf, mesh)
gripper = RobotGripper.load(GRIPPER_NAME, os.path.join(WORK_DIR, "foxarm/common"))
ags = AntipodalGraspSampler(gripper, CONFIG)

database = Hdf5Database(TEST_DB_NAME, access_level=READ_WRITE_ACCESS)
dataset = database.dataset(TEST_DS_NAME)

##### Generate Grasps #####
print('\n\n*****\tObject:  %s\t*****' % dataset.object_keys[0])
unaligned_grasps = ags.generate_grasps(obj, target_num_grasps=100)
print('### Generated %d unaligned grasps! ###' % len(unaligned_grasps))
grasps = {}

stps = dataset.stable_poses(dataset.object_keys[0])
print('### Generated %d stable poses! ###' % len(stps))

for stp in stps: