예제 #1
0
def basic_info():
    env = FetchDiscreteEnv(dis_tolerance=0.001, step_ds=0.005)
    obs = env.reset()

    print("Start position ->", env.pos)
    print("Start (Close) gripper state ->", env.gripper_state)

    env.gripper_close(False)
    print("Open gripper state ->", env.gripper_state)
    # Open gripper state -> [0.0500507 0.0500507]

    env.gripper_close(True)
    print("Close gripper state ->", env.gripper_state)
    # Close gripper state -> [0.00184229 0.00184229]

    env.measure_obj_reward()
예제 #2
0
def go_obj_savepic(is_render=True):
    save_dir = 'z_fetch_run_pic'
    create_dir(save_dir)
    # dis_tolerance  = 0.0001     # 1mm
    step_ds = 0.005
    env = FetchDiscreteEnv(dis_tolerance=0.001, step_ds=0.005)
    # obs = env.reset()
    # done = False

    # ori_pos = (obs['eeinfo'][0]).copy()
    print('---ori_pos = ', env.pos, '----')
    # step  = 0
    # robot_step = 0
    # # env.render()
    s_time = time.time()
    # env.render()
    # step_count = 0

    for i in range(5):
        obs = env.reset()
        env.gripper_close(False)
        env.render()
        save_dir = 'z_fetch_run_pic_%02d' % i
        create_dir(save_dir)
        step_count = 0
        print('------start ep %03d--------' % i)
        sum_r = 0
        while True:
            if is_render:
                env.render()
            diff_x = env.obj_pos[0] - env.pos[0]
            diff_y = env.obj_pos[1] - env.pos[1]
            if diff_x > step_ds:
                a = [1, 0, 0, 0, 0]
            elif diff_x < 0 and abs(diff_x) > step_ds:
                a = [0, 0, 1, 0, 0]
            elif diff_y > step_ds:
                a = [0, 1, 0, 0, 0]
            elif diff_y < 0 and abs(diff_y) > step_ds:
                a = [0, 0, 0, 1, 0]
            else:
                break
            step_count += 1
            s, r, d, info = env.step(a)
            sum_r += r
            # rgb_external = env.sim.render(width=256, height=256, camera_name="external_camera_0", depth=False,
            #         mode='offscreen', device_id=-1)
            # rgb_gripper = env.sim.render(width=256, height=256, camera_name="gripper_camera_rgb", depth=False,
            #     mode='offscreen', device_id=-1)
            rgb_external = env.sim.render(width=256,
                                          height=256,
                                          camera_name="external_camera_0",
                                          depth=False,
                                          mode='offscreen',
                                          device_id=-1)
            rgb_gripper = env.sim.render(width=256,
                                         height=256,
                                         camera_name="gripper_camera_rgb",
                                         depth=False,
                                         mode='offscreen',
                                         device_id=-1)

            # print('type(rgb_gripper) = ', type(rgb_gripper),', shape=', np.shape(rgb_gripper))
            img = Image.fromarray(rgb_gripper, 'RGB')
            # img.save(save_dir + '/%03d.jpg' % step_count)
            img.save(save_dir + '/%03d_r%3.2f.jpg' % (step_count, r))

        a = [0, 0, 0, 0, 1]
        s, r, d, info = env.step(a)
        sum_r += r
        print('sum_r = ', sum_r)
        print("use step = ", step_count)

        env.render()

    # print('---final_pos = ' , obs['eeinfo'][0],'----')
    # pos_diff = obs['eeinfo'][0] - ori_pos
    # formattedList = ["%.2f" % member for member in pos_diff]
    # print('---pos_diff = ' ,formattedList ,'----')

    print('use time = {:.2f}'.format(time.time() - s_time))