Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d9486bd
Add custom mesh spawner
maxkra15 Aug 6, 2026
d152a2f
Add Newton conveyor Franka task
maxkra15 Aug 6, 2026
470a16d
Format conveyor force driver
maxkra15 Aug 6, 2026
77bf43e
Declare conveyor runtime dependencies
maxkra15 Aug 7, 2026
01d9955
Address conveyor review feedback
maxkra15 Aug 7, 2026
e58fbc2
Add conveyor transfer MDP
maxkra15 Aug 7, 2026
d1a6793
Refine conveyor transfer task and force model
maxkra15 Aug 10, 2026
66de12d
Improve conveyor viewer controls and contacts
maxkra15 Aug 10, 2026
a5510ba
Use shared success monitor for conveyor resets
maxkra15 Aug 11, 2026
b79ce31
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 12, 2026
d33cd7b
Refactor conveyor goals into command term
maxkra15 Aug 12, 2026
a200805
Set conveyor viewer camera pose
maxkra15 Aug 13, 2026
c11ebf4
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 13, 2026
a27ac6a
Align conveyor task backends and lifecycle
maxkra15 Aug 14, 2026
3e10491
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 14, 2026
5714e65
Use clone templates for conveyor bindings
maxkra15 Aug 14, 2026
1234b6a
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 14, 2026
c57f7bc
Preserve task devices and finite action rewards
maxkra15 Aug 14, 2026
281dcb8
Localize conveyor task interfaces
maxkra15 Aug 14, 2026
41cbb3f
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 19, 2026
dc934ed
Document pretrained conveyor checkpoint
maxkra15 Aug 19, 2026
b6ab48f
Merge remote-tracking branch 'upstream/develop' into maximiliank/conv…
maxkra15 Aug 24, 2026
92eed73
Add asset-rich conveyor playback scene
maxkra15 Aug 25, 2026
6f41cf3
Move conveyor surface velocity into physics backends
maxkra15 Sep 3, 2026
c5e14fe
Merge latest develop into conveyor branch
maxkra15 Sep 7, 2026
16b671f
Merge latest develop and adapt conveyor lifecycle hooks
maxkra15 Sep 24, 2026
baf58ae
Add USD conveyor warehouse sorting and user guide
maxkra15 Sep 24, 2026
5b394c6
Fix public conveyor documentation links
maxkra15 Sep 24, 2026
db325c2
Document Kit geometry streaming override for warehouse playback
maxkra15 Sep 24, 2026
31f2120
Document the validated Kit recording configuration
maxkra15 Sep 24, 2026
9609dc2
Clarify shared-policy racetrack and sorting task variants
maxkra15 Sep 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
# No USD files allowed in the repo
**/*.usd
**/*.usda
!source/isaaclab_tasks/isaaclab_tasks/contrib/conveyor_franka/assets/*.usda
!source/isaaclab_tasks/isaaclab_tasks/contrib/conveyor_franka/assets/*.usd
**/*.usdc
**/*.usdz

Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ Table of Contents
source/setup/ecosystem
source/setup/installation/index
source/setup/environments
source/setup/conveyor_franka
source/setup/quickstart
source/setup/tutorial
source/setup/demos
Expand Down
Binary file added docs/source/_static/conveyor_franka.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/source/_static/css/environment-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@
["IsaacContrib-AutoMate-Disassembly-Direct", "rl_games", "", "", "", "tasks/automate/01053_disassembly.jpg"],
["IsaacContrib-Cartpole-Camera-Showcase-Direct", "skrl", "", "", "box_box,box_discrete,box_multidiscrete,dict_box,dict_discrete,dict_multidiscrete,tuple_box,tuple_discrete,tuple_multidiscrete"],
["IsaacContrib-Cartpole-Showcase-Direct", "skrl", "isaacsim_physx,newton_kamino,newton_mjwarp,ovphysx", "", "box_box,box_discrete,box_multidiscrete,dict_box,dict_discrete,dict_multidiscrete,discrete_box,discrete_discrete,discrete_multidiscrete,multidiscrete_box,multidiscrete_discrete,multidiscrete_multidiscrete,tuple_box,tuple_discrete,tuple_multidiscrete"],
["IsaacContrib-Conveyor-Franka-Newton-Play-v0", "rsl_rl", "", "", "", "conveyor_franka.jpg"],
["IsaacContrib-Conveyor-Franka-Newton-v0", "rsl_rl", "", "", "", "conveyor_franka.jpg"],
["IsaacContrib-Conveyor-Franka-PhysX-CPU-v0", "rsl_rl", "", "", "", "conveyor_franka.jpg"],
["IsaacContrib-Deploy-GearAssembly-Rizon4s-Grav", "rsl_rl", "", "", ""],
["IsaacContrib-Deploy-GearAssembly-Rizon4s-Grav-ROS-Inference", "rsl_rl", "", "", ""],
["IsaacContrib-Deploy-GearAssembly-UR10e-2F140", "rsl_rl", "", "", ""],
Expand Down
8 changes: 8 additions & 0 deletions docs/source/api/lab/isaaclab.physics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ The following classes are part of the public :mod:`isaaclab.physics` API.
PhysicsEvent
PhysicsManager
PhysxAutoCfg
SurfaceVelocitySpec
SurfaceVelocityView

.. autoclass:: CallbackHandle
:show-inheritance:
Expand All @@ -34,3 +36,9 @@ The following classes are part of the public :mod:`isaaclab.physics` API.

.. autoclass:: PhysxAutoCfg
:show-inheritance:

.. autoclass:: SurfaceVelocitySpec
:show-inheritance:

.. autoclass:: SurfaceVelocityView
:show-inheritance:
8 changes: 8 additions & 0 deletions docs/source/api/lab_newton/isaaclab_newton.physics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
KaminoPADMMSolverCfg
MPMSolverCfg
HydroelasticSDFCfg
SurfaceVelocity

.. currentmodule:: isaaclab_newton.physics

Expand Down Expand Up @@ -154,6 +155,13 @@ Physics Configuration
:show-inheritance:
:exclude-members: __init__

Surface Velocity
----------------

.. autoclass:: SurfaceVelocity
:members:
:show-inheritance:

Solver Managers
---------------

Expand Down
19 changes: 19 additions & 0 deletions docs/source/api/lab_physx/isaaclab_physx.physics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
PhysxCfg
PhysxBackendCfg

SurfaceVelocity
PhysxSurfaceVelocityTwist

.. currentmodule:: isaaclab_physx.physics

Physics Manager
Expand All @@ -33,6 +36,22 @@ Physics Configuration
:show-inheritance:
:exclude-members: __init__

Surface Velocity
----------------

.. autoclass:: SurfaceVelocity
:members:
:show-inheritance:

.. autoclass:: PhysxSurfaceVelocityTwist
:members:

.. autofunction:: apply_surface_velocity_api

.. autofunction:: compute_surface_velocity_twist

.. autofunction:: resolve_surface_velocity_paths

Additional Public Classes
-------------------------

Expand Down
107 changes: 107 additions & 0 deletions docs/source/setup/conveyor_franka.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
Conveyor Franka (Contrib)
=========================

Choose between the original four-cube racetrack task and the warehouse sorting task.
Both use the same pretrained Franka policy and shared manipulation code. The sorter extends
the base environment with textured cartons, elevated returns, gravity infeeds, and color dispatch.

.. image:: ../_static/conveyor_franka.jpg
:alt: Franka sorting colored cartons between two conveyors in a warehouse
:width: 100%

.. list-table:: Two tasks, one policy
:header-rows: 1
:widths: 22 24 54

* - Task
- Inventory
- Behavior
* - Racetrack transfer
- Four numbered cubes
- Original two closed racetracks; continuous alternating transfers.
* - Warehouse sorting
- 24 colored parcels
- Extended circulating conveyors; blue/green on one loop, orange/purple on the other.

Both run on Newton GPU: select ``IsaacContrib-Conveyor-Franka-Newton-v0`` for the original
racetracks or ``IsaacContrib-Conveyor-Franka-Newton-Play-v0`` for sorting. The original task
also has a native PhysX CPU backend, described below. Sorting reuses the base configuration,
agent configuration, and manipulation terms; only the warehouse adds parcel-slot reassignment
and color-based dispatch.

Run the pretrained policy
-------------------------

Use the standard Isaac Lab installation with the Isaac Sim extra for Kit/RTX visuals:

.. code-block:: bash

uv run --extra isaacsim isaaclab play --rl_library rsl_rl \
--task IsaacContrib-Conveyor-Franka-Newton-Play-v0 \
--checkpoint https://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Isaac/6.1/Isaac/IsaacLab/PretrainedCheckpoints/rsl_rl/IsaacContrib-Conveyor-Franka-Newton-v0_newtonmjwarp_none_rsl_rl.pt --num_envs 1 --device cuda:0 --viz kit --real-time \
--kit_args=--/UJITSO/geometry=false

The first launch downloads the referenced Omniverse assets. The warehouse uses USD-authored
materials and lighting; Kit/RTX is the intended viewer. The launch override disables experimental
geometry streaming, including saved Kit preferences, which can hide meshes updated through Fabric.
To record this view, append ``--video --video_length 1440 env.sim.physics.use_cuda_graph=False``.
Disable CUDA graphs for this Kit recording path; compact training retains its graph-enabled default.

For compact, lightweight playback:

.. code-block:: bash

uv run isaaclab play --rl_library rsl_rl \
--task IsaacContrib-Conveyor-Franka-Newton-v0 \
--checkpoint pretrained --num_envs 8 --device cuda:0 --viz newton_gl --real-time

The published policy is iteration 7998 of the
`conveyor training run <https://wandb.ai/nvidia-isaac/isaaclab-conveyor-franka/runs/conveyor-franka-resume-22gpu-model3999-exactsrc-pxr1-l40-20260810-3>`__.
The warehouse command uses that same checkpoint URL explicitly. Both retain 123 observations,
eight actions, 120 Hz physics, and a 60 Hz policy rate. Checkpoints remain outside the repository.

Train or compare backends
-------------------------

.. code-block:: bash

uv run isaaclab train --rl_library rsl_rl \
--task IsaacContrib-Conveyor-Franka-Newton-v0 --num_envs 256 --device cuda:0

uv run --extra isaacsim isaaclab play --rl_library rsl_rl \
--task IsaacContrib-Conveyor-Franka-PhysX-CPU-v0 \
--checkpoint /path/to/model.pt --num_envs 1 --device cpu --viz kit --real-time \
agent.device=cpu

Native PhysX surface velocity requires CPU simulation for this task. GPU dynamics can drop
belt contacts in the supported Isaac Sim runtime. The PhysX variant rejects CUDA devices;
its separately named pretrained artifact is not published. Policy shape compatibility does
not imply identical behavior between backends.

Warehouse sorting
-----------------

The original manipulation straights and adjoining 90-degree bends remain fixed. Twenty-four
40 mm cartons circulate through the extended layout. Each reset shuffles a balanced batch of
six blue, six green, six orange, and six purple cartons. Blue/green belong on the positive-Y
loop; orange/purple belong on the negative-Y loop. Four policy slots are reassigned to arriving
parcels while an active grasp retains its identity. Destination classes are supervisory metadata;
the state-based checkpoint does not recognize colors from images.

This is a presentation and policy-reuse demonstration, not a reliably solved 24-parcel benchmark.
The unchanged checkpoint can miss grasps and reset before finishing a batch. The original
four-cube training and CPU reference configurations retain their compact layout.

.. raw:: html

<video controls muted loop playsinline preload="metadata" style="width:100%;max-width:960px"
poster="../../_static/conveyor_franka.jpg">
<source src="https://github.com/maxkra15/IsaacLab/releases/download/conveyor-franka-preview/conveyor_franka.mp4" type="video/mp4">
Your browser does not support embedded video.
</video>

`Download the warehouse preview <https://github.com/maxkra15/IsaacLab/releases/download/conveyor-franka-preview/conveyor_franka.mp4>`__.

The task's
:download:`README <../../../source/isaaclab_tasks/isaaclab_tasks/contrib/conveyor_franka/README.md>`
describes the USD assets, collision ownership, slot adapter, and sorting metrics.
5 changes: 5 additions & 0 deletions source/isaaclab/changelog.d/maximiliank-custom-mesh.minor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Added
^^^^^

* Added :class:`~isaaclab.sim.MeshCustomCfg` for spawning meshes from authored
vertices and triangular faces.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Added
^^^^^

* Added backend-neutral surface-velocity descriptions and a tensorized control contract under
``isaaclab.physics.surface_velocity``.
3 changes: 3 additions & 0 deletions source/isaaclab/isaaclab/physics/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ __all__ = [
"PhysicsManager",
"PhysicsCfg",
"PhysxAutoCfg",
"SurfaceVelocitySpec",
"SurfaceVelocityView",
]

from .physics_manager import CallbackHandle, PhysicsEvent, PhysicsManager
from .physics_manager_cfg import PhysicsCfg, PhysxAutoCfg
from .surface_velocity import SurfaceVelocitySpec, SurfaceVelocityView
Loading
Loading