Skip to content

Commit

Permalink
Merge pull request #99 from fxia22/igdsl2
Browse files Browse the repository at this point in the history
some fixes for iG on windows
  • Loading branch information
fxia22 authored Oct 19, 2020
2 parents d065583 + a3ba844 commit 596c38e
Show file tree
Hide file tree
Showing 9 changed files with 127 additions and 8 deletions.
2 changes: 1 addition & 1 deletion examples/demo/igsdf_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def main():
settings = MeshRendererSettings(enable_shadow=True, msaa=False)
s = Simulator(mode='gui', image_width=256, image_height=256, rendering_settings=settings)

scene = iGSDFScene(args.scene)
scene = InteractiveIndoorScene(args.scene)
s.import_ig_scene(scene)

for i in range(10000):
Expand Down
2 changes: 1 addition & 1 deletion examples/demo/mouse_interaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def test_import_igsdf():

scene = InteractiveIndoorScene(
'Rs_int', texture_randomization=False, object_randomization=False)
# scene._set_first_n_objects(10)
scene._set_first_n_objects(5)
settings = MeshRendererSettings(env_texture_filename=hdr_texture,
env_texture_filename2=hdr_texture2,
env_texture_filename3=background_texture,
Expand Down
60 changes: 60 additions & 0 deletions examples/demo/mouse_interaction_placesetting.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/usr/bin/env python
from gibson2.simulator import Simulator
from gibson2.scenes.igibson_indoor_scene import InteractiveIndoorScene
from gibson2.utils.utils import parse_config
from gibson2.render.mesh_renderer.mesh_renderer_cpu import MeshRendererSettings
from gibson2.objects.ycb_object import YCBObject
import os
import gibson2
import time
import random
import sys

# human interaction demo


def test_import_igsdf():
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')

scene = InteractiveIndoorScene(
'Rs_int', texture_randomization=False, object_randomization=False)
# scene._set_first_n_objects(10)
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.viewer.min_cam_z = 1.0

s.import_ig_scene(scene)

# Add objects
# obj1 = YCBObject(filename=

while True:
start = time.time()
s.step()
end = time.time()
print("Elapsed time: ", end - start)
print("Frequency: ", 1 / (end - start))
s.disconnect()
print("end")


def main():
test_import_igsdf()


if __name__ == "__main__":
main()
2 changes: 1 addition & 1 deletion gibson2/objects/visual_marker.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ def _load(self):
return body_id

def set_color(self, color):
p.changeVisualShape(self.body_id, -1, rgbaColor=color)
p.changeVisualShape(self.body_id, -1, rgbaColor=color)
1 change: 1 addition & 0 deletions gibson2/render/viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def create_visual_object(self):
radius=0.04, rgba_color=[0, 0, 1, 1])
self.constraint_marker2 = VisualMarker(visual_shape=p.GEOM_CAPSULE, radius=0.01, length=3,
initial_offset=[0, 0, -1.5], rgba_color=[0, 0, 1, 1])
print('SIMULATOR:', self.simulator)
if self.simulator is not None:
self.simulator.import_object(
self.constraint_marker2, use_pbr=False)
Expand Down
1 change: 1 addition & 0 deletions gibson2/scenes/igibson_indoor_scene.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from IPython import embed


# class InteractiveIndoorScene(StaticIndoorScene):
class InteractiveIndoorScene(StaticIndoorScene):
"""
Create an interactive scene defined with iGibson Scene Description Format (iGSDF).
Expand Down
9 changes: 4 additions & 5 deletions gibson2/simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ def add_viewer(self):
if self.use_vr_renderer:
self.viewer = ViewerVR()
else:
self.viewer = Viewer()
# self.viewer = Viewer()
self.viewer = Viewer(simulator=self, renderer=self.renderer)
self.viewer.renderer = self.renderer

def reload(self):
Expand Down Expand Up @@ -151,17 +152,15 @@ def load(self):
p.setPhysicsEngineParameter(enableFileCaching=0)
print("PyBullet Logging Information******************")

if (self.use_ig_renderer or self.use_vr_renderer) and not self.render_to_tensor:
self.add_viewer()

self.visual_objects = {}
self.robots = []
self.scene = None
self.next_class_id = 0

if self.use_ig_renderer and not self.render_to_tensor:
if (self.use_ig_renderer or self.use_vr_renderer) and not self.render_to_tensor:
self.add_viewer()


def optimize_vertex_and_texture(self):
self.renderer.optimize_vertex_and_texture()

Expand Down
57 changes: 57 additions & 0 deletions gibson2/task/task_base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import os

import tasknet as tn
from tasknet.task_base import TaskNetTask
import gibson2
from gibson2.simulator import Simulator
from gibson2.scenes.igibson_indoor_scene import InteractiveIndoorScene
from gibson2.render.mesh_renderer.mesh_renderer_cpu import MeshRendererSettings
from gibson2.objects.articulated_object import URDFObject


class iGTNTaskInstance(TaskNetTask):
def __init__(self, atus_activity):
super().__init__(atus_activity)

def initialize_scene(self): # NOTE can't have the same method name right
'''
Get scene populated with objects such that scene satisfies initial conditions
'''
self.scene_name, self.scene = self.initialize(InteractiveIndoorScene, URDFObject)

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', self.scene_name, 'layout', 'floor_lighttype_0.png')
background_texture = os.path.join(
gibson2.ig_dataset_path, 'scenes', 'background', 'urban_street_01.jpg')

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)
self.simulator = Simulator(mode='iggui', image_width=960, image_height=720, device_idx=0, rendering_settings=settings)

self.simulator.viewer.min_cam_z = 1.0
self.simulator.import_ig_scene(self.scene)


def main():
igtn_task_instance = iGTNTaskInstance('demo1')
igtn_task_instance.initialize_scene()

for i in range(100):
igtn_task_instance.simulator.step()
print('TASK SUCCESS:', igtn_task_instance.check_success())
igtn_task_instance.simulator.disconnect()


if __name__ == '__main__':
main()



1 change: 1 addition & 0 deletions gibson2/utils/assets_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
def get_ig_scene_path(scene_name):
ig_dataset_path = gibson2.ig_dataset_path
ig_scenes_path = ig_dataset_path + "/scenes"
print('SCENE NAME:', scene_name)
assert scene_name in os.listdir(
ig_scenes_path), "Scene {} does not exist".format(scene_name)
return os.path.join(ig_scenes_path, scene_name)
Expand Down

0 comments on commit 596c38e

Please sign in to comment.