Merge pull request #740 from StanfordVL/revive-scene-graph #293
68 passed, 9 failed and 17 skipped
✅ 9998317179-tests-test_dump_load_states/test_dump_load_states.xml
2 tests were completed in 668s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 668s |
✅ pytest
tests.test_dump_load_states
✅ test_dump_load
✅ test_dump_load_serialized
❌ 9998317179-tests-test_envs/test_envs.xml
5 tests were completed in 420s with 1 passed, 4 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 4❌ | 420s |
❌ pytest
tests.test_envs
✅ test_dummy_task
❌ test_point_reaching_task
def test_point_reaching_task():
❌ test_point_navigation_task
def test_point_navigation_task():
❌ test_behavior_task
def test_behavior_task():
❌ test_rs_int_full_load
def test_rs_int_full_load():
✅ 9998317179-tests-test_object_removal/test_object_removal.xml
2 tests were completed in 680s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 680s |
✅ pytest
tests.test_object_removal
✅ test_removal_and_readdition
✅ test_readdition
✅ 9998317179-tests-test_object_states/test_object_states.xml
32 tests were completed in 827s with 30 passed, 0 failed and 2 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 30✅ | 2⚪ | 827s |
✅ pytest
tests.test_object_states
✅ test_on_top
✅ test_inside
✅ test_under
✅ test_touching
✅ test_contact_bodies
✅ test_next_to
✅ test_overlaid
✅ test_pose
✅ test_aabb
✅ test_adjacency
✅ test_temperature
✅ test_max_temperature
✅ test_heat_source_or_sink
✅ test_cooked
✅ test_burnt
✅ test_frozen
✅ test_heated
✅ test_on_fire
⚪ test_toggled_on
⚪ test_attached_to
✅ test_particle_source
✅ test_particle_sink
✅ test_particle_applier
✅ test_particle_remover
✅ test_saturated
✅ test_open
✅ test_folded_unfolded
✅ test_draped
✅ test_filled
✅ test_contains
✅ test_covered
✅ test_clear_sim
✅ 9998317179-tests-test_primitives/test_primitives.xml
5 tests were completed in 350s with 0 passed, 0 failed and 5 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 5⚪ | 350s |
✅ pytest
tests.test_primitives
⚪ test_navigate
⚪ test_grasp
⚪ test_place
⚪ test_open_prismatic
⚪ test_open_revolute
❌ 9998317179-tests-test_robot_states_flatcache/test_robot_states_flatcache.xml
1 tests were completed in 443s with 0 passed, 1 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1❌ | 443s |
❌ pytest
tests.test_robot_states_flatcache
❌ test_camera_pose_flatcache_on
def test_camera_pose_flatcache_on():
❌ 9998317179-tests-test_robot_states_no_flatcache/test_robot_states_no_flatcache.xml
3 tests were completed in 369s with 0 passed, 3 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 3❌ | 369s |
❌ pytest
tests.test_robot_states_no_flatcache
❌ test_camera_pose_flatcache_off
def test_camera_pose_flatcache_off():
❌ test_camera_semantic_segmentation
def test_camera_semantic_segmentation():
❌ test_object_in_FOV_of_robot
def test_object_in_FOV_of_robot():
✅ 9998317179-tests-test_robot_teleoperation/test_robot_teleoperation.xml
1 tests were completed in 135ms with 0 passed, 0 failed and 1 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1⚪ | 135ms |
✅ pytest
tests.test_robot_teleoperation
⚪ test_teleop
✅ 9998317179-tests-test_sensors/test_sensors.xml
2 tests were completed in 868s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 868s |
✅ pytest
tests.test_sensors
✅ test_seg
✅ test_clear_sim
✅ 9998317179-tests-test_symbolic_primitives/test_symbolic_primitives.xml
10 tests were completed in 596s with 1 passed, 0 failed and 9 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 9⚪ | 596s |
✅ pytest
tests.test_symbolic_primitives.TestSymbolicPrimitives
⚪ test_in_hand_state
⚪ test_open
⚪ test_close
⚪ test_place_inside
⚪ test_place_ontop
⚪ test_toggle_on
⚪ test_soak_under
⚪ test_wipe
⚪ test_cut
✅ test_persistent_sticky_grasping
✅ 9998317179-tests-test_systems/test_systems.xml
1 tests were completed in 763s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 763s |
✅ pytest
tests.test_systems
✅ test_system_clear
❌ 9998317179-tests-test_transition_rules/test_transition_rules.xml
30 tests were completed in 832s with 29 passed, 1 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 29✅ | 1❌ | 832s |
❌ pytest
tests.test_transition_rules
✅ test_dryer_rule
✅ test_washer_rule
✅ test_slicing_rule
✅ test_dicing_rule_cooked
✅ test_dicing_rule_uncooked
✅ test_melting_rule
✅ test_cooking_physical_particle_rule_failure_recipe_systems
✅ test_cooking_physical_particle_rule_success
❌ test_mixing_rule_failure_recipe_systems
def wrapper():
✅ test_mixing_rule_failure_nonrecipe_systems
✅ test_mixing_rule_success
✅ test_cooking_system_rule_failure_recipe_systems
✅ test_cooking_system_rule_failure_nonrecipe_systems
✅ test_cooking_system_rule_failure_nonrecipe_objects
✅ test_cooking_system_rule_success
✅ test_cooking_object_rule_failure_wrong_container
✅ test_cooking_object_rule_failure_recipe_objects
✅ test_cooking_object_rule_failure_unary_states
✅ test_cooking_object_rule_failure_binary_system_states
✅ test_cooking_object_rule_failure_binary_object_states
✅ test_cooking_object_rule_failure_wrong_heat_source
✅ test_cooking_object_rule_success
✅ test_single_toggleable_machine_rule_output_system_failure_wrong_container
✅ test_single_toggleable_machine_rule_output_system_failure_recipe_systems
✅ test_single_toggleable_machine_rule_output_system_failure_recipe_objects
✅ test_single_toggleable_machine_rule_output_system_failure_nonrecipe_systems
✅ test_single_toggleable_machine_rule_output_system_failure_nonrecipe_objects
✅ test_single_toggleable_machine_rule_output_system_success
✅ test_single_toggleable_machine_rule_output_object_failure_unary_states
✅ test_single_toggleable_machine_rule_output_object_success
Annotations
Check failure on line 0 in 9998317179-tests-test_envs/test_envs.xml
github-actions / Test Results
pytest ► tests.test_envs ► test_point_reaching_task
Failed test found in:
9998317179-tests-test_envs/test_envs.xml
Error:
def test_point_reaching_task():
Raw output
def test_point_reaching_task():
> task_tester("PointReachingTask")
tests/test_envs.py:55:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_envs.py:40: in task_tester
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.envs.env_base.Environment object at 0x7fb650b3c520>
configs = [{'robots': [{'obs_modalities': [], 'type': 'Fetch'}], 'scene': {'load_object_categories': ['floors', 'breakfast_table...Scene'}, 'task': {'activity_name': 'laying_wood_floors', 'online_object_sampling': True, 'type': 'PointReachingTask'}}]
in_vec_env = False
def __init__(self, configs, in_vec_env=False):
"""
Args:
configs (str or dict or list of str or dict): config_file path(s) or raw config dictionaries.
If multiple configs are specified, they will be merged sequentially in the order specified.
This allows procedural generation of a "full" config from small sub-configs. For valid keys, please
see @default_config below
"""
# Call super first
super().__init__()
# Required render mode metadata for gymnasium
self.render_mode = "rgb_array"
self.metadata = {"render.modes": ["rgb_array"]}
# Store if we are part of a vec env
self.in_vec_env = in_vec_env
# Convert config file(s) into a single parsed dict
configs = configs if isinstance(configs, list) or isinstance(configs, tuple) else [configs]
# Initial default config
self.config = self.default_config
# Merge in specified configs
for config in configs:
merge_nested_dicts(base_dict=self.config, extra_dict=parse_config(config), inplace=True)
# Store settings and other initialized values
self._automatic_reset = self.env_config["automatic_reset"]
self._flatten_action_space = self.env_config["flatten_action_space"]
self._flatten_obs_space = self.env_config["flatten_obs_space"]
self.physics_frequency = self.env_config["physics_frequency"]
self.action_frequency = self.env_config["action_frequency"]
self.device = self.env_config["device"] if self.env_config["device"] else "cpu"
self._initial_pos_z_offset = self.env_config[
"initial_pos_z_offset"
] # how high to offset object placement to account for one action step of dropping
physics_frequency = 1.0 / self.physics_frequency
rendering_frequency = 1.0 / self.action_frequency
viewer_width = self.render_config["viewer_width"]
viewer_height = self.render_config["viewer_height"]
# If the sim is launched, check that the parameters match
if og.sim is not None:
assert og.sim.initial_physics_dt == physics_frequency
assert og.sim.initial_rendering_dt == rendering_frequency
> assert og.sim.device == self.device
E AssertionError
omnigibson/envs/env_base.py:86: AssertionError
Check failure on line 0 in 9998317179-tests-test_envs/test_envs.xml
github-actions / Test Results
pytest ► tests.test_envs ► test_point_navigation_task
Failed test found in:
9998317179-tests-test_envs/test_envs.xml
Error:
def test_point_navigation_task():
Raw output
def test_point_navigation_task():
> task_tester("PointNavigationTask")
tests/test_envs.py:59:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_envs.py:40: in task_tester
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.envs.env_base.Environment object at 0x7fb6c4d1d450>
configs = [{'robots': [{'obs_modalities': [], 'type': 'Fetch'}], 'scene': {'load_object_categories': ['floors', 'breakfast_table...ene'}, 'task': {'activity_name': 'laying_wood_floors', 'online_object_sampling': True, 'type': 'PointNavigationTask'}}]
in_vec_env = False
def __init__(self, configs, in_vec_env=False):
"""
Args:
configs (str or dict or list of str or dict): config_file path(s) or raw config dictionaries.
If multiple configs are specified, they will be merged sequentially in the order specified.
This allows procedural generation of a "full" config from small sub-configs. For valid keys, please
see @default_config below
"""
# Call super first
super().__init__()
# Required render mode metadata for gymnasium
self.render_mode = "rgb_array"
self.metadata = {"render.modes": ["rgb_array"]}
# Store if we are part of a vec env
self.in_vec_env = in_vec_env
# Convert config file(s) into a single parsed dict
configs = configs if isinstance(configs, list) or isinstance(configs, tuple) else [configs]
# Initial default config
self.config = self.default_config
# Merge in specified configs
for config in configs:
merge_nested_dicts(base_dict=self.config, extra_dict=parse_config(config), inplace=True)
# Store settings and other initialized values
self._automatic_reset = self.env_config["automatic_reset"]
self._flatten_action_space = self.env_config["flatten_action_space"]
self._flatten_obs_space = self.env_config["flatten_obs_space"]
self.physics_frequency = self.env_config["physics_frequency"]
self.action_frequency = self.env_config["action_frequency"]
self.device = self.env_config["device"] if self.env_config["device"] else "cpu"
self._initial_pos_z_offset = self.env_config[
"initial_pos_z_offset"
] # how high to offset object placement to account for one action step of dropping
physics_frequency = 1.0 / self.physics_frequency
rendering_frequency = 1.0 / self.action_frequency
viewer_width = self.render_config["viewer_width"]
viewer_height = self.render_config["viewer_height"]
# If the sim is launched, check that the parameters match
if og.sim is not None:
assert og.sim.initial_physics_dt == physics_frequency
assert og.sim.initial_rendering_dt == rendering_frequency
> assert og.sim.device == self.device
E AssertionError
omnigibson/envs/env_base.py:86: AssertionError
Check failure on line 0 in 9998317179-tests-test_envs/test_envs.xml
github-actions / Test Results
pytest ► tests.test_envs ► test_behavior_task
Failed test found in:
9998317179-tests-test_envs/test_envs.xml
Error:
def test_behavior_task():
Raw output
def test_behavior_task():
> task_tester("BehaviorTask")
tests/test_envs.py:63:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_envs.py:40: in task_tester
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.envs.env_base.Environment object at 0x7fb6bc343520>
configs = [{'robots': [{'obs_modalities': [], 'type': 'Fetch'}], 'scene': {'load_object_categories': ['floors', 'breakfast_table...sableScene'}, 'task': {'activity_name': 'laying_wood_floors', 'online_object_sampling': True, 'type': 'BehaviorTask'}}]
in_vec_env = False
def __init__(self, configs, in_vec_env=False):
"""
Args:
configs (str or dict or list of str or dict): config_file path(s) or raw config dictionaries.
If multiple configs are specified, they will be merged sequentially in the order specified.
This allows procedural generation of a "full" config from small sub-configs. For valid keys, please
see @default_config below
"""
# Call super first
super().__init__()
# Required render mode metadata for gymnasium
self.render_mode = "rgb_array"
self.metadata = {"render.modes": ["rgb_array"]}
# Store if we are part of a vec env
self.in_vec_env = in_vec_env
# Convert config file(s) into a single parsed dict
configs = configs if isinstance(configs, list) or isinstance(configs, tuple) else [configs]
# Initial default config
self.config = self.default_config
# Merge in specified configs
for config in configs:
merge_nested_dicts(base_dict=self.config, extra_dict=parse_config(config), inplace=True)
# Store settings and other initialized values
self._automatic_reset = self.env_config["automatic_reset"]
self._flatten_action_space = self.env_config["flatten_action_space"]
self._flatten_obs_space = self.env_config["flatten_obs_space"]
self.physics_frequency = self.env_config["physics_frequency"]
self.action_frequency = self.env_config["action_frequency"]
self.device = self.env_config["device"] if self.env_config["device"] else "cpu"
self._initial_pos_z_offset = self.env_config[
"initial_pos_z_offset"
] # how high to offset object placement to account for one action step of dropping
physics_frequency = 1.0 / self.physics_frequency
rendering_frequency = 1.0 / self.action_frequency
viewer_width = self.render_config["viewer_width"]
viewer_height = self.render_config["viewer_height"]
# If the sim is launched, check that the parameters match
if og.sim is not None:
assert og.sim.initial_physics_dt == physics_frequency
assert og.sim.initial_rendering_dt == rendering_frequency
> assert og.sim.device == self.device
E AssertionError
omnigibson/envs/env_base.py:86: AssertionError
Check failure on line 0 in 9998317179-tests-test_envs/test_envs.xml
github-actions / Test Results
pytest ► tests.test_envs ► test_rs_int_full_load
Failed test found in:
9998317179-tests-test_envs/test_envs.xml
Error:
def test_rs_int_full_load():
Raw output
def test_rs_int_full_load():
cfg = {
"scene": {
"type": "InteractiveTraversableScene",
"scene_model": "Rs_int",
},
"robots": [
{
"type": "Fetch",
"obs_modalities": [],
}
],
# Task kwargs
"task": {
"type": "DummyTask",
},
}
# Make sure sim is stopped
if og.sim:
og.sim.stop()
# Create the environment
> env = og.Environment(configs=cfg)
tests/test_envs.py:89:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.envs.env_base.Environment object at 0x7fb6b1f84f40>
configs = [{'robots': [{'obs_modalities': [], 'type': 'Fetch'}], 'scene': {'scene_model': 'Rs_int', 'type': 'InteractiveTraversableScene'}, 'task': {'type': 'DummyTask'}}]
in_vec_env = False
def __init__(self, configs, in_vec_env=False):
"""
Args:
configs (str or dict or list of str or dict): config_file path(s) or raw config dictionaries.
If multiple configs are specified, they will be merged sequentially in the order specified.
This allows procedural generation of a "full" config from small sub-configs. For valid keys, please
see @default_config below
"""
# Call super first
super().__init__()
# Required render mode metadata for gymnasium
self.render_mode = "rgb_array"
self.metadata = {"render.modes": ["rgb_array"]}
# Store if we are part of a vec env
self.in_vec_env = in_vec_env
# Convert config file(s) into a single parsed dict
configs = configs if isinstance(configs, list) or isinstance(configs, tuple) else [configs]
# Initial default config
self.config = self.default_config
# Merge in specified configs
for config in configs:
merge_nested_dicts(base_dict=self.config, extra_dict=parse_config(config), inplace=True)
# Store settings and other initialized values
self._automatic_reset = self.env_config["automatic_reset"]
self._flatten_action_space = self.env_config["flatten_action_space"]
self._flatten_obs_space = self.env_config["flatten_obs_space"]
self.physics_frequency = self.env_config["physics_frequency"]
self.action_frequency = self.env_config["action_frequency"]
self.device = self.env_config["device"] if self.env_config["device"] else "cpu"
self._initial_pos_z_offset = self.env_config[
"initial_pos_z_offset"
] # how high to offset object placement to account for one action step of dropping
physics_frequency = 1.0 / self.physics_frequency
rendering_frequency = 1.0 / self.action_frequency
viewer_width = self.render_config["viewer_width"]
viewer_height = self.render_config["viewer_height"]
# If the sim is launched, check that the parameters match
if og.sim is not None:
assert og.sim.initial_physics_dt == physics_frequency
assert og.sim.initial_rendering_dt == rendering_frequency
> assert og.sim.device == self.device
E AssertionError
omnigibson/envs/env_base.py:86: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_camera_pose_flatcache_on
Failed test found in:
9998317179-tests-test_robot_states_flatcache/test_robot_states_flatcache.xml
Error:
def test_camera_pose_flatcache_on():
Raw output
def test_camera_pose_flatcache_on():
> camera_pose_test(True)
tests/test_robot_states_flatcache.py:116:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
flatcache = True
def camera_pose_test(flatcache):
env = setup_environment(flatcache)
robot = env.robots[0]
env.reset()
sensors = [s for s in robot.sensors.values() if isinstance(s, VisionSensor)]
assert len(sensors) > 0
vision_sensor = sensors[0]
# Get vision sensor world pose via directly calling get_position_orientation
robot_world_pos, robot_world_ori = robot.get_position_orientation()
sensor_world_pos, sensor_world_ori = vision_sensor.get_position_orientation()
robot_to_sensor_mat = pose2mat(
relative_pose_transform(sensor_world_pos, sensor_world_ori, robot_world_pos, robot_world_ori)
)
sensor_world_pos_gt = np.array([150.16513062, 150.0, 101.39360809])
sensor_world_ori_gt = np.array([-0.29444984, 0.29444979, 0.64288365, -0.64288352])
> assert np.allclose(sensor_world_pos, sensor_world_pos_gt, atol=1e-3)
E assert False
E + where False = <function allclose at 0x7fd6823bf7f0>(array([150.16671753, 149.99916077, 101.38970947]), array([150.16513062, 150. , 101.39360809]), atol=0.001)
E + where <function allclose at 0x7fd6823bf7f0> = np.allclose
tests/test_robot_states_flatcache.py:64: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_no_flatcache ► test_camera_pose_flatcache_off
Failed test found in:
9998317179-tests-test_robot_states_no_flatcache/test_robot_states_no_flatcache.xml
Error:
def test_camera_pose_flatcache_off():
Raw output
def test_camera_pose_flatcache_off():
> camera_pose_test(False)
tests/test_robot_states_no_flatcache.py:11:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
flatcache = False
def camera_pose_test(flatcache):
env = setup_environment(flatcache)
robot = env.robots[0]
env.reset()
sensors = [s for s in robot.sensors.values() if isinstance(s, VisionSensor)]
assert len(sensors) > 0
vision_sensor = sensors[0]
# Get vision sensor world pose via directly calling get_position_orientation
robot_world_pos, robot_world_ori = robot.get_position_orientation()
sensor_world_pos, sensor_world_ori = vision_sensor.get_position_orientation()
robot_to_sensor_mat = pose2mat(
relative_pose_transform(sensor_world_pos, sensor_world_ori, robot_world_pos, robot_world_ori)
)
sensor_world_pos_gt = np.array([150.16513062, 150.0, 101.39360809])
sensor_world_ori_gt = np.array([-0.29444984, 0.29444979, 0.64288365, -0.64288352])
> assert np.allclose(sensor_world_pos, sensor_world_pos_gt, atol=1e-3)
E assert False
E + where False = <function allclose at 0x7fb3483d77f0>(array([150.16671753, 149.99916077, 101.38970947]), array([150.16513062, 150. , 101.39360809]), atol=0.001)
E + where <function allclose at 0x7fb3483d77f0> = np.allclose
tests/test_robot_states_flatcache.py:64: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_no_flatcache ► test_camera_semantic_segmentation
Failed test found in:
9998317179-tests-test_robot_states_no_flatcache/test_robot_states_no_flatcache.xml
Error:
def test_camera_semantic_segmentation():
Raw output
def test_camera_semantic_segmentation():
> env = setup_environment(False)
tests/test_robot_states_no_flatcache.py:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_robot_states_flatcache.py:40: in setup_environment
env = og.Environment(configs=config)
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:115: in __init__
self.load()
omnigibson/envs/env_base.py:408: in load
self._load_robots()
omnigibson/envs/env_base.py:271: in _load_robots
self.scene.add_object(robot)
omnigibson/scenes/scene_base.py:557: in add_object
prim = obj.load(self)
omnigibson/objects/controllable_object.py:178: in load
prim = super().load(scene)
omnigibson/objects/object_base.py:124: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:104: in load
self._prim = self._load()
omnigibson/robots/robot_base.py:190: in _load
self._dummy.load(self.scene)
omnigibson/objects/object_base.py:124: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:110: in load
self._post_load()
omnigibson/objects/object_base.py:162: in _post_load
super()._post_load()
omnigibson/prims/entity_prim.py:127: in _post_load
self.update_links()
omnigibson/prims/entity_prim.py:259: in update_links
self._links[link_name].load(self.scene)
omnigibson/prims/prim_base.py:110: in load
self._post_load()
omnigibson/prims/rigid_prim.py:105: in _post_load
super()._post_load()
omnigibson/prims/xform_prim.py:65: in _post_load
self._set_xform_properties()
omnigibson/prims/xform_prim.py:93: in _set_xform_properties
current_position, current_orientation = self.get_position_orientation()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fb0e9b30d00>
def get_position_orientation(self):
# Return cached pose if we're kinematic-only
if self.kinematic_only and self._kinematic_world_pose_cache is not None:
return self._kinematic_world_pose_cache
pos, ori = self._rigid_prim_view.get_world_poses()
> assert np.isclose(
np.linalg.norm(ori), 1, atol=1e-3
), f"{self.prim_path} orientation {ori} is not a unit quaternion."
E AssertionError: /World/scene_1/dummy__fetch__robot0/base_link orientation [[nan nan nan nan]] is not a unit quaternion.
omnigibson/prims/rigid_prim.py:330: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_no_flatcache ► test_object_in_FOV_of_robot
Failed test found in:
9998317179-tests-test_robot_states_no_flatcache/test_robot_states_no_flatcache.xml
Error:
def test_object_in_FOV_of_robot():
Raw output
def test_object_in_FOV_of_robot():
> env = setup_environment(False)
tests/test_robot_states_no_flatcache.py:33:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_robot_states_flatcache.py:40: in setup_environment
env = og.Environment(configs=config)
omnigibson/utils/python_utils.py:91: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:115: in __init__
self.load()
omnigibson/envs/env_base.py:408: in load
self._load_robots()
omnigibson/envs/env_base.py:271: in _load_robots
self.scene.add_object(robot)
omnigibson/scenes/scene_base.py:557: in add_object
prim = obj.load(self)
omnigibson/objects/controllable_object.py:178: in load
prim = super().load(scene)
omnigibson/objects/object_base.py:124: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:104: in load
self._prim = self._load()
omnigibson/robots/robot_base.py:190: in _load
self._dummy.load(self.scene)
omnigibson/objects/object_base.py:124: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:110: in load
self._post_load()
omnigibson/objects/object_base.py:162: in _post_load
super()._post_load()
omnigibson/prims/entity_prim.py:127: in _post_load
self.update_links()
omnigibson/prims/entity_prim.py:259: in update_links
self._links[link_name].load(self.scene)
omnigibson/prims/prim_base.py:110: in load
self._post_load()
omnigibson/prims/rigid_prim.py:105: in _post_load
super()._post_load()
omnigibson/prims/xform_prim.py:65: in _post_load
self._set_xform_properties()
omnigibson/prims/xform_prim.py:93: in _set_xform_properties
current_position, current_orientation = self.get_position_orientation()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fb13c30ea70>
def get_position_orientation(self):
# Return cached pose if we're kinematic-only
if self.kinematic_only and self._kinematic_world_pose_cache is not None:
return self._kinematic_world_pose_cache
pos, ori = self._rigid_prim_view.get_world_poses()
> assert np.isclose(
np.linalg.norm(ori), 1, atol=1e-3
), f"{self.prim_path} orientation {ori} is not a unit quaternion."
E AssertionError: /World/scene_2/dummy__fetch__robot0/base_link orientation [[nan nan nan nan]] is not a unit quaternion.
omnigibson/prims/rigid_prim.py:330: AssertionError
Check failure on line 0 in 9998317179-tests-test_transition_rules/test_transition_rules.xml
github-actions / Test Results
pytest ► tests.test_transition_rules ► test_mixing_rule_failure_recipe_systems
Failed test found in:
9998317179-tests-test_transition_rules/test_transition_rules.xml
Error:
def wrapper():
Raw output
def wrapper():
assert_test_env()
try:
> func(env)
tests/utils.py:26:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
env = <omnigibson.envs.env_base.Environment object at 0x7f1630434160>
@og_test
def test_mixing_rule_failure_recipe_systems(env):
assert len(REGISTERED_RULES) > 0, "No rules registered!"
bowl = env.scene.object_registry("name", "bowl")
tablespoon = env.scene.object_registry("name", "tablespoon")
water = env.scene.get_system("water")
granulated_sugar = env.scene.get_system("granulated_sugar")
lemon_juice = env.scene.get_system("lemon_juice")
lemonade = env.scene.get_system("lemonade")
sludge = env.scene.get_system("sludge")
place_obj_on_floor_plane(bowl)
og.sim.step()
water.generate_particles(positions=[[-0.02, 0.0, 0.02]])
granulated_sugar.generate_particles(positions=[[0.0, 0.0, 0.02]])
# This fails the recipe because lemon juice (recipe system) is not in the bowl
lemon_juice.generate_particles(positions=[[0.02, 0.0, 1.02]])
assert bowl.states[Contains].get_value(water)
assert bowl.states[Contains].get_value(granulated_sugar)
assert not bowl.states[Contains].get_value(lemon_juice)
assert lemonade.n_particles == 0
assert sludge.n_particles == 0
tablespoon.set_position_orientation([0.04, 0.0, 0.11], [0, 0, 0, 1])
og.sim.step()
assert tablespoon.states[Touching].get_value(bowl)
# Recipe should fail: no milkshake should be created, and sludge should be created.
assert lemonade.n_particles == 0
> assert sludge.n_particles > 0
E assert 0 > 0
E + where 0 = <omnigibson.systems.micro_particle_system.FluidSystem object at 0x7f146bd2fa30>.n_particles
tests/test_transition_rules.py:455: AssertionError