allenai / Holodeck

CVPR 2024: Language Guided Generation of 3D Embodied AI Environments.
https://yueyang1996.github.io/holodeck
Apache License 2.0
333 stars 31 forks source link

RuntimeError: ArgumentNullException: Value cannot be null. #59

Open anson416 opened 3 weeks ago

anson416 commented 3 weeks ago

Hi. I am trying to use Holodeck to generate "a living room". After "wall object constraint plan for living room", an RuntimeError is raised:

[ERROR] Could not generate scene from a living room. Traceback:
Traceback (most recent call last):
  File ".../Holodeck/ai2holodeck/main.py", line 56, in generate_single_scene
    _, save_dir = args.model.generate_scene(
  File ".../Holodeck/ai2holodeck/generation/holodeck.py", line 328, in generate_scene
    scene = self.generate_small_objects(scene, used_assets=used_assets)
  File ".../Holodeck/ai2holodeck/generation/holodeck.py", line 227, in generate_small_objects
    controller = self.small_object_generator.start_controller(
  File ".../Holodeck/ai2holodeck/generation/small_objects.py", line 294, in start_controller
    controller = Controller(
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/controller.py", line 618, in __init__
    event = self.reset(scene)
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/controller.py", line 777, in reset
    self.last_event = self.step(action="CreateHouse", house=scene)
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/controller.py", line 1066, in step
    self.run_action_hook(action)
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/controller.py", line 997, in run_action_hook
    event = method(action, self)
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/hooks/procedural_asset_hook.py", line 109, in CreateHouse
    return create_assets_if_not_exist(
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/hooks/procedural_asset_hook.py", line 58, in create_assets_if_not_exist
    evt = create_asset(
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/util/runtime_assets.py", line 327, in create_asset
    evt = thor_controller.step(
  File ".../src/miniforge3/envs/holodeck/lib/python3.10/site-packages/ai2thor/controller.py", line 1106, in step
    raise RuntimeError(
RuntimeError: ArgumentNullException: Value cannot be null.
Parameter name: path1. trace:   at System.IO.Path.Combine (System.String path1, System.String path2) [0x00003] in <695d1cc93cca45069c528c15c9fdd749>:0 
  at Thor.Procedural.ProceduralTools.CreateAsset (UnityEngine.Vector3[] vertices, UnityEngine.Vector3[] normals, System.String name, System.Int32[] triangles, UnityEngine.Vector2[] uvs, System.String albedoTexturePath, System.String normalTexturePath, System.String emissionTexturePath, Thor.Procedural.Data.SerializableCollider[] colliders, Thor.Procedural.Data.PhysicalProperties physicalProperties, UnityEngine.Vector3[] visibilityPoints, Thor.Procedural.Data.ObjectAnnotations annotations, System.Boolean receptacleCandidate, System.Single yRotOffset, System.Boolean serializable, System.Boolean returnObject, UnityEngine.Transform parent, System.Boolean addAnotationComponent, System.String parentTexturesDir) [0x00340] in <59daa9d85f214c32868d5228dfaf9b98>:0 
  at UnityStandardAssets.Characters.FirstPerson.BaseFPSAgentController.CreateRuntimeAsset (Thor.Procedural.Data.ProceduralAsset asset) [0x00000] in <59daa9d85f214c32868d5228dfaf9b98>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <695d1cc93cca45069c528c15c9fdd749>:0

Does anyone have any idea how to solve this? Thanks.

YueYANG1996 commented 1 week ago

Could you try to pull the latest commit of AI2-THOR?