Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
67 changes: 67 additions & 0 deletions docs/_extensions/isaaclab_docs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause

"""Sphinx helpers for Isaac Lab documentation."""

from __future__ import annotations

from docutils import nodes
from docutils.statemachine import StringList
from sphinx.util.docutils import SphinxDirective


def _branch(config) -> str:
"""Return the branch or tag pinned in installation docs."""
current_version = getattr(config, "smv_current_version", "")
if current_version:
return current_version
return getattr(config, "isaaclab_latest_branch", "main")


def _parse_rst(directive: SphinxDirective, content: str) -> list[nodes.Node]:
"""Parse nested reST and return the generated document nodes."""
source = directive.env.doc2path(directive.env.docname, base=False)
lines = StringList(content.splitlines(), source=source)
container = nodes.container()
directive.state.nested_parse(lines, 0, container)
return container.children


class IsaacLabCloneCommands(SphinxDirective):
"""Render SSH/HTTPS clone tabs using copy-friendly ``code-block`` directives."""

has_content = False

def run(self) -> list[nodes.Node]:
branch = _branch(self.config)
content = f"""\
.. tab-set::

.. tab-item:: SSH

.. code-block:: bash

git clone git@github.com:isaac-sim/IsaacLab.git --branch {branch}
cd IsaacLab

.. tab-item:: HTTPS

.. code-block:: bash

git clone https://github.com/isaac-sim/IsaacLab.git --branch {branch}
cd IsaacLab
"""
return _parse_rst(self, content)
Comment on lines +37 to +56

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 cd IsaacLab is a new, undocumented behaviour change

The previous inline code:: blocks showed only the git clone command. This directive now appends cd IsaacLab to both SSH and HTTPS variants. In the deployment/container context (deployment/index.rst) the text that follows the clone block does not assume the working directory is IsaacLab, so readers may find the extra step confusing or superfluous there. If the intent is to always include cd IsaacLab, the PR description should mention it; if it is incidental, consider dropping the cd from the generated content.



def setup(app):
"""Register Isaac Lab documentation directives."""
app.add_config_value("isaaclab_latest_branch", "main", "env")
app.add_directive("isaaclab-clone-commands", IsaacLabCloneCommands)
return {
"version": "0.1",
"parallel_read_safe": True,
"parallel_write_safe": True,
}
9 changes: 9 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import os
import sys

sys.path.insert(0, os.path.abspath("_extensions"))
sys.path.insert(0, os.path.abspath("../source/isaaclab"))
sys.path.insert(0, os.path.abspath("../source/isaaclab/isaaclab"))
sys.path.insert(0, os.path.abspath("../source/isaaclab_assets"))
Expand All @@ -42,6 +43,13 @@
full_version = f.read().strip()
version = ".".join(full_version.split(".")[:3])

# Latest branch referenced by installation documentation.
isaaclab_latest_branch = os.getenv("ISAACLAB_LATEST_BRANCH", "main")

rst_prolog = f"""
.. |isaaclab_latest_branch| replace:: {isaaclab_latest_branch}
"""
Comment on lines +49 to +51

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Unused rst_prolog substitution

The |isaaclab_latest_branch| substitution is defined here but none of the RST files changed in this PR (or the existing clone instruction files) appear to reference it. The actual branch injection is handled entirely by the IsaacLabCloneCommands Python directive. If this substitution is intended for future inline prose use across other RST files (e.g. "clone branch |isaaclab_latest_branch|"), that's fine — but it's worth confirming it won't go stale since it's sourced from the same ISAACLAB_LATEST_BRANCH env var and will silently render as the literal pipe-delimited string if referenced in a file that doesn't include the prolog.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
Expand All @@ -65,6 +73,7 @@
"sphinx_design",
"sphinx_tabs.tabs", # backwards compatibility for building docs on v1.0.0
"sphinx_multiversion",
"isaaclab_docs",
]

# mathjax hacks
Expand Down
14 changes: 1 addition & 13 deletions docs/source/deployment/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,7 @@ Cloning the Repository

