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
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Connecting Inputs
-----------------

Use one debounced selector per signal (simple wiring, no multi-input lambdas):
see :code-file:`teleop_controls_simple_example.py <examples/teleop_session_manager/python/teleop_controls_simple_example.py>`
see :code-file:`teleop_controls_simple_example.py <examples/teleop_session_manager/python/isaacteleop_examples/teleop_session_manager/teleop_controls_simple_example.py>`
for the full runnable setup.

.. code-block:: python
Expand Down
4 changes: 2 additions & 2 deletions examples/teleop_session_manager/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.20)

include(${CMAKE_SOURCE_DIR}/cmake/InstallPythonExample.cmake)
install_python_example(DESTINATION examples/teleop_session_manager/python)
install_python_example(DESTINATION examples/teleop_session_manager)
26 changes: 26 additions & 0 deletions examples/teleop_session_manager/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
-->

# TeleopSessionManager examples

Four standalone demos of the `TeleopSession` API. Install once, then run
whichever one you want:

```bash
uv pip install -e ./examples/teleop_session_manager
python -m isaacteleop_examples.teleop_session_manager.teleop_session_example
```

| Module | What it shows |
| --- | --- |
| `teleop_session_example` | Velocity from hand-wrist and controller motion, driven by `session.step()` with the synthetic hands plugin |
| `teleop_controls_simple_example` | The simplified controls helper, with the state machine in `teleop_controls_simple_helper` |
| `external_inputs_example` | Feeding a session from an input source outside DeviceIO |
| `message_channel_example` | Sending and receiving on a session message channel |

## See also

- Module docs: `docs/source/references/teleop_session.rst`
- Retargeting engine: `src/core/retargeting_engine/`
26 changes: 26 additions & 0 deletions examples/teleop_session_manager/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
# The dist name mirrors the import path, so an installed example claims no bare
# top-level name in site-packages.
name = "isaacteleop-examples-teleop-session-manager"
version = "0.0.0" # Internal examples - not versioned
description = "TeleopUtils Python Examples"
requires-python = ">=3.11,<3.14"
dependencies = [
"isaacteleop[ui]",
"numpy>=1.23.0",
]

# `isaacteleop_examples` is a PEP 420 namespace shared by every example dist and
# must stay without an __init__.py. `only-include` + `sources`, not `packages`:
# the latter keeps only the last path component and would root the wheel at a
# bare top-level `teleop_session_manager/`.
[tool.hatch.build.targets.wheel]
only-include = ["python/isaacteleop_examples/teleop_session_manager"]
sources = ["python"]
40 changes: 0 additions & 40 deletions examples/teleop_session_manager/python/README.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down Expand Up @@ -78,7 +78,9 @@
)


PLUGIN_ROOT_DIR = Path(__file__).resolve().parent.parent.parent.parent / "plugins"
# Six levels up is the tree root -- the checkout, or the install prefix
# when running from install/examples/.
PLUGIN_ROOT_DIR = Path(__file__).resolve().parents[5] / "plugins"


# ==============================================================================
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
DefaultTeleopStateManager,
)

from teleop_controls_simple_helper import (
from .teleop_controls_simple_helper import (
build_observation_pipeline,
print_frame,
print_header,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down Expand Up @@ -47,7 +47,9 @@
from isaacteleop.retargeting_engine.tensor_types import FloatType


PLUGIN_ROOT_DIR = Path(__file__).resolve().parent.parent.parent.parent / "plugins"
# Six levels up is the tree root -- the checkout, or the install prefix
# when running from install/examples/.
PLUGIN_ROOT_DIR = Path(__file__).resolve().parents[5] / "plugins"


# ==============================================================================
Expand Down
12 changes: 0 additions & 12 deletions examples/teleop_session_manager/python/pyproject.toml

This file was deleted.

Loading