You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -107,7 +107,7 @@ You can replay the collected demonstrations by running the following command:
107
107
--dataset_file ./datasets/dataset_gr1.hdf5
108
108
109
109
.. note::
110
-
Non-determinism may be observed during replay as physics in IsaacLab are not determimnistically reproducible when using ``env.reset``.
110
+
Non-determinism may be observed during replay as physics in IsaacLab are not deterministically reproducible when using ``env.reset``.
111
111
112
112
113
113
Annotate the demonstrations
@@ -405,7 +405,7 @@ The robot picks up an object at the initial location (point A) and places it at
405
405
AGILE is an officially supported humanoid control training pipeline that leverages the manager based environment in Isaac Lab. It will also be
406
406
seamlessly integrated with other evaluation and deployment tools across Isaac products. This allows teams to rely on a single, maintained stack
407
407
covering all necessary infrastructure and tooling for policy training, with easy export to real-world deployment. The AGILE repository contains
408
-
updated pre-trained policies with separate upper and lower body policies for flexibtility. They have been verified in the real world and can be
408
+
updated pre-trained policies with separate upper and lower body policies for flexibility. They have been verified in the real world and can be
409
409
directly deployed. Users can also train their own locomotion or whole-body control policies using the AGILE framework.
410
410
411
411
.. _generate-the-manipulation-dataset:
@@ -531,6 +531,8 @@ Visualize the trained policy performance:
531
531
* Behavior Cloning (BC) policy success is typically 75-85% (evaluated on 50 rollouts) when trained on 1000 generated demonstrations for 2000 epochs (default), depending on demonstration quality. Training takes approximately 40 minutes on a RTX ADA 6000.
532
532
* **Recommendation:** Train for 2000 epochs with 1000 generated demonstrations, and **evaluate multiple checkpoints saved between the 1000th and 2000th epochs** to select the best-performing policy. Testing various epochs is essential for finding optimal performance.
@@ -580,7 +582,7 @@ To generate the locomanipulation dataset, use the following command:
580
582
The key parameters for locomanipulation dataset generation are:
581
583
582
584
* ``--lift_step 60``: Number of steps for the lifting phase of the manipulation task. This should mark the point immediately after the robot has grasped the object.
583
-
* ``--navigate_step 130``: Number of steps for the navigation phase between locations. This should make the point where the robot has lifted the object and is ready to walk.
585
+
* ``--navigate_step 130``: Number of steps for the navigation phase between locations. This should mark the point where the robot has lifted the object and is ready to walk.
584
586
* ``--output_file``: Name of the output dataset file
585
587
586
588
.. note::
@@ -600,6 +602,8 @@ This process creates a dataset where the robot performs the manipulation task at
600
602
The data generated from this locomanipulation pipeline can also be used to finetune an imitation learning policy using GR00T N1.5.
601
603
The following steps describe how to install GR00T, convert the dataset to LeRobot format, finetune the policy, and run rollouts in Isaac Lab.
602
604
605
+
.. _finetune-groot-n15-for-locomanipulation:
606
+
603
607
Finetune GR00T N1.5 policy for locomanipulation
604
608
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
605
609
@@ -699,37 +703,99 @@ Optional arguments include ``--randomize_placement`` and ``--policy_quat_format
699
703
The policy shown above uses the camera image, hand poses, hand joint positions, object pose, and base goal pose as inputs.
700
704
The output of the model is the target base velocity, hand poses, and hand joint positions for the next several timesteps.
701
705
702
-
Use NuRec Background in Locomanipulation SDG
703
-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
706
+
Integrating 3D Gaussian Splatting into SDG
707
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
704
708
705
-
**Prerequisites:** Generate a manipulation dataset or download a pre-recorded annotated dataset from :ref:`Generate the manipulation dataset <generate-the-manipulation-dataset>`.
The `NuRec assets <https://docs.isaacsim.omniverse.nvidia.com/5.1.0/assets/usd_assets_nurec.html#neural-volume-rendering>`__
708
-
are neural volumes reconstructed from real-world captures. When integrated into the locomanipulation SDG workflow, these
709
-
assets allow you to generate synthetic data in photorealistic environments that mirror real-world.
720
+
.. note::
710
721
711
-
Custom NuRec Asset Requirements
712
-
"""""""""""""""""""""""""""""""
722
+
This section focuses on data generation with a 3DGS background. To train a policy on the
723
+
generated data, see :ref:`Finetune GR00T N1.5 policy for locomanipulation <finetune-groot-n15-for-locomanipulation>`.
713
724
714
-
To load a custom USD asset, ensure it meets the following specifications:
725
+
.. note::
715
726
716
-
- Neural Rendering: Include neural reconstruction for rendering.
717
-
- Navigation: Include a pre-computed occupancy map for path planning and navigation. You can use the `Occupancy Map Generator <https://docs.isaacsim.omniverse.nvidia.com/6.0.0/digital_twin/ext_isaacsim_asset_generator_occupancy_map.html>`_ to generate the occupancy map.
718
-
- Orientation: Transform the asset so that the ground aligns with the z=0 plane.
719
-
- Collision Mesh (optional): If a collision mesh is included, set it to invisible.
727
+
The locomanipulation SDG pipeline currently runs a single environment. Parallel environment
728
+
support is not yet available for this workflow.
720
729
721
-
Using Pre-constructed Assets
722
-
""""""""""""""""""""""""""""
730
+
Setup: downloading example assets
731
+
"""""""""""""""""""""""""""""""""
732
+
733
+
We provide a sample asset, ``hand_hold-voyager-babyboom``, on
734
+
`Hugging Face <https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-NuRec/tree/main>`__.
723
735
724
-
Pre-constructed assets are available via the `PhysicalAI Robotics NuRec <https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-NuRec>`__
725
-
dataset. Some of them are captured from a humanoid-viewpoint to match the camera view of the humanoid robot.
736
+
Log in to Hugging Face:
726
737
727
-
For example, when using the asset ``hand_hold-voyager-babyboom``, the relevant files are:
738
+
.. code:: bash
728
739
729
-
- `stage.usdz <https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-NuRec/resolve/main/hand_hold-voyager-babyboom/stage.usdz>`__: a USDZ archive that bundles 3D Gaussian splatting (``volume.nurec``), a collision mesh (``mesh.usd``), etc.
730
-
- `occupancy_map.yaml <https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-NuRec/resolve/main/hand_hold-voyager-babyboom/occupancy_map.yaml>`__ and `occupancy_map.png <https://huggingface.co/datasets/nvidia/PhysicalAI-Robotics-NuRec/resolve/main/hand_hold-voyager-babyboom/occupancy_map.png>`__: occupancy map for path planning and navigation.
Download the files and place them under ``<PATH_TO_USD_ASSET>``, then run the following command to generate a new dataset with background:
742
+
Download the required USDZ stage files and occupancy maps:
743
+
744
+
.. code:: bash
745
+
746
+
hf download nvidia/PhysicalAI-Robotics-NuRec \
747
+
hand_hold-voyager-babyboom/stage_volume.usdz \
748
+
hand_hold-voyager-babyboom/stage_particle.usdz \
749
+
hand_hold-voyager-babyboom/occupancy_map.png \
750
+
hand_hold-voyager-babyboom/occupancy_map.yaml \
751
+
--repo-type dataset \
752
+
--local-dir <PATH_TO_USD_ASSET>
753
+
754
+
The sample includes both a volume-based USD (``stage_volume.usdz``) and a particle-field USD
755
+
(``stage_particle.usdz``). Either can be used as the background asset.
756
+
757
+
Asset requirements
758
+
""""""""""""""""""
759
+
760
+
If you are using custom 3D Gaussian assets, ensure they meet these specifications to be
761
+
compatible with the SDG pipeline:
762
+
763
+
- The scene has sufficient free space (e.g. 5m x 5m) for asset placement and robot navigation.
764
+
- The ground surface is aligned with the z=0 plane, as the pipeline assumes this elevation for
765
+
object placement.
766
+
- An occupancy map is required for path planning.
767
+
768
+
- If your scene was reconstructed using the `Stereo Workflow <https://docs.nvidia.com/nurec/robotics/neural_reconstruction_stereo.html>`__,
769
+
the occupancy map is generated via ``nvblox``.
770
+
- If your background includes a mesh, use the `Occupancy Map Generator <https://docs.isaacsim.omniverse.nvidia.com/6.0.0/digital_twin/ext_isaacsim_asset_generator_occupancy_map.html>`__
771
+
to create a map via physical simulation.
772
+
773
+
Generating the dataset
774
+
""""""""""""""""""""""
775
+
776
+
Before proceeding, ensure you have generated a manipulation dataset or downloaded the sample
777
+
dataset provided in the
778
+
:ref:`Generate the manipulation dataset <generate-the-manipulation-dataset>` section.
779
+
780
+
Once you have gathered:
781
+
782
+
- A manipulation dataset
783
+
- A background USD asset
784
+
- A matched occupancy map
785
+
786
+
you can run the generation command. At runtime, the script adds a ground plane at ``z=0`` to
787
+
the scene. It then proceeds through four stages:
788
+
789
+
1. **Pick**: The robot picks up an object at the start location by replaying the manipulation
790
+
trajectory. ``--lift_step`` marks the end of this stage (immediately after grasp).
791
+
2. **Navigate**: The robot travels to the target location using occupancy-map path planning and
792
+
its locomotion policy. ``--navigate_step`` marks the end of this stage (when the robot is in
793
+
place to release the object).
794
+
3. **Place**: The robot places the object at the target location, completing the trajectory.
795
+
4. **Record**: Joint states, poses, and the ego-centric video are saved to the HDF5 file
796
+
specified by ``--output_file``.
797
+
798
+
Run the generation command:
733
799
734
800
.. code:: bash
735
801
@@ -741,36 +807,49 @@ Download the files and place them under ``<PATH_TO_USD_ASSET>``, then run the fo
0 commit comments