The ViPlanner Omniverse Extension offers a testing environment for ViPlanner and includes the data collection pipeline. Within NVIDIA Isaac Sim as a photorealistic simulator and using IsaacLab, this extension provides an assessment tool for ViPlanner's performance across diverse environments.
To install the ViPlanner extension for Isaac Sim version 4.2.0, follow these steps:
-
Clone the IsaacLab repo.
git clone [email protected]:isaac-sim/IsaacLab.git
and follow the installation steps given here to install both IsaacLab and IsaacSim.
IMPORTANT: The extension is tested with IsaacSim 4.2.0 and IsaacLab 1.2.0 (commit: 0bccd886c19a9891c0b6bdd37e13f338eacc0bba). While it may work with newer versions, it is not guaranteed. If you encounter issues, please switch back to the previous versions. Any PRs with updated versions are welcome.
-
Link the ViPlanner and Matterport extension to the IsaacLab repo.
cd IsaacLab/source/extensions ln -s <path-to-viplanner-repo>/omniverse/extension/omni.viplanner . ln -s <path-to-viplanner-repo>/omniverse/extension/omni.isaac.matterport .
-
Install ViPlanner and the extension into the virtual environment of IsaacLab.
cd IsaacLab ./isaaclab.sh -p -m pip install -e <path-to-viplanner-repo> # this install the ViPlanner package ./isaaclab.sh -i # this installs the additional extensions
Remark It is necessary to comply with PEP660 for the install. This requires the following versions (as described here in detail)
- pip >= 21.3
cd IsaacLab ./isaaclab.sh -p -m pip install --upgrade pip
- setuptools >= 64.0.0
cd IsaacLab ./isaaclab.sh -p -m pip install --upgrade setuptools
To download Matterport datasets, please refer to the Matterport3D website. The dataset should be converted to USD format using Isaac Sim by executing the following steps:
-
Run the
convert_mesh.py
script to convert the.obj
file (located undermatterport_mesh
) toUSD
. With the recent update of the asset converter script, use the resulting*_non_metric.usd
file.# run the converter cd IsaacLab ./isaaclab.sh -p source/standalone/tools/convert_mesh.py matterport_mesh/xxx.obj matterport_mesh/xxx.usd --make-instanceable --collision-approximation convexDecomposition
IMPORTANT
-
The conversion will fail if the asset name starts with a number (e.g.,
0c334eaabb844eaaad049cbbb2e0a4f2.obj
), because the USD API prohibits this naming as explained here. This issue is described in more detail here. -
Typically, the file should be converted with correct scale and rotation. In the case that you run the demo and the environment is rotated or scaled incorrectly, fix the import setting such as Rotation and Scale. (
Property -> Transform -> Rotate:unitsResolve = 0.0; Scale:unitsResolve = [1.0, 1.0, 1.0]
) and then save the USD.
-
-
Check that the converted mesh has colliders enabled. This can be done by starting IsaacSim (
./isaaclab.sh -s
), importing the converted usd mesh and visualizing the colliders (go to the "eye" symbol in the top left corner, selectShow by Type -> Physics -> Colliders
and set the value toAll
). The colliders should be visible as pink linkes. In the case that no colliders are presented, select the mesh in the stage, go theProperty
section and clickAdd -> Physics -> Colliders Preset
. Then save the asset.
We provide an already converted asset of the Town01
of Carla. It can be downloaded as USD asset: Download USD Link
A demo script is provided to run the planner in three different environments: Matterport, Carla, and NVIDIA Warehouse. In each scenario, the goal is represented as a movable cube within the environment.
To run the demo, download the model: [checkpoint] [config] and the environment files. Then adjust the paths (marked as ${USER_PATH_TO_USD}
) in the corresponding config files.
The demo uses the 2n8kARJN3HM scene from the Matterport dataset. A preview is available here.
cd IsaacLab
./isaaclab.sh -p <path-to-viplanner-repo>/omniverse/standalone/viplanner_demo.py --scene matterport --model_dir <path-to-model-download-dir>
cd IsaacLab
./isaaclab.sh -p <path-to-viplanner-repo>/omniverse/standalone/viplanner_demo.py --scene carla --model_dir <path-to-model-download-dir>
No need to adjust the config, as the asset is directly included in the repo.
cd IsaacLab
./isaaclab.sh -p <path-to-viplanner-repo>/omniverse/standalone/viplanner_demo.py --scene warehouse --model_dir <path-to-model-download-dir>
The training data is generated from different simulation environments. After they have been downloaded and converted to USD, adjust the paths (marked as ${USER_PATH_TO_USD}
) in the corresponding config files (Carla and Matterport).
The rendered viewpoints are collected by executing
cd IsaacLab
./isaaclab.sh -p <path-to-viplanner-repo>/omniverse/standalone/data_collect.py --scene <matterport/carla/warehouse> --num_samples <how-many-viewpoints>
To test that the data has been correctly extracted, please run the 3D reconstruction and see if the results fits to the simulated environment.