def test_import_building_viewing(): download_assets() download_demo_data() config = parse_config(os.path.join(gibson2.root_path, '../test/test.yaml')) s = Simulator(mode='headless') scene = StaticIndoorScene('Rs') s.import_scene(scene) assert s.objects == list(range(2)) turtlebot1 = Turtlebot(config) turtlebot2 = Turtlebot(config) turtlebot3 = Turtlebot(config) s.import_robot(turtlebot1) s.import_robot(turtlebot2) s.import_robot(turtlebot3) turtlebot1.set_position([0.5, 0, 0.5]) turtlebot2.set_position([0, 0, 0.5]) turtlebot3.set_position([-0.5, 0, 0.5]) for i in range(10): s.step() #turtlebot1.apply_action(np.random.randint(4)) #turtlebot2.apply_action(np.random.randint(4)) #turtlebot3.apply_action(np.random.randint(4)) s.disconnect()
def main(): config = parse_config('../configs/turtlebot_demo.yaml') settings = MeshRendererSettings(enable_shadow=False, msaa=False) s = Simulator(mode='gui', image_width=256, image_height=256, rendering_settings=settings) scene = StaticIndoorScene('Rs', build_graph=True, pybullet_load_texture=True) s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) for _ in range(10): obj = YCBObject('003_cracker_box') s.import_object(obj) obj.set_position_orientation(np.random.uniform(low=0, high=2, size=3), [0, 0, 0, 1]) print(s.renderer.instances) for i in range(10000): with Profiler('Simulator step'): turtlebot.apply_action([0.1, 0.1]) s.step() rgb = s.renderer.render_robot_cameras(modes=('rgb')) s.disconnect()
def test_import_igsdf(scene_name, scene_source): hdr_texture = os.path.join( gibson2.ig_dataset_path, 'scenes', 'background', 'probe_02.hdr') hdr_texture2 = os.path.join( gibson2.ig_dataset_path, 'scenes', 'background', 'probe_03.hdr') if scene_source == "IG": scene_dir = get_ig_scene_path(scene_name) elif scene_source == "CUBICASA": scene_dir = get_cubicasa_scene_path(scene_name) else: scene_dir = get_3dfront_scene_path(scene_name) light_modulation_map_filename = os.path.join( scene_dir, 'layout', 'floor_lighttype_0.png') background_texture = os.path.join( gibson2.ig_dataset_path, 'scenes', 'background', 'urban_street_01.jpg') scene = InteractiveIndoorScene( scene_name, texture_randomization=False, object_randomization=False, scene_source=scene_source) settings = MeshRendererSettings(env_texture_filename=hdr_texture, env_texture_filename2=hdr_texture2, env_texture_filename3=background_texture, light_modulation_map_filename=light_modulation_map_filename, enable_shadow=True, msaa=True, light_dimming_factor=1.0) s = Simulator(mode='iggui', image_width=960, image_height=720, device_idx=0, rendering_settings=settings) s.import_ig_scene(scene) fpss = [] np.random.seed(0) _,(px,py,pz) = scene.get_random_point() s.viewer.px = px s.viewer.py = py s.viewer.pz = 1.7 s.viewer.update() for i in range(3000): if i == 2500: logId = p.startStateLogging(loggingType=p.STATE_LOGGING_PROFILE_TIMINGS, fileName='trace_beechwood') start = time.time() s.step() end = time.time() print("Elapsed time: ", end - start) print("Frequency: ", 1 / (end - start)) fpss.append(1 / (end - start)) p.stopStateLogging(logId) s.disconnect() print("end") plt.plot(fpss) plt.show()
def test_jr2(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) jr2 = JR2(config) s.import_robot(jr2) nbody = p.getNumBodies() s.disconnect() assert nbody == 5
def test_humanoid(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) humanoid = Humanoid(config) s.import_robot(humanoid) nbody = p.getNumBodies() s.disconnect() assert nbody == 5
def test_quadrotor(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) quadrotor = Quadrotor(config) s.import_robot(quadrotor) nbody = p.getNumBodies() s.disconnect() assert nbody == 5
def test_import_building_big(): download_assets() download_demo_data() s = Simulator(mode='headless') scene = StaticIndoorScene('Rs') s.import_scene(scene, texture_scale=1) assert s.objects == list(range(2)) s.disconnect()
def test_turtlebot(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) nbody = p.getNumBodies() s.disconnect() assert nbody == 5
def test_import_object(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) obj = YCBObject('003_cracker_box') s.import_object(obj) objs = s.objects s.disconnect() assert objs == list(range(5))
def test_fetch(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) fetch = Fetch(config) s.import_robot(fetch) for i in range(100): fetch.calc_state() s.step() s.disconnect()
def test_import_stadium(): download_assets() download_demo_data() s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) print(s.objects) assert s.objects == list(range(4)) s.disconnect()
def main(): s = Simulator(mode='gui', image_width=512, image_height=512, device_idx=0) scene = InteractiveIndoorScene( 'Rs_int', texture_randomization=True, object_randomization=False) s.import_ig_scene(scene) for i in range(10000): if i % 1000 == 0: scene.randomize_texture() s.step() s.disconnect()
def main(): s = Simulator(mode='gui', image_width=512, image_height=512, device_idx=0) scene = InteractiveIndoorScene('Rs_int', texture_randomization=False, object_randomization=False, load_object_categories=['chair'], load_room_types=['living_room']) s.import_ig_scene(scene) for _ in range(1000): s.step() s.disconnect()
def test_humanoid_position(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) humanoid = Humanoid(config) s.import_robot(humanoid) humanoid.set_position([0, 0, 5]) nbody = p.getNumBodies() pos = humanoid.get_position() s.disconnect() assert nbody == 5 assert np.allclose(pos, np.array([0, 0, 5]))
def test_import_many_object(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) for i in range(30): obj = YCBObject('003_cracker_box') s.import_object(obj) for j in range(1000): s.step() last_obj = s.objects[-1] s.disconnect() assert (last_obj == 33)
def main(): s = Simulator(mode='gui', image_width=512, image_height=512, device_idx=0) for random_seed in range(10): scene = InteractiveIndoorScene('Rs_int', texture_randomization=False, object_randomization=True, object_randomization_idx=random_seed) s.import_ig_scene(scene) for i in range(1000): s.step() s.reload() s.disconnect()
def test_turtlebot_position(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) turtlebot.set_position([0, 0, 5]) nbody = p.getNumBodies() pos = turtlebot.get_position() s.disconnect() assert nbody == 5 assert np.allclose(pos, np.array([0, 0, 5]))
def test_ant(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) ant = Ant(config) s.import_robot(ant) ant2 = Ant(config) s.import_robot(ant2) ant2.set_position([0, 2, 2]) nbody = p.getNumBodies() for i in range(100): s.step() s.disconnect() assert nbody == 6
def main(): s = Simulator(mode='gui', image_width=512, image_height=512, device_idx=0) scene = InteractiveIndoorScene( 'Rs_int', texture_randomization=False, object_randomization=False) s.import_ig_scene(scene) np.random.seed(0) for _ in range(10): pt = scene.get_random_point_by_room_type('living_room')[1] print('random point in living_room', pt) for _ in range(1000): s.step() s.disconnect()
def run_demo(self): config = parse_config( os.path.join(os.path.dirname(gibson2.__file__), '../examples/configs/turtlebot_demo.yaml')) s = Simulator(mode='gui', image_width=700, image_height=700) scene = StaticIndoorScene('Rs', pybullet_load_texture=True) s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) for i in range(1000): turtlebot.apply_action([0.1, 0.5]) s.step() s.disconnect()
def test_simulator(): download_assets() s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) obj = YCBObject('006_mustard_bottle') for i in range(10): s.import_object(obj) obj = YCBObject('002_master_chef_can') for i in range(10): s.import_object(obj) for i in range(1000): s.step() s.disconnect()
def generate_trav_map(scene_name, scene_source, load_full_scene=True): if scene_source not in SCENE_SOURCE: raise ValueError('Unsupported scene source: {}'.format(scene_source)) if scene_source == "IG": scene_dir = get_ig_scene_path(scene_name) elif scene_source == "CUBICASA": scene_dir = get_cubicasa_scene_path(scene_name) else: scene_dir = get_3dfront_scene_path(scene_name) random.seed(0) scene = InteractiveIndoorScene(scene_name, build_graph=False, texture_randomization=False, scene_source=scene_source) if not load_full_scene: scene._set_first_n_objects(3) s = Simulator(mode='headless', image_width=512, image_height=512, device_idx=0) s.import_ig_scene(scene) if load_full_scene: scene.open_all_doors() for i in range(20): s.step() vertices_info, faces_info = s.renderer.dump() s.disconnect() if load_full_scene: trav_map_filename_format = 'floor_trav_{}.png' obstacle_map_filename_format = 'floor_{}.png' else: trav_map_filename_format = 'floor_trav_no_obj_{}.png' obstacle_map_filename_format = 'floor_no_obj_{}.png' gen_trav_map(vertices_info, faces_info, output_folder=os.path.join(scene_dir, 'layout'), trav_map_filename_format=trav_map_filename_format, obstacle_map_filename_format=obstacle_map_filename_format)
def main(): parser = argparse.ArgumentParser() parser.add_argument('--scene', type=str, help='Name of the scene in the iG Dataset') args = parser.parse_args() settings = MeshRendererSettings(enable_shadow=True, msaa=False) s = Simulator(mode='gui', image_width=256, image_height=256, rendering_settings=settings) scene = iGSDFScene(args.scene) s.import_ig_scene(scene) for i in range(10000): with Profiler('Simulator step'): s.step() s.disconnect()
class ToyEnv(object): def __init__(self): config = parse_config('../../configs/turtlebot_demo.yaml') hdr_texture = os.path.join(gibson2.ig_dataset_path, 'scenes', 'background', 'probe_02.hdr') hdr_texture2 = os.path.join(gibson2.ig_dataset_path, 'scenes', 'background', 'probe_03.hdr') light_modulation_map_filename = os.path.join(gibson2.ig_dataset_path, 'scenes', 'Rs_int', 'layout', 'floor_lighttype_0.png') background_texture = os.path.join(gibson2.ig_dataset_path, 'scenes', 'background', 'urban_street_01.jpg') settings = MeshRendererSettings(enable_shadow=False, enable_pbr=False) self.s = Simulator(mode='headless', image_width=400, image_height=400, rendering_settings=settings) scene = StaticIndoorScene('Rs') self.s.import_scene(scene) #self.s.import_ig_scene(scene) self.robot = Turtlebot(config) self.s.import_robot(self.robot) for _ in range(5): obj = YCBObject('003_cracker_box') self.s.import_object(obj) obj.set_position_orientation( np.random.uniform(low=0, high=2, size=3), [0, 0, 0, 1]) print(self.s.renderer.instances) def step(self, a): self.robot.apply_action(a) self.s.step() frame = self.s.renderer.render_robot_cameras(modes=('rgb'))[0] return frame def close(self): self.s.disconnect()
def test_import_igsdf(): scene = InteractiveIndoorScene('Rs_int', texture_randomization=False, object_randomization=False) s = Simulator(mode='headless', image_width=512, image_height=512, device_idx=0) s.import_ig_scene(scene) s.renderer.use_pbr(use_pbr=True, use_pbr_mapping=True) for i in range(10): # if i % 100 == 0: # scene.randomize_texture() start = time.time() s.step() end = time.time() print("Elapsed time: ", end - start) print("Frequency: ", 1 / (end - start)) s.disconnect()
def show_action_sensor_space(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) turtlebot.set_position([0, 1, 0.5]) ant = Ant(config) s.import_robot(ant) ant.set_position([0, 2, 0.5]) h = Humanoid(config) s.import_robot(h) h.set_position([0, 3, 2]) jr = JR2(config) s.import_robot(jr) jr.set_position([0, 4, 0.5]) jr2 = JR2_Kinova(config) s.import_robot(jr2) jr2.set_position([0, 5, 0.5]) husky = Husky(config) s.import_robot(husky) husky.set_position([0, 6, 0.5]) quad = Quadrotor(config) s.import_robot(quad) quad.set_position([0, 7, 0.5]) for robot in s.robots: print(type(robot), len(robot.ordered_joints), robot.calc_state().shape) for i in range(100): s.step() s.disconnect()
def benchmark_rendering(scene_list, rendering_presets_list, modality_list): config = parse_config(os.path.join(gibson2.root_path, '../test/test.yaml')) assets_version = get_ig_assets_version() print('assets_version', assets_version) result = {} for scene_name in scene_list: for rendering_preset in rendering_presets_list: scene = InteractiveIndoorScene(scene_name, texture_randomization=False, object_randomization=False) settings = NamedRenderingPresets[rendering_preset] if rendering_preset == 'VISUAL_RL': image_width = 128 image_height = 128 else: image_width = 512 image_height = 512 s = Simulator(mode='headless', image_width=image_width, image_height=image_height, device_idx=0, rendering_settings=settings, physics_timestep=1 / 240.0) s.import_ig_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) for mode in modality_list: for _ in range(10): s.step() _ = s.renderer.render_robot_cameras(modes=(mode)) start = time.time() for _ in range(200): _ = s.renderer.render_robot_cameras(modes=(mode)) end = time.time() fps = 200 / (end - start) result[(scene_name, rendering_preset, mode)] = fps s.disconnect() return result
def test_multiagent(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) turtlebot1 = Turtlebot(config) turtlebot2 = Turtlebot(config) turtlebot3 = Turtlebot(config) s.import_robot(turtlebot1) s.import_robot(turtlebot2) s.import_robot(turtlebot3) turtlebot1.set_position([1, 0, 0.5]) turtlebot2.set_position([0, 0, 0.5]) turtlebot3.set_position([-1, 0, 0.5]) nbody = p.getNumBodies() for i in range(100): s.step() s.disconnect() assert nbody == 7
def test_import_box(): s = Simulator(mode='headless') scene = StadiumScene() s.import_scene(scene) print(s.objects) # wall = [pos, dim] wall = [[[0, 7, 1.01], [10, 0.2, 1]], [[0, -7, 1.01], [6.89, 0.1, 1]], [[7, -1.5, 1.01], [0.1, 5.5, 1]], [[-7, -1, 1.01], [0.1, 6, 1]], [[-8.55, 5, 1.01], [1.44, 0.1, 1]], [[8.55, 4, 1.01], [1.44, 0.1, 1]]] obstacles = [[[-0.5, 2, 1.01], [3.5, 0.1, 1]], [[4.5, -1, 1.01], [1.5, 0.1, 1]], [[-4, -2, 1.01], [0.1, 2, 1]], [[2.5, -4, 1.01], [1.5, 0.1, 1]]] for i in range(len(wall)): curr = wall[i] obj = Cube(curr[0], curr[1]) s.import_object(obj) for i in range(len(obstacles)): curr = obstacles[i] obj = Cube(curr[0], curr[1]) s.import_object(obj) config = parse_config(os.path.join(gibson2.root_path, '../test/test.yaml')) turtlebot1 = Turtlebot(config) turtlebot2 = Turtlebot(config) s.import_robot(turtlebot1) s.import_robot(turtlebot2) turtlebot1.set_position([6., -6., 0.]) turtlebot2.set_position([-3., 4., 0.]) for i in range(100): s.step() s.disconnect()
def main(): config = parse_config('../configs/turtlebot_demo.yaml') settings = MeshRendererSettings() s = Simulator(mode='gui', image_width=256, image_height=256, rendering_settings=settings) scene = StaticIndoorScene('Rs', build_graph=True, pybullet_load_texture=True) s.import_scene(scene) turtlebot = Turtlebot(config) s.import_robot(turtlebot) for i in range(10000): with Profiler('Simulator step'): turtlebot.apply_action([0.1, -0.1]) s.step() lidar = s.renderer.get_lidar_all() print(lidar.shape) # TODO: visualize lidar scan s.disconnect()