Merge pull request #990 from StanfordVL/feat/controller-dependencies #365
121 passed, 30 failed and 9 skipped
❌ 11898020939-tests-test_controllers/test_controllers.xml
1 tests were completed in 500s with 0 passed, 1 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1❌ | 500s |
❌ pytest
tests.test_controllers
❌ test_arm_control
def test_arm_control():
✅ 11898020939-tests-test_dump_load_states/test_dump_load_states.xml
4 tests were completed in 1803s with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 4✅ | 1803s |
✅ pytest
tests.test_dump_load_states
✅ test_dump_load
✅ test_dump_load_serialized
✅ test_save_restore_partial
✅ test_save_restore_full
✅ 11898020939-tests-test_envs/test_envs.xml
5 tests were completed in 1577s with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 5✅ | 1577s |
✅ pytest
tests.test_envs
✅ test_dummy_task
✅ test_point_reaching_task
✅ test_point_navigation_task
✅ test_behavior_task
✅ test_rs_int_full_load
✅ 11898020939-tests-test_multiple_envs/test_multiple_envs.xml
10 tests were completed in 628s with 8 passed, 0 failed and 2 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 8✅ | 2⚪ | 628s |
✅ 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
✅ 11898020939-tests-test_object_removal/test_object_removal.xml
2 tests were completed in 1761s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 1761s |
✅ pytest
tests.test_object_removal
✅ test_removal_and_readdition
✅ test_readdition
✅ 11898020939-tests-test_object_states/test_object_states.xml
33 tests were completed in 1218s with 33 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 33✅ | 1218s |
✅ 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
❌ 11898020939-tests-test_primitives/test_primitives.xml
10 tests were completed in 568s with 0 passed, 6 failed and 4 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 6❌ | 4⚪ | 568s |
❌ pytest
tests.test_primitives.TestPrimitives
❌ test_navigate[Tiago]
self = <test_primitives.TestPrimitives object at 0x7fdcf4f3efe0>
❌ test_navigate[Fetch]
self = <test_primitives.TestPrimitives object at 0x7fdaf7d17ca0>
❌ test_grasp[Tiago]
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15a20>
❌ test_grasp[Fetch]
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15540>
❌ test_place[Tiago]
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15600>
❌ test_place[Fetch]
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15ed0>
⚪ test_open_prismatic[Tiago]
⚪ test_open_prismatic[Fetch]
⚪ test_open_revolute[Tiago]
⚪ test_open_revolute[Fetch]
❌ 11898020939-tests-test_robot_states_flatcache/test_robot_states_flatcache.xml
3 tests were completed in 552s with 0 passed, 3 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 3❌ | 552s |
❌ pytest
tests.test_robot_states_flatcache
❌ test_camera_pose_flatcache_on
def test_camera_pose_flatcache_on():
❌ test_robot_load_drive
def test_robot_load_drive():
❌ test_grasping_mode
def test_grasping_mode():
❌ 11898020939-tests-test_robot_states_no_flatcache/test_robot_states_no_flatcache.xml
3 tests were completed in 583s with 0 passed, 3 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 3❌ | 583s |
❌ 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():
✅ 11898020939-tests-test_robot_teleoperation/test_robot_teleoperation.xml
1 tests were completed in 206ms with 0 passed, 0 failed and 1 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1⚪ | 206ms |
✅ pytest
tests.test_robot_teleoperation
⚪ test_teleop
✅ 11898020939-tests-test_scene_graph/test_scene_graph.xml
1 tests were completed in 473s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 473s |
✅ pytest
tests.test_scene_graph
✅ test_scene_graph
✅ 11898020939-tests-test_sensors/test_sensors.xml
2 tests were completed in 1011s with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 2✅ | 1011s |
✅ pytest
tests.test_sensors
✅ test_segmentation_modalities
✅ test_bbox_modalities
❌ 11898020939-tests-test_symbolic_primitives/test_symbolic_primitives.xml
20 tests were completed in 1252s with 9 passed, 9 failed and 2 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 9✅ | 9❌ | 2⚪ | 1252s |
❌ pytest
tests.test_symbolic_primitives.TestSymbolicPrimitives
✅ test_in_hand_state[Fetch]
✅ test_open[Fetch]
✅ test_close[Fetch]
✅ test_place_inside[Fetch]
✅ test_place_ontop[Fetch]
✅ test_toggle_on[Fetch]
✅ test_soak_under[Fetch]
✅ test_wipe[Fetch]
⚪ test_cut[Fetch]
✅ test_persistent_sticky_grasping[Fetch]
❌ test_in_hand_state[Tiago]
robot_type = 'Tiago'
❌ test_open[Tiago]
robot_type = 'Tiago'
❌ test_close[Tiago]
robot_type = 'Tiago'
❌ test_place_inside[Tiago]
robot_type = 'Tiago'
❌ test_place_ontop[Tiago]
robot_type = 'Tiago'
❌ test_toggle_on[Tiago]
robot_type = 'Tiago'
❌ test_soak_under[Tiago]
robot_type = 'Tiago'
❌ test_wipe[Tiago]
robot_type = 'Tiago'
⚪ test_cut[Tiago]
❌ test_persistent_sticky_grasping[Tiago]
robot_type = 'Tiago'
✅ 11898020939-tests-test_systems/test_systems.xml
1 tests were completed in 1638s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 1✅ | 1638s |
✅ pytest
tests.test_systems
✅ test_system_clear
❌ 11898020939-tests-test_transform_utils/test_transform_utils.xml
34 tests were completed in 85s with 26 passed, 8 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 26✅ | 8❌ | 85s |
❌ 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
self = <test_transform_utils.TestVectorOperations object at 0x7fcbf0c8f9d0>
✅ test_dot_product
✅ test_l2_distance
tests.test_transform_utils.TestMatrixOperations
✅ test_rotation_matrix_properties
❌ test_rotation_matrix
self = <test_transform_utils.TestMatrixOperations object at 0x7fcbf0c8ffd0>
❌ test_transformation_matrix
self = <test_transform_utils.TestMatrixOperations object at 0x7fcbf0c8d1b0>
❌ test_transformation_matrix_no_point
self = <test_transform_utils.TestMatrixOperations object at 0x7fcbf1d57340>
✅ 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
self = <test_transform_utils.TestAxisAngleConversions object at 0x7fcbf0c8f670>
❌ test_vecs2axisangle
self = <test_transform_utils.TestAxisAngleConversions object at 0x7fcbf0c8fb50>
❌ test_vecs2quat
self = <test_transform_utils.TestAxisAngleConversions object at 0x7fcbf14f1f90>
tests.test_transform_utils.TestEulerAngleConversions
✅ test_euler2quat_and_quat2euler
✅ test_euler2mat_and_mat2euler
tests.test_transform_utils.TestQuaternionApplications
✅ test_quat_apply
❌ test_quat_slerp
self = <test_transform_utils.TestQuaternionApplications object at 0x7fcbf14f2050>
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
✅ 11898020939-tests-test_transition_rules/test_transition_rules.xml
30 tests were completed in 1931s with 30 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
pytest | 30✅ | 1931s |
✅ 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 11898020939-tests-test_controllers/test_controllers.xml
github-actions / Test Results
pytest ► tests.test_controllers ► test_arm_control
Failed test found in:
11898020939-tests-test_controllers/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": "rgb",
"position": [150, 150, 100],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "Fetch",
"name": "robot1",
"obs_modalities": "rgb",
"position": [150, 150, 105],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "Tiago",
"name": "robot2",
"obs_modalities": "rgb",
"position": [150, 150, 110],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "A1",
"name": "robot3",
"obs_modalities": "rgb",
"position": [150, 150, 115],
"orientation": [0, 0, 0, 1],
"action_normalize": False,
},
{
"type": "R1",
"name": "robot4",
"obs_modalities": "rgb",
"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:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:132: in __init__
og.sim.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:161: in _initialize
self._load_controllers()
omnigibson/objects/controllable_object.py:284: in _load_controllers
self.update_controller_mode()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.robots.r1.R1 object at 0x7f7046ff79d0>
def update_controller_mode(self):
"""
Helper function to force the joints to use the internal specified control mode and gains
"""
# Update the control modes of each joint based on the outputted control from the controllers
unused_dofs = {i for i in range(self.n_dof)}
for name in self._controllers:
for dof in self._controllers[name].dof_idx:
# Make sure the DOF has not already been set yet, and remove it afterwards
assert dof.item() in unused_dofs
unused_dofs.remove(dof.item())
control_type = self._controllers[name].control_type
self._joints[self.dof_names_ordered[dof]].set_control_type(
control_type=control_type,
kp=self.default_kp if control_type == ControlType.POSITION else None,
kd=(
self.default_kd
if control_type == ControlType.POSITION or control_type == ControlType.VELOCITY
else None
),
)
# For all remaining DOFs not controlled, we assume these are free DOFs (e.g.: virtual joints representing free
# motion wrt a specific axis), so explicitly set kp / kd to 0 to avoid silent bugs when
# joint positions / velocities are set
for unused_dof in unused_dofs:
unused_joint = self._joints[self.dof_names_ordered[unused_dof]]
> assert not unused_joint.driven, (
f"All unused joints not mapped to any controller should not have DriveAPI attached to it! "
f"However, joint {unused_joint.name} is driven!"
)
E AssertionError: All unused joints not mapped to any controller should not have DriveAPI attached to it! However, joint robot4:joint_base_footprint_z_joint is driven!
omnigibson/objects/controllable_object.py:313: AssertionError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_navigate[Tiago]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdcf4f3efe0>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdcf4f3efe0>
robot = 'Tiago'
def test_navigate(self, robot):
categories = ["floors", "ceilings", "walls"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:92:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:132: in __init__
og.sim.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:151: in _initialize
self.reload_controllers(self._controller_config)
omnigibson/objects/controllable_object.py:363: in reload_controllers
self._load_controllers()
omnigibson/objects/controllable_object.py:227: in _load_controllers
self._controller_config = self._generate_controller_config(custom_config=self._controller_config)
omnigibson/objects/controllable_object.py:345: in _generate_controller_config
controller_config[group] = merge_nested_dicts(
omnigibson/utils/python_utils.py:183: in merge_nested_dicts
equal = safe_equal(base_dict[k], v)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
a = tensor([ 8, 11, 14, 16, 18, 20, 22])
b = tensor([ 6, 8, 11, 14, 16, 18, 20, 22])
def safe_equal(a, b):
if isinstance(a, th.Tensor) and isinstance(b, th.Tensor):
> return (a == b).all().item()
E RuntimeError: The size of tensor a (7) must match the size of tensor b (8) at non-singleton dimension 0
omnigibson/utils/python_utils.py:154: RuntimeError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_navigate[Fetch]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdaf7d17ca0>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdaf7d17ca0>
robot = 'Fetch'
def test_navigate(self, robot):
categories = ["floors", "ceilings", "walls"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:92:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:429: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:715: in import_scene
self.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:147: in _initialize
super()._initialize()
omnigibson/objects/object_base.py:224: in _initialize
super()._initialize()
omnigibson/prims/entity_prim.py:92: in _initialize
link.initialize()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fdce9194460>
def initialize(self):
"""
Initializes state of this object and sets up any references necessary post-loading. Subclasses should
implement / extend the _initialize() method.
"""
> assert (
not self._initialized
), f"Prim {self.name} at prim_path {self.prim_path} can only be initialized once! (It is already initialized)"
E AssertionError: Prim robot_lwahzr:base_footprint at prim_path /World/scene_0/controllable__tiago__robot_lwahzr/base_footprint can only be initialized once! (It is already initialized)
omnigibson/prims/prim_base.py:76: AssertionError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_grasp[Tiago]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15a20>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15a20>
robot = 'Tiago'
def test_grasp(self, robot):
categories = ["floors", "ceilings", "walls", "coffee_table"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:429: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:715: in import_scene
self.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:147: in _initialize
super()._initialize()
omnigibson/objects/object_base.py:224: in _initialize
super()._initialize()
omnigibson/prims/entity_prim.py:92: in _initialize
link.initialize()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fdce9194460>
def initialize(self):
"""
Initializes state of this object and sets up any references necessary post-loading. Subclasses should
implement / extend the _initialize() method.
"""
> assert (
not self._initialized
), f"Prim {self.name} at prim_path {self.prim_path} can only be initialized once! (It is already initialized)"
E AssertionError: Prim robot_lwahzr:base_footprint at prim_path /World/scene_0/controllable__tiago__robot_lwahzr/base_footprint can only be initialized once! (It is already initialized)
omnigibson/prims/prim_base.py:76: AssertionError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_grasp[Fetch]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15540>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15540>
robot = 'Fetch'
def test_grasp(self, robot):
categories = ["floors", "ceilings", "walls", "coffee_table"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:109:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:429: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:715: in import_scene
self.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:147: in _initialize
super()._initialize()
omnigibson/objects/object_base.py:224: in _initialize
super()._initialize()
omnigibson/prims/entity_prim.py:92: in _initialize
link.initialize()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fdce9194460>
def initialize(self):
"""
Initializes state of this object and sets up any references necessary post-loading. Subclasses should
implement / extend the _initialize() method.
"""
> assert (
not self._initialized
), f"Prim {self.name} at prim_path {self.prim_path} can only be initialized once! (It is already initialized)"
E AssertionError: Prim robot_lwahzr:base_footprint at prim_path /World/scene_0/controllable__tiago__robot_lwahzr/base_footprint can only be initialized once! (It is already initialized)
omnigibson/prims/prim_base.py:76: AssertionError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_place[Tiago]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15600>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15600>
robot = 'Tiago'
def test_place(self, robot):
categories = ["floors", "ceilings", "walls", "coffee_table"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:429: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:715: in import_scene
self.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:147: in _initialize
super()._initialize()
omnigibson/objects/object_base.py:224: in _initialize
super()._initialize()
omnigibson/prims/entity_prim.py:92: in _initialize
link.initialize()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fdce9194460>
def initialize(self):
"""
Initializes state of this object and sets up any references necessary post-loading. Subclasses should
implement / extend the _initialize() method.
"""
> assert (
not self._initialized
), f"Prim {self.name} at prim_path {self.prim_path} can only be initialized once! (It is already initialized)"
E AssertionError: Prim robot_lwahzr:base_footprint at prim_path /World/scene_0/controllable__tiago__robot_lwahzr/base_footprint can only be initialized once! (It is already initialized)
omnigibson/prims/prim_base.py:76: AssertionError
Check failure on line 0 in 11898020939-tests-test_primitives/test_primitives.xml
github-actions / Test Results
pytest ► tests.test_primitives.TestPrimitives ► test_place[Fetch]
Failed test found in:
11898020939-tests-test_primitives/test_primitives.xml
Error:
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15ed0>
Raw output
self = <test_primitives.TestPrimitives object at 0x7fdaf7d15ed0>
robot = 'Fetch'
def test_place(self, robot):
categories = ["floors", "ceilings", "walls", "coffee_table"]
> env = setup_environment(categories, robot=robot)
tests/test_primitives.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/test_primitives.py:63: in setup_environment
env = og.Environment(configs=cfg)
omnigibson/utils/python_utils.py:93: in wrapper
func(*values.args, **values.kwargs)
omnigibson/envs/env_base.py:128: in __init__
self.load()
omnigibson/envs/env_base.py:429: in load
self._load_scene()
omnigibson/envs/env_base.py:257: in _load_scene
og.sim.import_scene(self._scene)
omnigibson/simulator.py:715: in import_scene
self.play()
omnigibson/simulator.py:1038: in play
self._non_physics_step()
omnigibson/simulator.py:936: in _non_physics_step
obj.initialize()
omnigibson/prims/prim_base.py:79: in initialize
self._initialize()
omnigibson/robots/holonomic_base_robot.py:137: in _initialize
super()._initialize()
omnigibson/robots/manipulation_robot.py:210: in _initialize
super()._initialize()
omnigibson/robots/robot_base.py:171: in _initialize
super()._initialize()
omnigibson/objects/stateful_object.py:152: in _initialize
super()._initialize()
omnigibson/objects/controllable_object.py:147: in _initialize
super()._initialize()
omnigibson/objects/object_base.py:224: in _initialize
super()._initialize()
omnigibson/prims/entity_prim.py:92: in _initialize
link.initialize()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <omnigibson.prims.rigid_prim.RigidPrim object at 0x7fdce9194460>
def initialize(self):
"""
Initializes state of this object and sets up any references necessary post-loading. Subclasses should
implement / extend the _initialize() method.
"""
> assert (
not self._initialized
), f"Prim {self.name} at prim_path {self.prim_path} can only be initialized once! (It is already initialized)"
E AssertionError: Prim robot_lwahzr:base_footprint at prim_path /World/scene_0/controllable__tiago__robot_lwahzr/base_footprint can only be initialized once! (It is already initialized)
omnigibson/prims/prim_base.py:76: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_camera_pose_flatcache_on
Failed test found in:
11898020939-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:124:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
flatcache = True
def camera_pose_test(flatcache):
env = setup_environment(flatcache)
robot = env.robots[0]
env.reset()
og.sim.step()
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 = th.tensor([150.1620, 149.9999, 101.2193])
sensor_world_ori_gt = th.tensor([-0.2952, 0.2959, 0.6427, -0.6421])
> assert th.allclose(sensor_world_pos, sensor_world_pos_gt, atol=1e-3)
E assert False
E + where False = <built-in method allclose of type object at 0x7fd658e85840>(tensor([150.1628, 149.9993, 101.3773]), tensor([150.1620, 149.9999, 101.2193]), atol=0.001)
E + where <built-in method allclose of type object at 0x7fd658e85840> = th.allclose
tests/test_robot_states_flatcache.py:67: AssertionError
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_robot_load_drive
Failed test found in:
11898020939-tests-test_robot_states_flatcache/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:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/scenes/scene_base.py:631: in add_object
prim = obj.load(self)
omnigibson/objects/controllable_object.py:176: in load
prim = super().load(scene)
omnigibson/objects/object_base.py:123: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:116: in load
self._post_load()
omnigibson/robots/robot_base.py:164: in _post_load
super()._post_load()
omnigibson/objects/stateful_object.py:144: in _post_load
super()._post_load()
omnigibson/objects/controllable_object.py:194: in _post_load
super()._post_load()
omnigibson/objects/object_base.py:161: in _post_load
super()._post_load()
omnigibson/prims/entity_prim.py:128: in _post_load
self.update_links()
omnigibson/prims/entity_prim.py:260: in update_links
self._links[link_name].load(self.scene)
omnigibson/prims/prim_base.py:116: in load
self._post_load()
omnigibson/prims/rigid_prim.py:92: in _post_load
self._rigid_prim_view_direct = RigidPrimView(self.prim_path)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/rigid_prim_view.py:145: in __init__
XFormPrimView.__init__(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:175: in __init__
self._set_xform_properties()
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:321: in _set_xform_properties
self.set_world_poses(positions=current_positions, orientations=current_orientations)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/rigid_prim_view.py:367: in set_world_poses
XFormPrimView.set_world_poses(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:939: in set_world_poses
calculated_translations, calculated_orientations = self._backend_utils.get_local_from_world(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/utils/torch/transformations.py:44: in get_local_from_world
my_world_transforms = tf_matrices_from_poses(translations=positions, orientations=orientations, device=device)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/utils/torch/transformations.py:34: in tf_matrices_from_poses
r = Rotation.from_quat(orientations[:, [1, 2, 3, 0]].detach().cpu().numpy())
_rotation.pyx:637: in scipy.spatial.transform._rotation.Rotation.from_quat
???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E ValueError: Found zero norm quaternions in `quat`.
_rotation.pyx:532: ValueError
github-actions / Test Results
pytest ► tests.test_robot_states_flatcache ► test_grasping_mode
Failed test found in:
11898020939-tests-test_robot_states_flatcache/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=f"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=f"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:250:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
omnigibson/utils/python_utils.py:93: 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_objects()
omnigibson/envs/env_base.py:315: in _load_objects
self.scene.add_object(obj)
omnigibson/scenes/scene_base.py:631: in add_object
prim = obj.load(self)
omnigibson/objects/object_base.py:123: in load
prim = super().load(scene)
omnigibson/prims/prim_base.py:116: in load
self._post_load()
omnigibson/objects/dataset_object.py:240: in _post_load
super()._post_load()
omnigibson/objects/stateful_object.py:144: in _post_load
super()._post_load()
omnigibson/objects/object_base.py:161: in _post_load
super()._post_load()
omnigibson/prims/entity_prim.py:128: in _post_load
self.update_links()
omnigibson/prims/entity_prim.py:260: in update_links
self._links[link_name].load(self.scene)
omnigibson/prims/prim_base.py:116: in load
self._post_load()
omnigibson/prims/rigid_prim.py:92: in _post_load
self._rigid_prim_view_direct = RigidPrimView(self.prim_path)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/rigid_prim_view.py:145: in __init__
XFormPrimView.__init__(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:175: in __init__
self._set_xform_properties()
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:321: in _set_xform_properties
self.set_world_poses(positions=current_positions, orientations=current_orientations)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/rigid_prim_view.py:367: in set_world_poses
XFormPrimView.set_world_poses(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py:939: in set_world_poses
calculated_translations, calculated_orientations = self._backend_utils.get_local_from_world(
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/utils/torch/transformations.py:44: in get_local_from_world
my_world_transforms = tf_matrices_from_poses(translations=positions, orientations=orientations, device=device)
/isaac-sim/exts/omni.isaac.core/omni/isaac/core/utils/torch/transformations.py:34: in tf_matrices_from_poses
r = Rotation.from_quat(orientations[:, [1, 2, 3, 0]].detach().cpu().numpy())
_rotation.pyx:637: in scipy.spatial.transform._rotation.Rotation.from_quat
???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E ValueError: Found zero norm quaternions in `quat`.
_rotation.pyx:532: ValueError
github-actions / Test Results
pytest ► tests.test_robot_states_no_flatcache ► test_camera_pose_flatcache_off
Failed test found in:
11898020939-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()
og.sim.step()
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 = th.tensor([150.1620, 149.9999, 101.2193])
sensor_world_ori_gt = th.tensor([-0.2952, 0.2959, 0.6427, -0.6421])
> assert th.allclose(sensor_world_pos, sensor_world_pos_gt, atol=1e-3)
E assert False
E + where False = <built-in method allclose of type object at 0x7f7d7bc85840>(tensor([150.1628, 149.9993, 101.3773]), tensor([150.1620, 149.9999, 101.2193]), atol=0.001)
E + where <built-in method allclose of type object at 0x7f7d7bc85840> = th.allclose
tests/test_robot_states_flatcache.py:67: AssertionError