Replicator composer scenario model not found on omniverse://localhost or locally

trying to run composer repilicator tutorial with the following command:

./python.sh tools/composer/src/main.py --input */parameters/warehouse.yaml --output */dataset/attempt_1 --mount ~/composer-workspace/ --num-scenes 3

i’ve been getting this following error:

Parsing and checking input parameterization.
Traceback (most recent call last):
File “tools/composer/src/main.py”, line 93, in
mount=args.mount,
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/composer.py”, line 86, in init
mount=mount,
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/parser.py”, line 97, in init
self.params = self.parse_input(input_file)
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/parser.py”, line 557, in parse_input
params = self.parse_params(params)
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/parser.py”, line 495, in parse_params
self.parse_paths(params)
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/parser.py”, line 364, in parse_paths
paths = _verify_paths(key, [path], correct_file_types)
File “/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/src/parser.py”, line 318, in _verify_paths
raise ValueError(f"Parameter {key} has path {path} not found on {self.nucleus_server} or locally.")
ValueError: Parameter scenario_model has path /Isaac/Environments/Simple_Warehouse/warehouse.usd not found on omniverse://localhost or locally.
2023-01-03 15:01:23 [8,728ms] [Warning] [carb.audio.context] 1 contexts were leaked
./python.sh: line 41: 735151 Segmentation fault (core dumped) $python_exe “$@” $args
There was an error running python

please let me know what logs i could upload in order to help debug and solve the problem.
thank you

Hello @eytandn! I’ve shared your post with the dev team for further assistance.

Hi @eytandn , can you change the scenario_model to /NVIDIA/Assets/Isaac/2022.2.0/Isaac/Environments/Simple_Warehouse/ and add /NVIDIA/Assets/Isaac/2022.2.0/ in front of every values values in assets/models/warehouse.txt? These assets are removed from the localhost that’s why you are seeing this issue. We will update the paths.

This fixed though many many more pathes needed to be corrected in some other files as well

also, the files I needed to correct were inside the dir:
/home/captain/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/
and not in the:
/home/captain/composer-workspace/
as expected to work from the replicator tutorial video

thank you for the help

Through lots of experimentation, I think I’ve narrowed the work-around to get the Warehouse example working.

There are 3 relevant files: warehouse.yaml, warehouse.txt, and default.yaml. It turns out that there are various copies of these files all around the installation, so I empirically determined which ones are being used and what needed to be fixed in them.

Files that need to be fixed to make composer work on Warehouse Example:

<workspace>/parameters/warehouse.yaml  

~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/assets/models/warehouse.txt 

~/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/parameters/profiles/default.yaml

I can’t explain the weird locations of these files, but this is what worked for me as they are installed with IsaacSim. The <workspace> location is a directory I created and copied the contents of the composer-workspace directories/files. My <workspace> is actually:

/Data1/omniverse/composer-workspace

Data1 is a large drive that I have, so I put it on this drive because I wanted the generated data to go here. You may use something like ~/omniverse/composer-workspace if that works for you.

Create a `<workspace>` where you can put configuration files and store the generated data.
For example,
mkdir  ~/omniverse
mkdir ~/omniverse/composer-workspace

Copy example configuration files into <workspace>.  
cp -r ~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/parameters ~/omniverse/composer-workspace
cp -r ~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/assets ~/omniverse/composer-workspace

With all this is place, now you need to fix the necessary configuration files.
Paths in these files need to be corrected and the correction needed depends upon what value is set in the --nucleus-server parameter that’s part of the composer run command (in step 4 below).
For example, if
–nucleus-server localhost/NVIDIA/Assets/Isaac/2022.2.0/Isaac

then, a path to an asset in one of the configuration files might be
/Environments/Simple_Warehouse/warehouse.usd

This would result in a full path of:
localhost/NVIDIA/Assets/Isaac/2022.2.0/Isaac/Environments/Simple_Warehouse/warehouse.usd

1) fix file: warehouse.yaml , located at:
<workspace>/parameters/warehouse.yaml 

Fix the following line:
scenario_model: /Environments/Simple_Warehouse/warehouse.usd

NOTE: there are other warehouse.yaml files that are NOT USED, e.g.
~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/parameters/warehouse.yaml


2) fix file:  warehouse.txt, located at: 
( ~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/assets/models/warehouse.txt  )

Fix all the paths to the assets.  The paths in the file are used in conjunction with the --nucleus-server parameter (see step 4 below) to set the base part of the path.

For example, if set as --nucleus-server localhost/NVIDIA/Assets/Isaac/2022.2.0/Isaac
then the paths in warehouse.txt would be set as the examples below:

/Props/Dolly/dolly.usd
/Environments/Simple_Warehouse/Props/S_TrafficCone.usd

NOTE: there are other warehouse.txt files that are NOT USED, e.g.
<workspace>/assets/models/warehouse.txt 


3) fix file:  default.yaml, located at:
~/.local/share/ov/pkg/isaac_sim-2022.2.0/extscache/omni.replicator.composer-1.2.2+lx64/omni/replicator/composer/parameters/profiles/default.yaml 

Fix the following lines:
obj_model: /Props/Forklift/forklift.usd
scenario_model: /Environments/Simple_Warehouse/warehouse.usd

NOTE: there are other default.yaml files that are NOT USED, e.g.
 ~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/parameters/profiles/default.yaml 
<workspace>/parameters/profiles/default.yaml  


4) run composer

./python.sh tools/composer/src/main.py --input */parameters/warehouse.yaml --output */datasets/warehouse --num-scenes 10 --mount /Data1/omniverse/composer-workspace --overwrite --headless  --nucleus-server localhost/NVIDIA/Assets/Isaac/2022.2.0/Isaac

I’m not 100% sure that this is the only solution to getting this example to run. My guess is that fixes to main.py, composer.py, and/or parser.py may clean up all of this. Regardless, this is what worked for me.

1 Like

I’m gathering you are on linux, since I can’t find any related main.py in the Windows installation.

main.py appears to have been installed with the composer warehouse demo. On my linux machine, it is at:

~/.local/share/ov/pkg/isaac_sim-2022.2.0/tools/composer/src/main.py

It is part of this example install on a Windows machine as well.

hmm…, okay I’ll dig deeper. Thanks for info.

… Found it. Thanks again.

Dave