Before building the container, clone the Isaac Lab repository (if not already done):

.. tab-set::

.. tab-item:: SSH

.. code:: bash

git clone git@github.com:isaac-sim/IsaacLab.git

.. tab-item:: HTTPS

.. code:: bash

git clone https://github.com/isaac-sim/IsaacLab.git
.. isaaclab-clone-commands::

Next Steps
----------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ This environment has been successfully deployed on real UR10e robots without an

**Scope of This Tutorial:**

This tutorial focuses exclusively on the **training part** of the sim-to-real transfer workflow in Isaac Lab. For the complete deployment workflow on the real robot, including the exact steps to set up the vision pipeline, robot interface and the ROS inference node to run your trained policy on real hardware, please refer to the `Isaac ROS Documentation <https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_manipulator_ur_dnn_policy/index.html>`_.
This tutorial focuses exclusively on the **training part** of the sim-to-real transfer workflow in Isaac Lab. For the complete deployment workflow on the real robot, including the exact steps to set up the vision pipeline, robot interface and the ROS inference node to run your trained policy on real hardware, please refer to the `Isaac ROS Documentation <https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_ros_manipulation_ur_dnn_policy/index.html>`_.

Overview
--------
Expand Down Expand Up @@ -493,7 +493,7 @@ Replace ``<log_dir>`` with the path to your training logs (e.g., ``logs/rsl_rl/g
Step 3: Deploy on Real Robot
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Once training is complete, follow the `Isaac ROS inference documentation <https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_manipulator_ur_dnn_policy/index.html>`_ to deploy your policy.
Once training is complete, follow the `Isaac ROS inference documentation <https://nvidia-isaac-ros.github.io/reference_workflows/isaac_for_manipulation/packages/isaac_ros_manipulation_ur_dnn_policy/index.html>`_ to deploy your policy.

The Isaac ROS deployment pipeline directly uses the trained model checkpoint (``.pt`` file) along with the ``agent.yaml`` and ``env.yaml`` configuration files generated during training. No additional export step is required.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/setup/ecosystem.rst
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ to Isaac Lab, please reach out to us.
.. _AirSim: https://microsoft.github.io/AirSim/
.. _DoorGym: https://github.com/PSVL/DoorGym/
.. _ManiSkill: https://github.com/haosulab/ManiSkill
.. _ThreeDWorld: https://www.threedworld.org/
.. _ThreeDWorld: https://github.com/threedworld-mit/tdw
.. _RoboSuite: https://robosuite.ai/
.. _MuJoCo: https://mujoco.org/
.. _MuJoCo Playground: https://playground.mujoco.org/
Expand Down
15 changes: 1 addition & 14 deletions docs/source/setup/installation/include/src_clone_isaaclab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,7 @@ Cloning Isaac Lab

Clone the Isaac Lab repository into your project's workspace:

.. tab-set::

.. tab-item:: SSH

.. code:: bash

git clone git@github.com:isaac-sim/IsaacLab.git

.. tab-item:: HTTPS

.. code:: bash

git clone https://github.com/isaac-sim/IsaacLab.git

.. isaaclab-clone-commands::

We provide a helper executable `isaaclab.sh <https://github.com/isaac-sim/IsaacLab/blob/main/isaaclab.sh>`_
and `isaaclab.bat <https://github.com/isaac-sim/IsaacLab/blob/main/isaaclab.bat>`_ for Linux and Windows
Expand Down
14 changes: 1 addition & 13 deletions docs/source/setup/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,7 @@ and now we can install the Isaac Sim packages.

Finally, we can install Isaac Lab. To start, clone the repository using the following

.. tab-set::

.. tab-item:: SSH

.. code:: bash

git clone git@github.com:isaac-sim/IsaacLab.git

.. tab-item:: HTTPS

.. code:: bash

git clone https://github.com/isaac-sim/IsaacLab.git
.. isaaclab-clone-commands::

Installation is now as easy as navigating to the repo and then calling the root script with the ``--install`` flag!

Expand Down
Loading