Merge pull request #1178 from StanfordVL/a1 #193
146 passed, 3 failed and 13 skipped
Report | Passed | Failed | Skipped | Time |
---|---|---|---|---|
test_controllers.xml | 1❌ | 305s | ||
test_curobo.xml | 1✅ | 829s | ||
test_data_collection.xml | 1✅ | 734s | ||
test_dump_load_states.xml | 4✅ | 818s | ||
test_envs.xml | 5✅ | 712s | ||
test_multiple_envs.xml | 8✅ | 2⚪ | 587s | |
test_object_removal.xml | 2✅ | 680s | ||
test_object_states.xml | 33✅ | 957s | ||
test_primitives.xml | 6✅ | 4⚪ | 1457s | |
test_robot_states_flatcache.xml | 1✅ | 2❌ | 392s | |
test_robot_states_no_flatcache.xml | 3✅ | 370s | ||
test_robot_teleoperation.xml | 1⚪ | 33ms | ||
test_scene_graph.xml | 1✅ | 484s | ||
test_sensors.xml | 2✅ | 616s | ||
test_symbolic_primitives.xml | 14✅ | 6⚪ | 954s | |
test_systems.xml | 1✅ | 686s | ||
test_transform_utils.xml | 34✅ | 143s | ||
test_transition_rules.xml | 30✅ | 867s |
❌ test_controllers.xml
1 tests were completed in 305s with 0 passed, 1 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1❌ | 305s |
❌ pytest
tests.test_controllers
❌ test_arm_control
def test_arm_control():
✅ test_curobo.xml
1 tests were completed in 829s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 829s |
✅ pytest
tests.test_curobo
✅ test_curobo
✅ test_data_collection.xml
1 tests were completed in 734s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 734s |
✅ pytest
tests.test_data_collection
✅ test_data_collect_and_playback
✅ test_dump_load_states.xml
4 tests were completed in 818s with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 4✅ | 818s |
✅ pytest
tests.test_dump_load_states
✅ test_dump_load
✅ test_dump_load_serialized
✅ test_save_restore_partial
✅ test_save_restore_full
✅ test_envs.xml
5 tests were completed in 712s with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 5✅ | 712s |
✅ pytest
tests.test_envs
✅ test_dummy_task
✅ test_point_reaching_task
✅ test_point_navigation_task
✅ test_behavior_task
✅ test_rs_int_full_load
✅ test_multiple_envs.xml
10 tests were completed in 587s with 8 passed, 0 failed and 2 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 8✅ | 2⚪ | 587s |
✅ pytest
tests.test_multiple_envs
✅ test_multi_scene_dump_load_states
✅ test_multi_scene_get_local_position
✅ test_multi_scene_set_local_position
✅ test_multi_scene_scene_prim
✅ test_multi_scene_particle_source
✅ test_multi_scene_position_orientation_relative_to_scene
✅ test_tiago_getter
✅ test_tiago_setter
⚪ test_behavior_getter
⚪ test_behavior_setter
✅ 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
✅ test_object_states.xml
33 tests were completed in 957s with 33 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 33✅ | 957s |
✅ 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_joint
✅ 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
✅ test_primitives.xml
10 tests were completed in 1457s with 6 passed, 0 failed and 4 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 6✅ | 4⚪ | 1457s |
✅ pytest
tests.test_primitives.TestPrimitives
✅ test_navigate[Tiago]
✅ test_navigate[R1]
✅ test_grasp[Tiago]
✅ test_grasp[R1]
✅ test_place[Tiago]
✅ test_place[R1]
⚪ test_open_prismatic[Tiago]
⚪ test_open_prismatic[R1]
⚪ test_open_revolute[Tiago]
⚪ test_open_revolute[R1]
❌ test_robot_states_flatcache.xml
3 tests were completed in 392s with 1 passed, 2 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 2❌ | 392s |
❌ pytest
tests.test_robot_states_flatcache
✅ test_camera_pose_flatcache_on
❌ test_robot_load_drive
def test_robot_load_drive():
❌ test_grasping_mode
def test_grasping_mode():
✅ test_robot_states_no_flatcache.xml
3 tests were completed in 370s with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 3✅ | 370s |
✅ pytest
tests.test_robot_states_no_flatcache
✅ test_camera_pose_flatcache_off
✅ test_camera_semantic_segmentation
✅ test_object_in_FOV_of_robot
✅ test_robot_teleoperation.xml
1 tests were completed in 33ms with 0 passed, 0 failed and 1 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1⚪ | 33ms |
✅ pytest
tests.test_robot_teleoperation
⚪ test_teleop
✅ test_scene_graph.xml
1 tests were completed in 484s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 484s |
✅ pytest
tests.test_scene_graph
✅ test_scene_graph
✅ test_sensors.xml
2 tests were completed in 616s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 616s |
✅ pytest
tests.test_sensors
✅ test_segmentation_modalities
✅ test_bbox_modalities
✅ test_symbolic_primitives.xml
20 tests were completed in 954s with 14 passed, 0 failed and 6 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 14✅ | 6⚪ | 954s |
✅ pytest
tests.test_symbolic_primitives.TestSymbolicPrimitives
✅ test_in_hand_state[R1]
✅ test_open[R1]
✅ test_close[R1]
✅ test_place_inside[R1]
✅ test_place_ontop[R1]
✅ test_toggle_on[R1]
⚪ test_soak_under[R1]
⚪ test_wipe[R1]
⚪ test_cut[R1]
✅ test_persistent_sticky_grasping[R1]
✅ test_in_hand_state[Tiago]
✅ test_open[Tiago]
✅ test_close[Tiago]
✅ test_place_inside[Tiago]
✅ test_place_ontop[Tiago]
✅ test_toggle_on[Tiago]
⚪ test_soak_under[Tiago]
⚪ test_wipe[Tiago]
⚪ test_cut[Tiago]
✅ test_persistent_sticky_grasping[Tiago]
✅ test_systems.xml
1 tests were completed in 686s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 686s |
✅ pytest
tests.test_systems
✅ test_system_spawn_and_clear
✅ test_transform_utils.xml
34 tests were completed in 143s with 34 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 34✅ | 143s |
✅ pytest
tests.test_transform_utils.TestQuaternionOperations
✅ test_quat2mat_special_cases
✅ test_quat_multiply
✅ test_quat_conjugate
✅ test_quat_inverse
✅ test_quat_distance
tests.test_transform_utils.TestVectorOperations
✅ test_normalize
✅ test_dot_product
✅ test_l2_distance
tests.test_transform_utils.TestMatrixOperations
✅ test_rotation_matrix_properties
✅ test_rotation_matrix
✅ test_transformation_matrix
✅ test_transformation_matrix_no_point
✅ test_matrix_inverse
tests.test_transform_utils.TestCoordinateTransformations
✅ test_cartesian_to_polar
tests.test_transform_utils.TestPoseTransformations
✅ test_pose2mat_and_mat2pose
✅ test_pose_inv
tests.test_transform_utils.TestAxisAngleConversions
✅ test_axisangle2quat_and_quat2axisangle
✅ test_vecs2axisangle
✅ test_vecs2quat
tests.test_transform_utils.TestEulerAngleConversions
✅ test_euler2quat_and_quat2euler
✅ test_euler2mat_and_mat2euler
tests.test_transform_utils.TestQuaternionApplications
✅ test_quat_apply
✅ test_quat_slerp
tests.test_transform_utils.TestTransformPoints
✅ test_transform_points_2d
✅ test_transform_points_3d
tests.test_transform_utils.TestMiscellaneousFunctions
✅ test_convert_quat
✅ test_random_quaternion
✅ test_random_axis_angle
✅ test_align_vector_sets
✅ test_copysign
✅ test_anorm
✅ test_check_quat_right_angle
✅ test_z_angle_from_quat
✅ test_integer_spiral_coordinates
✅ test_transition_rules.xml
30 tests were completed in 867s with 30 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 30✅ | 867s |
✅ 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
✅ 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 test_controllers.xml
github-actions / Test Results
pytest ► tests.test_controllers ► test_arm_control
Failed test found in:
test_controllers.xml
Error:
def test_arm_control():
Raw output
def test_arm_control():
# Create env
cfg = {
"scene": {
"type": "Scene",
},
"objects": [],
"robots": [
{
"type": "FrankaPanda",
"name": "robot0",
"obs_modalities": [],
"position": [150, 150, 100],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "Fetch",
"name": "robot1",
"obs_modalities": [],
"position": [150, 150, 105],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "Tiago",
"name": "robot2",
"obs_modalities": [],
"position": [150, 150, 110],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "A1",
"name": "robot3",
"obs_modalities": [],
"position": [150, 150, 115],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "R1",
"name": "robot4",
"obs_modalities": [],
"position": [150, 150, 120],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
],
}
> env = og.Environment(configs=cfg)
tests/test_controllers.py:61:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/utils/python_utils.py:92: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:432: in load
self._load_robots()
omnigibson/envs/env_base.py:291: in _load_robots
self.scene.add_object(robot)
omnigibson/scenes/scene_base.py:627: in add_object
obj.load(self)
omnigibson/objects/controllable_object.py:185: in load
prim = super().load(scene)
omnigibson/objects/object_base.py:130: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:113: in load
self._prim = self._load()
omnigibson/objects/usd_object.py:128: in _load
prim = add_asset_to_stage(asset_path=usd_path, prim_path=self.prim_path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
asset_path = '/data/assets/models/a1/usd/a1.usda'
prim_path = '/World/scene_0/controllable__a1__robot3'
def add_asset_to_stage(asset_path, prim_path):
"""
Adds asset file (either USD or OBJ) at @asset_path at the location @prim_path
Args:
asset_path (str): Absolute or relative path to the asset file to load
prim_path (str): Where loaded asset should exist on the stage
Returns:
Usd.Prim: Loaded prim as a USD prim
"""
# Make sure this is actually a supported asset type
asset_type = asset_path.split(".")[-1]
assert asset_type in {"usd", "usda", "obj"}, "Cannot load a non-USD or non-OBJ file as a USD prim!"
# Make sure the path exists
> assert os.path.exists(asset_path), f"Cannot load {asset_type.upper()} file {asset_path} because it does not exist!"
E AssertionError: Cannot load USDA file /data/assets/models/a1/usd/a1.usda because it does not exist!
omnigibson/utils/usd_utils.py:1857: AssertionError
Check failure on line 0 in test_robot_states_flatcache.xml
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_robot_load_drive
Failed test found in:
test_robot_states_flatcache.xml
Error:
def test_robot_load_drive():
Raw output
def test_robot_load_drive():
if og.sim is None:
# Set global flags
gm.ENABLE_OBJECT_STATES = True
gm.USE_GPU_DYNAMICS = True
gm.ENABLE_TRANSITION_RULES = False
else:
# Make sure sim is stopped
og.sim.stop()
config = {
"scene": {
"type": "Scene",
},
}
env = og.Environment(configs=config)
og.sim.stop()
# Iterate over all robots and test their motion
for robot_name, robot_cls in REGISTERED_ROBOTS.items():
if robot_name in ["FrankaMounted", "Stretch"]:
# TODO: skipping FrankaMounted and Stretch for now because CI doesn't have the required assets
continue
if robot_name in ["Husky", "BehaviorRobot"]:
# Husky base motion is a little messed up because of the 4-wheel drive; skipping for now
# BehaviorRobot does not work with the primitive actions at the moment
continue
robot = robot_cls(
name=robot_name,
obs_modalities=[],
)
> env.scene.add_object(robot)
tests/test_robot_states_flatcache.py:163:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/scenes/scene_base.py:627: in add_object
obj.load(self)
omnigibson/objects/controllable_object.py:185: in load
prim = super().load(scene)
omnigibson/objects/object_base.py:130: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:113: in load
self._prim = self._load()
omnigibson/objects/usd_object.py:128: in _load
prim = add_asset_to_stage(asset_path=usd_path, prim_path=self.prim_path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
asset_path = '/data/assets/models/a1/usd/a1.usda'
prim_path = '/World/scene_0/controllable__a1__A1'
def add_asset_to_stage(asset_path, prim_path):
"""
Adds asset file (either USD or OBJ) at @asset_path at the location @prim_path
Args:
asset_path (str): Absolute or relative path to the asset file to load
prim_path (str): Where loaded asset should exist on the stage
Returns:
Usd.Prim: Loaded prim as a USD prim
"""
# Make sure this is actually a supported asset type
asset_type = asset_path.split(".")[-1]
assert asset_type in {"usd", "usda", "obj"}, "Cannot load a non-USD or non-OBJ file as a USD prim!"
# Make sure the path exists
> assert os.path.exists(asset_path), f"Cannot load {asset_type.upper()} file {asset_path} because it does not exist!"
E AssertionError: Cannot load USDA file /data/assets/models/a1/usd/a1.usda because it does not exist!
omnigibson/utils/usd_utils.py:1857: AssertionError
Check failure on line 0 in test_robot_states_flatcache.xml
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_grasping_mode
Failed test found in:
test_robot_states_flatcache.xml
Error:
def test_grasping_mode():
Raw output
def test_grasping_mode():
if og.sim is None:
# Set global flags
gm.ENABLE_FLATCACHE = True
else:
# Make sure sim is stopped
og.sim.stop()
scene_cfg = dict(type="Scene")
objects_cfg = []
objects_cfg.append(
dict(
type="DatasetObject",
name="table",
category="breakfast_table",
model="lcsizg",
bounding_box=[0.5, 0.5, 0.8],
fixed_base=True,
position=[0.7, -0.1, 0.6],
)
)
objects_cfg.append(
dict(
type="PrimitiveObject",
name="box",
primitive_type="Cube",
rgba=[1.0, 0, 0, 1.0],
size=0.05,
position=[0.53, 0.0, 0.87],
)
)
cfg = dict(scene=scene_cfg, objects=objects_cfg)
> env = og.Environment(configs=cfg)
tests/test_robot_states_flatcache.py:251:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/utils/python_utils.py:92: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:431: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:718: in import_scene
self._last_scene_edge = scene.load(
omnigibson/scenes/scene_base.py:450: in load
self._pose = T.pose2mat(self._scene_prim.get_position_orientation())
omnigibson/prims/xform_prim.py:262: in get_position_orientation
return PoseAPI.get_world_pose(self.prim_path)
omnigibson/utils/usd_utils.py:789: in get_world_pose
position, orientation = get_world_pose(cls.PRIMS[prim_path])
omnigibson/utils/deprecated_utils.py:954: in get_world_pose
return result_transform[:3, 3], R.from_matrix(result_transform[:3, :3]).as_quat()
_rotation.pyx:1144: in scipy.spatial.transform._rotation.Rotation.from_matrix
???
/isaac-sim/extscache/omni.kit.pip_archive-0.0.0+d02c707b.lx64.cp310/pip_prebundle/numpy/linalg/linalg.py:1681: in svd
u, s, vh = gufunc(a, signature=signature, extobj=extobj)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
err = 'invalid value', flag = 8
def _raise_linalgerror_svd_nonconvergence(err, flag):
> raise LinAlgError("SVD did not converge")
E numpy.linalg.LinAlgError: SVD did not converge
/isaac-sim/extscache/omni.kit.pip_archive-0.0.0+d02c707b.lx64.cp310/pip_prebundle/numpy/linalg/linalg.py:121: LinAlgError